Comment puis-je obliger vim à conserver son historique d'annulation?


36

Si j'édite deux fichiers avec vim, le passage à l'autre fichier (: bnext,: bprev) semble supprimer l'historique d'annulation du fichier ouvert. Si vous appuyez sur la touche 'u', vous obtenez le message "Déjà, modification la plus ancienne".

Par exemple:

  1. vim testfile1 testfile2
  2. ajouter des trucs à testfile1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. eep! ne peut pas annuler!

Existe-t-il un moyen de conserver cet historique pour les tampons non visibles?


cela devrait-il être en superutilisateur ou stackoverflow?
Ressu

@Ressu - bon point, comment on dit? Meta question publiée: meta.ubuntu.stackexchange.com/questions/47/…
Jeremy Kerr le

En fonction du résultat de cette méta question, je suis susceptible de le supprimer.
Jeremy Kerr

Réponses:


42

La dernière version de vim (7.3) comporte une annulation persistante. Vous pouvez ainsi apporter une modification, fermer vim complètement (même arrêter et redémarrer), redémarrer vim et annuler. Dans votre .vimrc:

" tell it to use an undo file
set undofile
" set a directory to store the undo history
set undodir=/home/yourname/.vimundo/

11
Notez que vous devez d'abord créer le répertoire, vim ne le fait pas automatiquement. Les fichiers annulés sont sauvegardés en utilisant le chemin du système de fichiers (en même temps que le fichier). Si vous êtes dans /home/peter, alors l'édition .bashrccréera le fichier /home/peter/.vimundo/%home%peter%.bashrc.
Lekensteyn


1

Vous pouvez utiliser les fenêtres .
"vim -o testfile1 testfile2" - ouvre les fichiers dans une fenêtre séparée.
": sp nomfichier" - divise et ouvre "nomfichier".
": vsp filename" - division verticale et ouvrir "filename".
"Ctrl + w + flèche" - Change la fenêtre d'affichage.


Je préfère ne pas garder de tampon visible en permanence pour chaque fichier; il n’est pas rare d’avoir plus de 20 fichiers ouverts en même temps.
Jeremy Kerr
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.