56 votes

Détecter le changement de fichier, offre de recharger le fichier

J'utilise normalement gVim pour l'édition, mais j'utilise parfois vim lorsque je me connecte à distance à ma machine.

Lorsqu'un fichier est ouvert dans gVim et qu'il a changé de l'extérieur (par exemple, de nouvelles mises à jour à partir d'un référentiel), gVim propose de le recharger.

Cependant, lorsqu'une telle chose se produit avec Vim, cela ne fait rien tant que vous n'avez pas essayé de sauvegarder le fichier. Il vous avertit simplement que le fichier a changé, mais n'offre pas de le recharger.

Y at-il un réglage pour faire correspondre le comportement de Vim à gVim?

61voto

avadh Points 449

Si vous voulez ouvrir le fichier mis à jour, utilisez

 :e
 

Il convient de recharger le fichier ouvert.

53voto

Brian Carper Points 40078

Comme ashcatch dit, l' :checktime commande rechercher les modifications sur le disque et vous invite à recharger. Donc, mettre Vim pour exécuter checktime automatiquement après un certain événement. Evénement à utiliser est à vous. Une possibilité est d'utiliser CursorHold, qui se déclenche une fois que vous déplacez le curseur, puis laissez reposer encore pour updatetime millisecondes. (Par défaut 4 secondes.)

:au CursorHold * checktime

Vous pouvez aussi le mettre sur WinEnter ou BufWinEnter de sorte qu'il change à chaque fois que vous basculez entre les tampons/windows. Si vous êtes vraiment paranoïaque, vous pouvez l'installer sur CursorMoved donc il vérifie le fichier sur le disque à chaque fois que vous déplacez le curseur, mais c'est sans doute exagéré, et peut être un peu.

Voir :h checktime, :h updatetime, :h autocmd-events-abc.

25voto

Matt Simmons Points 317

Ceci est fait en utilisant une commande automatique appelée FileChangedShell. Je suis trop nouveau pour poster des liens, mais le mieux serait de lire la partie autocmd de la documentation de vim (Google pour cela)

mais l'essentiel est de définir quelque chose comme la ligne suivante dans votre vimrc

 :au FileChangedShell * echo "Warning: File changed on disk"
 

9voto

ashcatch Points 1464

Vous pouvez déclencher manuellement la vérification avec :checktime . gvim le fait à chaque fois qu'il se concentre à nouveau, il n'est donc pas nécessaire de faire souvent la vérification manuelle.

Je ne sais pas s'il existe une approche différente (comme la vérification automatique dans un certain intervalle de temps).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X