Kann ich eine gelöschte Datei nach dem automatischen Neuladen aus .swp wiederherstellen?

884
Konrad Rudolph

Dies hängt damit zusammen, aber nicht gelöst durch die Frage „ Wie kann ich die Original - Datei aus einer .swp Datei wiederherstellen? ”.

Ich hatte zwei neu erstellte Dateien a.txtund b.txtöffnete in Puffern. Der aktive Puffer wurde b.txtund ich versehentlich gelöscht a.txtund dann auf den Puffer umgestellt a.txt. Leider habe ich das auch set autoreadund set autowritedurch das Nachladen des Puffers habe ich ihn geleert.

Ich habe einfach versucht, die Löschung in Vim durch Drücken rückgängig zu machen u, aber ohne Erfolg. Gibt es eine Möglichkeit, den Inhalt der gelöschten Datei wiederherzustellen .a.txt.swp? Die Lösung der verknüpften Frage funktioniert hier nicht, vermutlich weil autowrite: Die Datei wird nicht wiederhergestellt.

Falls es wichtig ist, habe ich auch set undofile. Da die Datei in dieser Vim-Sitzung neu erstellt wurde, sollte die .swpDatei grundsätzlich den vollständigen Satz von Änderungen enthalten, die an der Datei vorgenommen wurden.

1
Es ist falsch anzunehmen, dass der vollständige Dateiinhalt in einer `.swp`-Datei vorhanden ist. Die unglückliche Realität ist, dass dies nicht der Fall ist. Um es etwas zu vereinfachen, enthält eine Vim `.swp`-Datei nur die erforderlichen Informationen, um die Änderungen in der Datei seit dem letzten Schreibvorgang" wiederherzustellen ". Wenn die Originaldatei nicht mehr vorhanden ist, sind nicht genügend Informationen vorhanden, damit die `.swp`-Datei wirksam wird. Heptite vor 10 Jahren 0
@Heptite Das würde ich auch vermuten, aber es scheint falsch zu sein: In der verlinkten Frage reicht die `.swp`-Datei * aus, um die gelöschte Datei abzurufen. Der einzige Unterschied ist, dass ich `auto ` aktiv habe. Da ich unendlich viel undo aktiv habe, gibt es keinen * Grund *, warum meine Datei nicht wiederherstellbar sein sollte: Der Status der Datei vor der letzten Operation (= das Löschen) sollte in der Undo-Datei persistent sein. Konrad Rudolph vor 10 Jahren 0
Es gibt nur eine Antwort, die darauf hindeutet, und sie widerspricht sich. Es muss neu formuliert werden. Und eine Undo-Datei enthält auch nicht den gesamten Dateiinhalt. Sie können _some_ -Daten möglicherweise wiederherstellen, indem Sie eine leere Datei mit dem alten Dateinamen erstellen und "wiederherstellen". Sie erhalten jedoch nie alle Daten. Heptite vor 10 Jahren 0
@Heptite Danke für die Erklärung. Schande. Nun, mein System erstellt regelmäßig Sicherungskopien aller Dateien. Ich hatte einfach das Pech, die Datei nur innerhalb des einstündigen Fensters zu erstellen und dann zu löschen, bis das Update durchgeführt worden wäre. ;-) Konrad Rudolph vor 10 Jahren 0

1 Antwort auf die Frage

2
Christian Brabandt

Möglicherweise können Sie den Inhalt aus dem Undofile wiederherstellen. Sie müssen Vim jedoch mit dem Undorecover- Patch neu kompilieren .