Ich möchte die .vimrcDatei von Vim aus bearbeiten und anwenden, ohne Vim neu zu starten.
Antworten:
Ja, verwenden Sie einfach den :so %Befehl, während Sie Ihre .vimrc bearbeiten.
Wenn Sie möchten, dass vim Ihre Konfiguration automatisch neu lädt, müssen Sie die folgenden Befehle hinzufügen:
augroup myvimrchooks
au!
autocmd bufwritepost .vimrc source $MYVIMRC
augroup END
Die Gruppierung von Autocommand dient dazu, ein "exponentielles" Neuladen zu vermeiden, wenn Sie Ihre Konfiguration mehrmals speichern.
Function Inc already exist, add ! to replace it.
autocmd! bufwritepost .vimrc source ~/.vimrc? Selbst wenn die Gruppe aus irgendeinem Grund benötigt wird, kann Zeile 2 nicht weggelassen werden, wenn Zeile 3 zunächst neu geschrieben wird autocmd!?
Hier ist eine plattformübergreifendere Version, wenn Sie unter Mac / Windows / Linux arbeiten und gvimrc:
augroup myvimrc
au!
au BufWritePost .vimrc,_vimrc,vimrc,.gvimrc,_gvimrc,gvimrc so $MYVIMRC | if has('gui_running') | so $MYGVIMRC | endif
augroup END
Das Autocmd überwacht alle potenziellen *vimrcDateien und lädt bei einer Änderung die vimrcDatei neu, gefolgt von gvimrcder Ausführung der GUI.
:help gvimrc
$GVIMRCexistiert, weil es manchmal nicht existiert. if has('gui_running') && filereadable($MYGVIMRC)
au BufWritePost $MYVIMRCoder au BufWritePost $MYVIMRC,$MYGVIMRC?
" Quickly edit/reload this configuration file
nnoremap gev :e $MYVIMRC<CR>
nnoremap gsv :so $MYVIMRC<CR>
Um automatisch nachladen auf speichern, fügen Sie folgendes zu Ihrem $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 geben Sie dann zum letzten Mal Folgendes ein:
:so %
Wenn Sie das nächste Mal speichern vimrc, wird es automatisch neu geladen.
Eigenschaften:
:messages)fugitive://Unterschied)vim-tinyNatürlich erfolgt das automatische Neuladen nur, wenn Sie Ihr vimrcin vim bearbeiten .
vimich sie bearbeite $MYVIMRC. Wenn sie sich zum Beispiel in einem anderen Terminal befinden, muss ich immer noch manuell beschaffen $MYVIMRC. Gibt es eine Möglichkeit, dies zu umgehen?
vimdie Datei ausschreibt. Es ist möglicherweise möglich, die mtime in der Datei selbst zu überwachen, ist sich jedoch nicht sicher, wie dies ohne asynchrones Abrufen erfolgen soll.
gvimrcoder wenn die Datei aufgerufen wird ,_vimrcodervimrc, oder , wenn Sie eine Datei mit dem Namen bearbeiten.vimrcin einem anderen Verzeichnis. Siehe meine Antwort, um diese Probleme zu beheben.