Es gibt keine eingebaute Option, obwohl :help 'autosave'
(in todo.txt) auf eine Beschreibung verweist, was eine solche Option tun könnte.
Eine Möglichkeit, dies zu implementieren, ist die Verwendung des CursorHold
Ereignisses autocommand. Dieses Ereignis wird ausgelöst, wenn der Benutzer seit 'updatetime'
Millisekunden keine Taste gedrückt hat .
autocmd CursorHold * update
Der :update
Befehl speichert den Puffer nur, wenn er geändert wird. Wenn dies auch im aktiven Einfügemodus geschehen soll, CursorHoldI
kann dies zur Ereignisliste hinzugefügt werden.
autocmd CursorHold,CursorHoldI * update
Eine weitere Alternative ist die 'autowrite'
Option, mit der der Puffer gespeichert wird, bevor ein externer Befehl ausgeführt wird (nützlich zum Speichern vor dem Ausführen :make
) oder auf einen anderen Puffer umgeschaltet wird.
Vim verfügt zwar über eine automatische Speicherfunktion, speichert diese jedoch in der Wiederherstellungsdatei.
Wenn Sie ein Dokument bearbeiten, erstellt z. B.
MyFile.txt
vim die Revovery-Datei.MyFile.txt.swp
. Wenn Ihr System abstürzt oder Ihre Sitzung abstürzt, können Sie die Verbindung wiederherstellen, indem Sie Folgendes eingeben:Dadurch wird die Datei zur Bearbeitung geöffnet und die zuletzt vorgenommenen Änderungen werden wiederhergestellt.
Sie können die wiederhergestellte Version dann wie gewohnt speichern
:w
.Wenn Sie vim beenden, wird es leider die
.MyFile.txt.swp
Umgebung verlassen und Sie müssen es manuell entfernen:Siehe „Recovery“ Man Seite auch Kapitel 11
quelle
:wq
oder:q!
oderZZ
oder usw.), sollten Auslagerungsdateien automatisch entfernt werden.Ich habe ein Plugin vim-autosave erstellt, das die Vim 8-Funktion von Timern verwendet, um Ihre Puffer regelmäßig zu speichern.
quelle
Ich lasse meinen Vim jedes Mal alles speichern, wenn der Fokus verloren geht.
Meine Muster sind ziemlich lang und ich benutze sie in mehreren AutocMDS, aber der Vollständigkeit halber sieht es so aus:
quelle
Wie andere angegeben haben, verfügt vim über eine Auslagerungsdatei (.swp), die an der Stelle erstellt wird, an der sich Ihre ursprüngliche Datei befindet. In Ihrer .vimrc-Datei können Sie jedoch das .swp-Verzeichnis festlegen.
Sie müssen das Verzeichnis mit erstellen
mkdir
und dann Ihre .vimrc auf diesen Speicherort einstellen.quelle
Das vim-workspace- Plugin verfügt über eine anpassbare Funktion zum automatischen Speichern, die möglicherweise Ihren Anforderungen entspricht. Standardmäßig wird das automatische Speichern in einer Arbeitsbereichssitzung (Hauptfunktion) aktiviert. Sie können es jedoch so einstellen, dass es immer automatisch gespeichert wird, wenn Sie nur danach suchen (
let g:workspace_autosave_always = 1
).quelle
Versuchen Sie, den Puffer zu speichern, wenn sich der Text ändert:
Das funktioniert bei mir.
Quelle
quelle