Vim verliert den Rückgängigmachungsverlauf, wenn Puffer gewechselt werden

70

Wenn ich in einer Datei arbeite, in einen anderen Puffer wechsle und dann zurück wechsle, habe ich meinen Rückgängig-Verlauf verloren.

  1. vim File1.txt - Nehmen Sie eine Reihe von Änderungen vor und speichern Sie.
  2. Neuen Puffer öffnen - :e test.txt
  3. Zurück zu File1.txt wechseln - :b#
  4. Die Geschichte rückgängig machen ist weg.

Irgendwelche Problemumgehungen dafür?

Brian
quelle
Das hat mich mehr als einmal überrascht. Ich vermute, Sie fragen, weil :sp test.txtoder :tabe test.txtnicht für Sie arbeiten?
Dash-Tom-Bang
Ja. Ich verwende keine Registerkarten, da ich finde, dass es am einfachsten ist, nur eine vertikale Aufteilung zu haben. Wenn nötig, mache ich mehr Splits, aber das Hauptproblem ist, dass ich ständig die Puffer wechsle und schließlich zu einem vorherigen Puffer zurückkehren und etwas rückgängig machen möchte. Wenn ich weiß, dass ich eine Datei häufig bearbeiten werde und möglicherweise rückgängig gemacht werden muss, versuche ich, den Puffer in diesem Fenster nicht zu wechseln - aber manchmal vergesse ich es.
Brian

Antworten:

81

Du könntest :set hidden. Dies bedeutet, dass der Puffer der alten Datei nur ausgeblendet wird, wenn Sie zur neuen Datei wechseln. Wenn Sie zurückschalten, haben Sie immer noch Ihren Rückgängig-Verlauf.

Rüdiger Hanke
quelle
5
das vim, das ich sonst liebe, saugt hier ein wenig :( Die Option ": set hidden" sollte standardmäßig aktiviert sein.
Tem Pora
67

Sie können auch dauerhaftes Rückgängigmachen hinzufügen. Dadurch speichert vim Ihr Rückgängigmachen auch beim Neustart:

" Persistent undo
set undofile
set undodir=$HOME/.vim/undo

set undolevels=1000
set undoreload=10000

Bearbeiten - über @sanbor:

Vergiss nicht, es zu tun mkdir ~/.vim/undo, sonst macht es vim nicht für dich.

Aaron Jensen
quelle
2
Vergiss nicht mkdir ~/.vim/undo, sonst macht vim es nicht für dich. Quelle: stackoverflow.com/questions/5700389/using-vims-persistent-undo
sanbor
1
@Patrick Weil es nicht besser ist. Ich mache oft spontane Änderungen in einer Datei und speichere aus Gewohnheit, nur um bald unbewiesenen Müll mit einer Undo-Serie zu löschen. Das Ausgraben von Undos vor dem Öffnen der Datei (~ letzter stabiler Zustand) wäre schrecklich!
blutiger