vim
autokommandon
Sök…
Anmärkningar
Surround autocmd kommandon
autocmd är ett additivt kommando, och du vill förmodligen inte ha detta beteende som standard.
Om du till exempel källkoder till .vimrc några gånger medan du redigerar den, kan vim sakta ner.
Här är beviset:
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
Om du nu skriver :autocmd BufWritePost * ser du båda linjerna i utgången, inte bara en. Båda avrättas.
Om du autocmd undvika detta beteende omger du alla dina autocmd er på följande sätt:
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
Källa automatiskt .vimrc efter att du har sparat
Lägg till detta till din $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
Funktioner:
-
echomberättar för användaren vad som har hänt (och loggar också till:messages). -
$MYVIMRCoch$MYGVIMRChanterar plattformspecifika namn för konfigurationsfilerna, - och matchar bara de faktiska konfigurationsfilerna (ignorerar kopior i andra kataloger, eller en
fugitive://diff) -
has()kommer att förhindra ett fel om du använder inkompatibla versioner, till exempelvim-tiny. -
autocmd!undviker uppbyggnad av flera identiska autokommandon om den här filen kommer igen. (Det rensar alla kommandon i den nämnda gruppen, så gruppnamnet är viktigt.)
Uppdatera vimdiff-vyer om en fil sparas i ett annat fönster
:autocmd BufWritePost * if &diff | diffupdate | endif
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow