Comment rafraîchir automatiquement Vim sur le focus tampon / fenêtre?

11

J'utilise souvent Control + L pour redessiner l'écran dans Vim .

En particulier, lorsque je sors du sommeil ou que je change de configuration de moniteur, je trouve souvent que Vim doit être redessiné. J'ai pensé qu'il pourrait être plus simple d'ajouter simplement quelque chose à mon vimrc qui se redessine sur le focus.

  • Existe-t-il une commande que je peux ajouter à mon .vimrcfichier qui redessine le tampon lorsque la fenêtre / tampon obtient le focus?

En particulier, une bonne commande ne devrait pas avoir de performances négatives notables ou d'autres effets secondaires associés.

Jeromy Anglim
la source

Réponses:

12

vim a un événement auquel vous pouvez vous lier pour cela, FocusGainedcombinez-le avec la redraw!commande (cela !provoque la première fenêtre à effacer)

:au FocusGained * :redraw!

La syntaxe ici peut être lue comme «exécutez automatiquement la commande (au est l'abréviation de autocmd) :redraw!lorsque j'obtiens l'événement FocusGainedpour tout fichier correspondant au modèle *».

pour le rendre permanent, ajoutez-le à votre ~/.vimrc(le premier :n'est pas nécessaire dans vimrc).

pour tester des événements, vous pouvez utiliser une commande plus «évidente» comme

:au FocusGained * :q!
cjh
la source
1
Merci. Je lui ai donné un test de base, et il semblait fonctionner sans problème de performances.
Jeromy Anglim