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:
-
echom
indique à l'utilisateur ce qui s'est passé (et se connecte également aux:messages
). -
$MYVIMRC
et$MYGVIMRC
gè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