Die letzte Nachricht auf vim.org befasst sich mit der Verwendung des Undofiles, um Ihren Verlauf zu speichern und Änderungen auch nach einem Neustart rückgängig zu machen:
Eine Funktion, die ich gerne selbst benutze, ist vielen Nutzern nicht bekannt, wie ich am vergangenen Wochenende herausgefunden habe. Neben dem Rückgängigmachen mit so vielen Ebenen, wie Sie möchten, bietet Vim auch die Speicherung der Rückgängigmachungsinformationen in einer Datei an. So können Sie Vim beenden, Ihren Computer neu starten und die vorgenommenen Änderungen rückgängig machen. Siehe die Hilfe für 'undofile'. (Bram Moolenaar)
Wie kann ich diese Funktion aktivieren und verwenden?
persistent-state
undo-redo
Rückgängig machen
quelle
quelle
Antworten:
Die einfachste Version ist: Erstelle ein
~/.vim/undo-dir/
Verzeichnis und füge Folgendes hinzu.vimrc
:Es ist jedoch nicht einwandfrei und es ist besser, weiterzulesen. Von mir selbst
.vimrc
:Ich bevorzuge es, zufällige Verzeichnisse nicht mit Undo-Dateien zu überladen. Also habe ich die
undodir
Option gesetzt, die alle in einem Undo-Verzeichnis ablegt. Das führt zu einem Problem: Ich bin faul und möchte dieses Verzeichnis nicht auf allen meinen Computern erstellen (ich verwende ein Versionskontrollsystem, um meine.vimrc
Daten auf mehreren Computern zu synchronisieren ). Zum Glück ist es einfach genug, die Verzeichnisse von Vim überprüfen zu lassen und zu erstellen, wenn sie nicht existieren.Beachten Sie auch den
0700
Modus im Rückgängig-Verzeichnis (das sind die vollständigen Berechtigungen für den Eigentümer, keine Berechtigungen für andere Personen). Welche Dateien ich wann bearbeitet habe, etc. sollen privat bleiben. Und da dies ein Verzeichnis ist, auf das nur ich zugreifen kann, muss ich mir keine Sorgen machen, dass jemand anderes einen Symlink oder eine eigene Datei zum Rückgängigmachen einfügt, oder was auch immer, wenn Sie sich Gedanken über die Verwendung eines temporären Systemverzeichnisses machen müssen.Da es sich nicht um ein temporäres Systemverzeichnis handelt, unterliegt es nicht der Richtlinie zur Bereinigung von Systemdateien. Oft ist das ziemlich kurz - ungefähr eine Woche. Damit es nicht für immer wächst, habe ich Folgendes in meine Liste aufgenommen
crontab
:Nach 90 Tagen ohne Änderung werden sie gelöscht. (Ehrlich gesagt sind sie nicht wirklich so groß, Sie könnten sie leicht für immer damit belassen, wie billig die Festplatte ist. Beachten Sie jedoch auch Ihre Privatsphäre, wenn Ihr Computer jemals kompromittiert wird.)
quelle
mkdir()
Funktion das Erstellen mehrerer Verzeichnisstrukturen mit der"p"
Option für{path}
Parameter unterstützt. Das obige Skript kann also etwas vereinfacht werden. Verwendencall mkdir($HOME."/.vim/undo-dir", "p", 0700)
funktioniert für mich mindestens in Vim 7.4.160.