2008-11-24 10 views
50

Gibt es eine Möglichkeit, den Zustand der vim-Einstellungen mit einem Dokument zu speichern?Speichern von vim-Einstellungen mit einem Dokument

Um zu verdeutlichen: Ich bearbeite ein Dokument und ich ändere eine Reihe von Einstellungen. Ich erinnere mich nicht unbedingt daran; und ich möchte diese Einstellungen nicht erneut verwenden, außer für das aktuelle Dokument. Ich möchte nicht manuell versuchen, mich daran zu erinnern, was ich geändert habe. oder was die magischen Abkürzungen für die Einstellungen sind, die ich geändert habe. Ich möchte nur sagen "mydoc.txt", eine "meindoc.vim" Datei, die mich dahin zurückbringt, wo ich aufgehört habe, und die Einstellungsdatei würde automatisch basierend auf einer vim Einstellung gespeichert werden, sagen wir, oder vielleicht a Strg-Taste tut es, bevor ich gehe. Es wäre praktisch, wenn vim automatisch nach einer solchen Datei suchen könnte.

Und es wäre vorzuziehen, die Einstellungen nicht in und aus dem Dokument selbst zu bearbeiten.

Antwort

23

können Sie verwenden Vims Session-Unterstützung:

:mksession 

Sie diese später geladen werden kann entweder durch vim -S Session.vim ausgeführt wird, oder mit source Session.vim

Es gibt auch vim Addons Sitzung Laden/Speichern

105

Ja, vim-Einstellungen können im Dokument enthalten sein.

Sie werden meistens in Kommentaren gefunden, damit sie die Originaldatei nicht durcheinander bringen. Ein Beispiel für die Registerkarte spezifischen Einstellungen ist:

/* ex: set tabstop=8 expandtab: */ 

Beachten Sie, dass dieser Befehl funktioniert in den meisten Fällen jedoch Server sind oft Setup ohne modeline aus Sicherheitsgründen eingeschaltet. Zum Einschalten dieser Funktion fügen Sie den folgenden in $ HOME/.vimrc oder das System $ VIM/vimrc:

set modeline 
+14

Vergewissern Sie sich, dass "modeline" eingestellt ist. –

+9

Weitere Informationen finden Sie unter http://vim.wikia.com/wiki/Modeline_magic. Für vim müssten Sie '/ * vim: set tabstop = 8 expandtab: * /' zum Beispiel verwenden. – Lekensteyn

+2

@Lekensteyn oder einfach: help modeline;) – Geoffroy

9

Sie können durch die Bearbeitung Ihrer .vimrc Datei Ihre Einstellungen global speichern.

Vim können Sie auch Einstellungen pro Datei speichern, indem Sie modelines

7

hier, wie Sie alle Ihre aktuellen Einstellungen in einer Datei speichern:

:redir > textfile.txt 
:set all 
:redir END 

Wenn Sie möchten, benennen Sie die Datei zu ~/.vimrc und weg du gehst.

+0

ich habe das gemacht..es hat nicht funktioniert – Ethan

+0

Wenn du noch nicht viele Plugins installiert hast, gibt es auch den ': mkvimrc' Befehl. Aber das fängt auch Mappings auf. Wenn Sie also eine Menge von Plugin-Mappings haben, müssen Sie alle durchlaufen und löschen, damit Sie sie nicht zweimal definieren. – Ben

+0

Es funktionierte für mich, außer dem '~/.vimrc' Teil, den ich nicht ausprobiert habe, weil es sowieso nicht funktionieren kann. Das tut nicht genau, was gefragt wird, aber es hilft. –

4

zu automatisieren Sie könnten die Datei vielleicht als einen bestimmten Typ speichern, z spezielles Dateinamenformat oder -erweiterung, und definieren Sie dann einen Autokommandos in Ihrer .vimrc für diesen Dateityp.

Ich mache dies für meine Makefiles, um sicherzustellen, dass ich die verschiedenen Einstellungen habe, die ich für bestimmte Dateien benötige.

Zum Beispiel, hier ist mein Autocommand dec.

if has("autocmd") 
    autocmd BufRead,BufNewFile Makefile* :set noexpandtab 
    autocmd BufRead,BufNewFile mirror.conf :set noexpandtab 
    autocmd BufRead,BufNewFile *.html* :set shiftwidth=2 
    autocmd BufRead,BufNewFile diff_files :set autowrite 
    autocmd BufRead,BufNewFile lbnamed* :set ft=perl 
    autocmd BufRead,BufNewFile *.t  :set ft=perl 
endif 
Verwandte Themen