vim
Commandes Automatiques
Recherche…
Remarques
Commandes d' autocmd Surround
autocmd est une commande additive et vous ne voulez probablement pas ce comportement par défaut.
Par exemple, si vous recréez votre .vimrc plusieurs fois en le modifiant, vim peut ralentir.
Voici la preuve:
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
:autocmd BufWritePost * if &diff | diffupdate | endif " update diff after save
Si vous tapez maintenant :autocmd BufWritePost * , vous verrez les deux lignes dans la sortie, pas juste une. Les deux sont exécutés.
Pour éviter ce comportement, entourez tous vos autocmd comme suit:
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
Source automatique .vimrc après enregistrement
Ajoutez ceci à votre $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
Caractéristiques:
-
echomindique à l'utilisateur ce qui s'est passé (et se connecte également aux:messages). -
$MYVIMRCet$MYGVIMRCgèrent les noms spécifiques à la plate-forme pour les fichiers de configuration, - et ne correspondent qu'aux fichiers de configuration réels (en ignorant les copies dans d'autres répertoires, ou un
fugitive://diff) -
has()empêchera une erreur si vous utilisez des versions incompatibles, telles quevim-tiny. -
autocmd!évite la création de plusieurs autocommandes identiques si ce fichier est à nouveau généré. (Il efface toutes les commandes du groupe nommé, le nom du groupe est donc important.)
Actualiser les vues vimdiff si un fichier est enregistré dans une autre fenêtre
:autocmd BufWritePost * if &diff | diffupdate | endif
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow