回答有關恢復的問題,Vim不知道有關備份的東西。它的備份系統非常簡單 - 寫一個文件。要恢復,你必須手動完成。
但是,您可以向備份添加更多信息,以便於恢復。
理想情況下,backupdir
將支付//
以強制它擴展文件的路徑並用%
替換/
。例如/tmp/foo.rb
將成爲備份文件`tmp%foo.rb'。
請參閱undo
和*.swp
目錄設置裏面做採取//
:help undodir
和:help directory
。
但我們可以僞造這個!
" Prevent backups from overwriting each other. The naming is weird,
" since I'm using the 'backupext' variable to append the path.
" So the file '/home/docwhat/.vimrc' becomes '.vimrc%home%docwhat~'
au BufWritePre * let &backupext ='@'.substitute(substitute(substitute(expand('%:p:h'), '/', '%', 'g'), '\', '%', 'g'), ':', '', 'g').'~'
備份文件讀取文件名然後目錄,但它確實工作,應該是足夠的唯一。
舉例:.vimrc%home%docwhat~
是爲/home/docwhat/.vimrc
如果你想一分備份分鐘備份,所以你失去工作少,您可以附加一個時間戳的文件名:
au BufWritePre * let &backupext = substitute(expand('%:p:h'), '/', '%', 'g') . '%' . strftime('%FT%T') . '~'
但我d建議你設置一個cron作業來定期清理這個目錄。如果你編輯了很多我的文件,這個文件會很快變大。
或者,你可以做一些巧妙的事情,在寫作之前(用BufWritePre
鉤子)改變backupdir
,但是vim的聰明程度超出了我的眼界。
Ciao!
其實,它看起來像邊問題已經回來咬我。其中一個備份覆蓋另一個,並且我沒有任何/path/two/file.html ...嘆息的記錄。 – Tron
你可以通過閱讀〜/ .viminfo文件來查看某些編輯歷史記錄。 – taro