Wie laden Sie Ihre .vimrc-Datei neu, ohne vim neu zu starten?

211673
ivo

Können Sie Ihre .vimrcDatei bearbeiten und neu laden, ohne Vim neu starten zu müssen?

507

4 Antworten auf die Frage

623
Matteo Riva

Wenn Sie es bearbeiten, können Sie es erneut laden mit:

:so % 

%steht für aktuellen Dateinamen (siehe :h current-file) und :sosteht für :source, um den Inhalt der angegebenen Datei zu lesen und als Vim-Code zu behandeln.

Um die derzeit aktive .vimrc erneut zu laden, verwenden Sie im Allgemeinen Folgendes (siehe Daily Vim ):

:so $MYVIMRC 
Sehen Sie sich http://stackoverflow.com/questions/803464/how-do-i-source-something-in-my-vimrc-file an mrucci vor 14 Jahren 2
und `: so ~ / .vimrc` sollte auch auf Unix funktionieren Yab vor 13 Jahren 31
: so ~ / _vimrc funktioniert unter Windows. Natürlich halte ich mein _vimrc in meinem Windows-Home-Verzeichnis, sonst funktioniert das nicht. Verwenden Sie `: echo expand (" ~ ")`, um zu sehen, was Vim für Ihr Basisverzeichnis hält. Daniel Miladinov vor 11 Jahren 3
Wenn bereits Tastaturzuordnungen vorhanden sind, werden sie nicht gelöscht, auch wenn sie aus dem neuen vimrc gelöscht werden Phani vor 10 Jahren 3
76
Andrei

Noch besser, Sie konfigurieren Vim so, dass Änderungen in Ihrem System überwacht werden, .vimrcund laden die Konfiguration automatisch neu.

augroup myvimrc au! au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif augroup END 

Quelle: diese Antwort auf SO

Hinweis: Diese bestimmte Methode überwacht die vielen Variationen der Vim-Konfigurationsdateinamen, sodass sie mit GUI Vim, Windows Vim usw. kompatibel ist.

Wie performant ist diese Methode? Alexej Magura vor 7 Jahren 2
Ich finde, dass dieser Befehl manchmal für einige Sekunden oder länger aufhängt. jdhao vor 6 Jahren 0
9
Tom Hale

Tastenzuordnungen

" Quickly edit/reload this configuration file nnoremap gev :e $MYVIMRC<CR> nnoremap gsv :so $MYVIMRC<CR> 

Komplett automatisierte Lösung

Um beim Speichern automatisch neu zu laden, fügen Sie Folgendes zu Ihrem hinzu $MYVIMRC:

if has ('autocmd') " Remain compatible with earlier versions augroup vimrc " Source vim configuration upon save autocmd! BufWritePost $MYVIMRC source % | echom "Reloaded " . $MYVIMRC | redraw autocmd! BufWritePost $MYGVIMRC if has('gui_running') | so % | echom "Reloaded " . $MYGVIMRC | endif | redraw augroup END endif " has autocmd 

und dann zum letzten Mal:

:so % 

Wenn Sie das nächste Mal speichern vimrc, wird es automatisch neu geladen.

Eigenschaften:

  • Teilt den Benutzer, was passiert ist (auch die Protokollierung :messages)
  • Behandelt verschiedene Namen für die Konfigurationsdateien
  • Stellt sicher, dass es nur mit der tatsächlichen Konfigurationsdatei übereinstimmt (ignoriert Kopien in anderen Verzeichnissen oder einen fugitive://Unterschied).
  • Bei der Verwendung wird kein Fehler generiert vim-tiny

Natürlich wird das automatische Nachladen nur dann durchgeführt, wenn Sie Ihre vimrcin vim bearbeiten .

5
maged

Eine Alternative zum Erinnern / Schreiben :so $MYVIMRCsind diese Zuordnungen. Damit können Sie vimrc ( ev) oder source vimrc ( sv) schnell bearbeiten .

" Quickly open/reload vim nnoremap <leader>ev :split $MYVIMRC<CR>  nnoremap <leader>sv :source $MYVIMRC<CR>