vim
Polecenia automatyczne
Szukaj…
Uwagi
Polecenia surround autocmd
autocmd
to polecenie addytywne i prawdopodobnie nie chcesz domyślnie tego zachowania.
Na przykład, jeśli kilkakrotnie zmienisz źródło .vimrc
podczas edycji, vim może zwolnić.
Oto dowód:
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
Jeśli teraz wpiszesz :autocmd BufWritePost *
, zobaczysz obie linie na wyjściu, a nie tylko jedną. Oba zostaną stracone.
Aby uniknąć tego zachowania, autocmd
wszystkie swoje autocmd
w następujący sposób:
if has ('autocmd') " Remain compatible with vi which doesn't have autocmd
augroup MyDiffUpdate " A unique name for the group. DO NOT use the same name twice!
autocmd! " Clears the old autocommands for this group name
autocmd BufWritePost * if &diff | diffupdate | endif " Update diff after save
" ... etc ...
augroup END
endif
Automatyczne zapisywanie .vimrc po zapisaniu
Dodaj to do swojego $MYVIMRC
:
" Source vim configuration file whenever it is saved
if has ('autocmd') " Remain compatible with earlier versions
augroup Reload_Vimrc " Group name. Always use a unique name!
autocmd! " Clear any preexisting autocommands from this group
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
Cechy:
-
echom
informuje użytkownika o tym, co się wydarzyło (a także loguje się do:messages
). -
$MYVIMRC
i$MYGVIMRC
obsługują nazwy plików specyficzne dla platformy, - i dopasowuj tylko rzeczywiste pliki konfiguracyjne (ignorując kopie w innych katalogach lub
fugitive://
diff) -
has()
zapobiegnie błędowi, jeśli używasz niekompatybilnych wersji, takich jakvim-tiny
. -
autocmd!
pozwala uniknąć gromadzenia wielu identycznych poleceń automatycznych, jeśli plik ten zostanie ponownie pobrany. (Usuwa wszystkie polecenia w nazwanej grupie, więc nazwa grupy jest ważna).
Odśwież widoki vimdiff, jeśli plik jest zapisany w innym oknie
:autocmd BufWritePost * if &diff | diffupdate | endif
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow