Das Standardverhalten zum Rückgängigmachen in Evil ist zu grobkörnig, da es alles berücksichtigt, was zwischen dem Aufrufen des Einfügemodus und dem Verlassen des Einfügemodus als eine Bearbeitungsoperation stattfindet. Wenn Sie während eines Einfügens einen ganzen Textabschnitt eingeben und dann rückgängig machen, wird der gesamte Absatz entfernt. Im Gegensatz dazu startet Vim eine neue Rückgängig-Einheit, wenn Sie den Cursor im Einfügemodus auf eine andere Weise als durch Eingabe von Text bewegen.
Evil verfügt über eine Anpassungsvariable, mit der Sie einen detaillierteren Rückgängig-Verlauf erhalten können:
(setq evil-want-fine-undo t)
Mit dieser Einstellung startet Evil eine neue Undo-Einheit, wenn der Cursor im Einfügemodus bewegt wird, genau wie Vim. Diese Einstellung wirkt sich jedoch auch auf die Handhabung des Ersetzungsvorgangs aus: Wenn Sie ein Wort mit ersetzen cw
, müssen Sie den Vorgang zweimal rückgängig machen, um das ursprüngliche Wort wiederherzustellen: einmal, um das neue Wort zu entfernen, und einmal, um das ursprüngliche Wort erneut einzufügen. Dies ist mit Vim nicht vereinbar und macht wenig Sinn, da replace atomar sein sollte.
Die Frage: Wie kann ich Evil und Undo-Tree konfigurieren, um das Undo-Verhalten von Vim zu erhalten?
quelle
Antworten:
Da @shosti darauf hinwies, dass Evil die Abweichung vom Vim-Verhalten als Fehler ansieht, habe ich einen Fehler gemeldet und einer der Autoren von Evil hat einen neuen möglichen Wert hinzugefügt für
evil-want-fine-undo
:Mit dieser Einstellung erhalten Sie neue Rückgängig-Einheiten, wenn Sie den Cursor im Einfügemodus bewegen. Ersetzungsvorgänge werden jedoch in einem Schritt rückgängig gemacht. Soweit ich das beurteilen kann, stimmt das mit Vim überein. Einzelheiten finden Sie hier .
quelle
'fine
Einstellung veraltet ist.Laut Variablenbeschreibung (siehe
C-h v evil-want-fine-undo
) wird der Wertfine
aufgrund inkonsistenten Verhaltens nicht mehr unterstützt.Da ich Undo verwende, um Tippfehler rückgängig zu machen, hat die erwähnte Einstellung meiner Zuteilung geholfen.
Ich hatte Probleme Verhängnis Fehler in org-Tabelle Formelbearbeitung, da Sie nicht über die Insert - Modus verlassen müssen , wenn Sie ändern möchten
*Edit Forumlas*
mitC-'
.quelle