2015-11-24 89 views
1

在我的計算機崩潰之前,我在vim緩衝區中保存了對文件foo.txt的未保存更改。運行vim -r顯示目錄中沒有包含foo.txt的交換文件。在vim中恢復未保存的更改

有什麼方法可以恢復這些更改嗎?

+0

不可以。如果沒有交換文件,數據就沒有問題了。 –

+0

不好意思。是否有一個設置可以打開,以便在每次更改時自動寫入交換文件? – bear

回答

0
Darn, okay. Is there a setting I could turn on to enable automatic writes 
to a swap file on each change? 

閱讀:h swap,特別是如下:

更新交換〜

交換文件會被輸入200個字符後更新,或者當你有 4秒內沒有錄入任何。只有當緩衝區 發生變化時纔會發生這種情況,而不是當您只是移動時。它不是 一直保持最新狀態的原因是,這會使正常工作減慢太多。您可以使用 'updatecount'選項更改200個字符數。您可以使用「更新時間」 選項設置時間。時間以毫秒爲單位。在寫入交換文件 後,Vim將文件同步到磁盤。這需要一些時間,特別是在繁忙的Unix系統上。如果你不想要這個,你可以設置'swapsync' 選項爲空字符串。但是失去工作的風險變得更大 。在某些非Unix系統(MS-DOS,Amiga)上,根本不會寫交換文件 。

如果不想寫入交換文件,可以通過將'updatecount'選項設置爲0來關閉 。當啓動Vim和「-n」選項時,可以執行上述操作。寫入可以通過 重新開啓,將'updatecount'選項設置爲非零。在執行此操作時,將爲所有緩衝區創建交換文件 。但是,在將 'updatecount'設置爲零時,現有交換文件將不會被刪除,它只會影響在此之後打開的文件。