自動命令
環繞 autocmd
命令
autocmd
是一個附加命令,預設情況下你可能不希望出現此行為。
例如,如果你在編輯時重新傳送你的 .vimrc
幾次,vim 可能會變慢。
這是證據:
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
如果你現在輸入:autocmd BufWritePost *
,你會看到輸出中的兩行,而不只是一行。兩者都被執行了。
要避免此行為,請按如下方式環繞所有 autocmd
s:
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