vim
autocomandi
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, comevim-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