it-swarm.com.de

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

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

517
ivo

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

:so %

% steht für den aktuellen Dateinamen (siehe :h current-file) und :so steht für :source, der den Inhalt der angegebenen Datei liest und als Vim-Code behandelt.

Verwenden Sie zum erneuten Laden der derzeit aktiven .vimrc-Datei im Allgemeinen Folgendes (siehe Daily Vim ):

:so $MYVIMRC
638
Matteo Riva

Noch besser ist es, wenn Sie Vim so konfigurieren, dass es nach Änderungen in Ihrem .vimrc sucht und die Konfiguration automatisch neu lädt.

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 spezielle Methode sucht nach den vielen Variationen der Vim-Konfigurationsdateinamen, damit sie mit GUI Vim, Windows Vim usw. kompatibel sind.

77
Andrei

Tastenzuordnungen

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

Komplett automatisierte Lösung

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

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 geben Sie dann zum letzten Mal Folgendes ein:

:so %

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

Eigenschaften:

  • Teilt dem Benutzer mit, was passiert ist (auch bei :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:// diff)
  • Kein Fehler bei Verwendung von vim-tiny

Das automatische Neuladen findet natürlich nur statt, wenn Sie Ihre vimrc in vim bearbeiten.

9
Tom Hale

Eine Alternative zum Speichern/Eingeben von :so $MYVIMRC sind diese Zuordnungen. Damit können Sie schnell vimrc (ev) oder source vimrc (sv) bearbeiten.

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