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 jak vim-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