Ricerca…


Osservazioni

Comandi autocmd surround

autocmd è un comando additivo e probabilmente non vuoi questo comportamento di default.

Ad esempio, se .vimrc tuo .vimrc alcune volte mentre lo modifichi, vim può rallentare.

Ecco la prova:

:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save

Se ora scrivi :autocmd BufWritePost * , vedrai entrambe le righe nell'output, non solo una. Entrambi vengono giustiziati.

Per evitare questo comportamento, racchiudi tutti i tuoi autocmd come segue:

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

Genera automaticamente .vimrc dopo aver salvato

Aggiungi questo al tuo $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

Caratteristiche:

  • echom dice all'utente cosa è successo (e registra anche :messages ).
  • $MYVIMRC e $MYGVIMRC gestiscono i nomi specifici della piattaforma per i file di configurazione,
  • e corrisponde solo ai file di configurazione effettivi (ignorando le copie in altre directory o un fugitive:// diff)
  • has() impedirà un errore se si usano versioni incompatibili, come vim-tiny .
  • autocmd! evita l'accumulo di più autocomandi identici se questo file è di nuovo acquistato. (Cancella tutti i comandi nel gruppo con nome, quindi il nome del gruppo è importante).

Aggiorna le viste di vimodiff se un file viene salvato in un'altra finestra

:autocmd BufWritePost * if &diff | diffupdate | endif 


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow