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 que vim-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