J'ai un fichier de configuration que je garde ouvert dans vim, mais il est parfois modifié sur le disque sans que ces modifications soient répercutées sur le terminal. Puis-je actualiser le contenu à l'écran sans fermer ni rouvrir le fichier? Si c'est le cas, comment?
362
Réponses:
Vous pouvez utiliser la
:edit
commande, sans spécifier de nom de fichier, pour recharger le fichier actuel. Si vous avez apporté des modifications au fichier, vous pouvez utiliser:edit!
pour forcer le rechargement du fichier actuel (vous perdrez vos modifications).La commande
:edit
peut être abrégée par:e
. Le force-edit peut donc être fait par:e!
la source
:e!
.:edit
et:edit!
vous pouvez utiliser:e
et:e!
respectivement.u
le faire:e!
.:bufdo e
En plus d'actualiser manuellement le fichier avec
:edit
, vous pouvez mettre dans votre~/.vimrc
pour que Vim actualise automatiquement tous les fichiers qui n'ont pas été édités par Vim. Voir aussi
:checktime
.la source
git pull
soyez conscient, vous risquez de perdre vos modifications non enregistrées à l'écran de manière non intentionnelle.gvim
ou exécuter des commandes externes.:checktime
autoread
peut être déclenché automatiquement X secondes après que le curseur ait cessé de bouger, voir cette réponse .TL; DR
Passez à la
Wrap-up
rubrique desvimrc
lignes à ajouter pour améliorer votre vie.Manuellement
Courir
:checktime
Automatiquement
Pour charger automatiquement les modifications, ajoutez dans votre
vimrc
:set autoread
Cette réponse ajoute une mise en garde:
Lisez la suite pour des solutions.
Déclenche lorsque le curseur ne bouge plus
Ajouter à votre
vimrc
:Par défaut, CursorHold est déclenché après que le curseur est resté immobile pendant 4 secondes et est configurable via updatetime .
Déclenchement sur changement de tampon ou focus terminal
Ajoutez les éléments suivants à votre
vimrc
déclencheurautoread
lors de la modification des tampons dans vim:Mise au point de la fenêtre du terminal dans vim
Pour avoir
FocusGained
(voir ci-dessus) travailler en clair vim, à l'intérieur d'un émulateur de terminal (Xterm, tmux, etc.), installez le plugin: vim-tmux-focus-eventsSur les versions de tmux> 1.9, vous devrez ajouter
.tmux.conf
:Emballer
Les notifications lorsque des
autoread
déclencheurs sont également possibles .Voici mes
vimrc
lignes pour mettre en œuvre tout ce qui précède:Merci à ErichBSchulz de m'avoir orienté dans la bonne direction avec
au CursorHold
.la source