VIM (gvim/macvim) 在哪裡保存未儲存/未命名緩衝區的交換檔案?

VIM (gvim/macvim) 在哪裡保存未儲存/未命名緩衝區的交換檔案?

VIM (gvim/macvim) 在哪裡保存未儲存/未命名緩衝區的交換檔案? (如果確實如此的話)。

背景: 在整個半密集的研討會中,我在一個未命名/未保存的 MacVim 緩衝區中做筆記,這時 MacBook 電量耗盡並突然斷電(它沒有像通常那樣休眠/休眠)。

問題: 有人知道未儲存的工作是否有可能已儲存到交換(.swp)檔案或類似檔案中,可以恢復嗎?

系統詳細資訊: 特別是在 Mac OS X 10.5.8 上使用 MacVim 時會發生這種情況(但其他版本的可能復原提示也很有趣)。我還沒有重新啟動 MacVim,以防這樣做會啟動清理過程。

答案1

啟動 vim 並嘗試:

:recover <filename>

如果該文件從未有名稱,則只需:

:recover

這是你最好的選擇。有關交換文件和恢復的更多信息,請參閱:

:help usr_11

關於交換文件,通常它們保存在與正在編輯的文件相同的目錄中,但擴展名為 .添加了開頭以使其隱藏,並在末尾添加了 .swp,但可以通過以下方式將它們移動到其他地方:

:set directory=~/vimswap

或類似的。

看:

:help swap

對於所有細節。

然而,vim 交換文件與編輯的緩衝區不同,因此請務必閱讀那裡的內容以了解如何進行復原。


編輯: 回答問題的評論:

[...] 它似乎在您當前的工作目錄~/tmp、/var/tmp 和/tmp 中查找交換文件,在我的情況下,我總是有一個當前工作目錄集,這就是它保存的地方。– dsclementsen 2010 年 10 月 5 日 1:42

另外,請務必檢查 vim -r 命令列參數。這將列印出找到的所有交換文件及其位置。此外,它還會有很多額外的信息,例如日期/修改/用戶名/等等...– Neg_EV 2010 年 10 月 5 日 13:49

答案2

我在 Windows 10 上工作,但:recover沒有找到交換文件。vim -r列出了上次編輯會話(也從未儲存過)的名為 _.swp 的交換檔案。可以使用 進行恢復:recover _

答案3

答案是:到處都是。訣竅是找到合適的人。有些位於您的 /tmp 目錄中,但許多位於您的主目錄下。

也許有更有效的方法可以做到這一點,但是當我丟失一個未命名的檔案(在 MacBook 上)時,以下方法對我有用:

在主目錄中,搜尋備份檔案(需要幾秒鐘,並且可以變得更聰明):

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

開啟文件:

vim findVimBackups.txt

刪除不適合未命名檔案備份的檔案名稱:

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

現在我看到未命名備份檔案的位置清單。在每個目錄中,我運行以下命令,直到找到今天的檔案:

ls -ltra <directory>

我 cd 進入正確的目錄並打開 vim 並輸入 :recover 並選擇正確的備份。

答案4

我能夠在 win 10 機器上恢復我的文件,如下所示:

前往您上次開啟 vim 的目錄。對我來說,這是透過 win 10 工作列上的 vim 快捷方式。右鍵單擊 vim 圖標,再次右鍵單擊 vim 快捷方式並選擇“屬性”。將彈出一個對話框。該對話方塊中「開始於:​​」欄位中的值是我上次開啟 vim 的位置。對我來說,這個價值是%HOMEDRIVE%%HOMEPATH%。前往 dos 命令控制台並呼叫命令echo %HOMEDRIVE%echo %HOMEPATH%確定其位置。

檢查該目錄中所有 _.s* 檔案的上次修改日期。尋找上次修改日期與您上次開啟該文件的時間相符的文件。

打開vim。輸入:recover _filename_位置檔案名稱是您在前面的說明中找到的文件。

相關內容