50 votes

Rechargement automatique d'un fichier dans le VIM dès qu'il est modifié sur le disque

En supposant qu'un fichier n'ait pas de modifications non sauvegardées dans la mémoire tampon du VIM, j'aimerais qu'il se recharge automatiquement si le fichier change sur le disque. Le cas le plus fréquent est la mise à jour de la copie de travail dans laquelle se trouve le fichier.

Comment y parvenir ?

1voto

Andrew Points 267

Il y a quelques plugins listés aquí qui peut fonctionner en fonction de votre version de Vim.

Une autre approche consiste à envoyer périodiquement le checktime à vim à partir d'un processus externe. Voici un script ShellJS pour faire cela (nécessite shelljs-plugin-sleep NeoVim, et nvr )

while (true) {
  sleep(15);
  var servernames = exec('nvr --serverlist').trim().split('\n');
  if (!servernames.length || !servernames[0]) {
    continue;
  }
  servernames.forEach(
    (sn) => exec(`nvr -c "checktime" --servername ${sn}`) );
}

0voto

Lib Eco Points 1

Je l'utilise avec un alias, que je place dans le fichier /etc/profile pour tous les utilisateurs :

alias viml="vim $\"+:set autoread | au CursorHold * checktime | call feedkeys('lh')\" "

Ensuite, vous pouvez appeler viml, qui rechargera le fichier à chaque changement (avec un petit décalage). Il vous maintiendra sur la ligne actuelle du curseur. Appuyez sur Shift+G pour aller à la fin du fichier.

sudo viml /var/log/mysql/mysql.log

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X