Wo speichert VIM (gvim/macvim) Auslagerungsdateien für nicht gespeicherte/unbenannte Puffer?

Wo speichert VIM (gvim/macvim) Auslagerungsdateien für nicht gespeicherte/unbenannte Puffer?

Wo speichert VIM (gvim/macvim) Auslagerungsdateien für nicht gespeicherte/unbenannte Puffer? (Falls dies überhaupt der Fall ist).

Hintergrund: Während eines mittelintensiven Seminars machte ich mir Notizen in einem unbenannten/nicht gespeicherten MacVim-Puffer, als dem MacBook der Saft ausging und es sich aus heiterem Himmel ausschaltete (es ging nicht wie üblich in den Ruhezustand bzw. in den Energiesparmodus).

Frage: Weiß jemand, ob die Möglichkeit besteht, dass die nicht gespeicherte Arbeit in einer Auslagerungsdatei (.swp) oder Ähnlichem gespeichert wurde und wiederhergestellt werden könnte?

Systemdetails: Dies geschah insbesondere bei der Verwendung von MacVim auf einem Mac OS X 10.5.8 (mögliche Wiederherstellungshinweise für andere Versionen sind jedoch auch von Interesse). Ich habe MacVim noch nicht neu gestartet, falls dadurch ein Bereinigungsprozess gestartet würde.

Antwort1

Starten Sie vim und versuchen Sie:

:recover <filename>

Wenn die Datei nie einen Namen hatte, dann einfach:

:recover

Das ist Ihre beste Option. Weitere Informationen zu Auslagerungsdateien und Wiederherstellung finden Sie unter:

:help usr_11

Was die Auslagerungsdateien betrifft, so werden sie normalerweise im selben Verzeichnis wie die zu bearbeitende Datei gespeichert, jedoch mit einem . am Anfang, um sie zu verbergen, und .swp am Ende. Sie können sie aber auch mit etwas wie dem folgenden an eine andere Stelle verschieben:

:set directory=~/vimswap

o.ä.

Sehen:

:help swap

Für alle Einzelheiten.

Eine Vim-Auslagerungsdatei ist allerdings nicht dasselbe wie der bearbeitete Puffer. Lesen Sie sich daher unbedingt dort nach, was zur Wiederherstellung getan werden kann.


BEARBEITEN: Kommentare als Antwort auf die Frage:

[…] Es scheint in Ihrem aktuellen Arbeitsverzeichnis, ~/tmp, /var/tmp und /tmp nach Auslagerungsdateien zu suchen, und in meinem Fall habe ich immer ein aktuelles Arbeitsverzeichnis festgelegt und dort wurde es gespeichert.– dsclementsen 5. Okt. 10 um 1:42

Schauen Sie sich auch unbedingt das Befehlszeilenargument vim -r an. Dadurch werden alle gefundenen Auslagerungsdateien und ihr Speicherort ausgedruckt. Darüber hinaus enthält es viele zusätzliche Informationen wie Datum/Änderung/Benutzername/usw.– Neg_EV 5. Okt. 2010 um 13:49

Antwort2

Ich arbeite unter Windows 10 und :recoverkonnte keine Auslagerungsdatei finden. vim -rDie Auslagerungsdatei der letzten Bearbeitungssitzung (ebenfalls nie gespeichert) mit dem Namen _.swp wurde aufgelistet. Die Wiederherstellung war mit möglich :recover _.

Antwort3

Die Antwort lautet: überall. Der Trick besteht darin, das richtige zu finden. Einige befinden sich in Ihrem /tmp-Verzeichnis, viele jedoch irgendwo in Ihrem Home-Verzeichnis.

Es gibt hierfür vielleicht effizientere Möglichkeiten, aber Folgendes hat bei mir funktioniert, als ich eine unbenannte Datei verloren habe (auf dem MacBook):

im Home-Verzeichnis nach Backup-Dateien suchen (dauert ein paar Sekunden und kann wahrscheinlich intelligenter gestaltet werden):

find ./ -name ".s*" > findVimBackups.txt

Datei öffnen:

vim findVimBackups.txt

Entfernen Sie Dateinamen, die nicht für die Sicherung unbenannter Dateien bestimmt sind:

:g!/\/\.s..$/d
:g/svn/d

Jetzt wird mir eine Liste mit den Speicherorten der unbenannten Backup-Dateien angezeigt. In jedem dieser Verzeichnisse führe ich Folgendes aus, bis ich die Datei(en) von heute finde:

ls -ltra <directory>

Ich wechsle in das richtige Verzeichnis, öffne vim, gebe :recover ein und wähle das richtige Backup aus.

Antwort4

Ich konnte meine Datei auf einer Win 10-Box wie folgt wiederherstellen:

Gehen Sie in das Verzeichnis, in dem Sie Vim zuletzt geöffnet haben. Bei mir war das über die Vim-Verknüpfung in der Taskleiste von Windows 10. Klicken Sie mit der rechten Maustaste auf das Vim-Symbol, klicken Sie erneut mit der rechten Maustaste auf die Vim-Verknüpfung und wählen Sie „Eigenschaften“. Ein Dialogfeld wird angezeigt. Der Wert im Feld „Starten in:“ in diesem Dialogfeld ist der, in dem ich Vim tatsächlich zuletzt geöffnet habe. Bei mir war dieser Wert %HOMEDRIVE%%HOMEPATH%. Gehen Sie zu einer DOS-Befehlskonsole und rufen Sie die Befehle auf echo %HOMEDRIVE%, echo %HOMEPATH%um festzustellen, wo sich das befindet.

Untersuchen Sie die letzten Änderungsdaten aller _.s*-Dateien in diesem Verzeichnis. Suchen Sie die Datei mit dem letzten Änderungsdatum, das mit dem Datum übereinstimmt, an dem Sie die Datei zuletzt geöffnet haben.

Öffnen Sie vim. Geben Sie :recover _filename_where einDateinameist die Datei, die Sie in der vorherigen Anleitung gefunden haben.

verwandte Informationen