22
A
回答
9
當你開始讀文件,設置一個緩衝區變量到當前時間:
au BufRead,BufNewFile * let b:save_time = localtime()
設置一個事件,以檢查是否有足夠的時間已過自上次保存和更新,如果沒有:
au CursorHold * call UpdateFile()
設置自動保存時間,以秒:
let g:autosave_time = 1
定義一個函數來保存,如果東東文件DED:
" save if needed/update the save_time after the save
function! UpdateFile()
if((localtime() - b:save_time) >= g:autosave_time)
update
let b:save_time = localtime()
else
" just debugging info
echo "[+] ". (localtime() - b:save_time) ." seconds have elapsed so far."
endif
endfunction
然後,重置明確的節省時間:
au BufWritePre * let b:save_time = localtime()
我沒有測試過上述的VIM 7.0和更高版本。此外,CursorHold事件不太可能足夠用於這麼小的自動保存期(記錄時也不會觸發) - 也可以在CursorMoved上調用UpdateFile()
。
另外,請考慮使用交換文件。默認情況下,在輸入200個字符或不活動4秒之後,將交換文件寫入。從交換中恢復很簡單,也許更可靠,以防出現問題。
23
無論何時改變文本,這都會保存緩衝區。 (VIM 7.4)
autocmd TextChanged,TextChangedI <buffer> silent write
+1
爲了優雅和簡單大拇指!像微風一樣工作! [需要把它放在他的'_vimrc'中。] – llinfeng
1
的vim-workspace插件有可能滿足您的需求(用自動讀這樣就可以獲得最後的作家獲勝行爲)相當定製的自動保存功能。 您可以將其設置爲始終自動保存(默認情況下,它僅在工作區會話中自動保存)並相應地設置更新時間。
let g:workspace_autosave_always = 1
updatetime=1000
相關問題
- 1. IntelliJ IDEA 2016.3.4每隔1秒自動保存我的文件
- 2. 每10秒自動保存一次文件
- 3. 如何每隔X秒自動刷新一次自動刷新?
- 4. 如何在Vim中定期自動保存所有文件?
- 5. 如何在iOS中每1秒自動調用一次方法?
- 6. 保存輸出到新的文件每隔10秒在Python 3
- 7. 如何讓cronjob每隔5分鐘保存一個excel文件?
- 8. 20秒後自動保存doc文件
- 9. 如何讓Vim在失去焦點時自動保存文件?
- 10. 如何每30秒自動加載一個xml文件?
- 11. vim如何保存文件?
- 12. 如何在gnuplot中每隔幾秒自動重新繪製一個圖表?
- 13. 每隔X分鐘自動保存所有Excel文件
- 14. 在VIM中保存整個文件
- 15. 在android中每隔1秒隱藏一次imageview,並顯示1秒
- 16. 如何每隔幾秒自動刷新一次HTML表格?
- 17. 如何每隔x秒在ICS文件中重複事件?
- 18. 如何每次在Vim中保存其「源文件」時自動更新或壓縮CSS,JS和HTML文件?
- 19. Android:如何從其他活動每隔1秒取數據?
- 20. 如何確保某些代碼每隔1秒不會超過1次?
- 21. 自動刷新UpdatePanel每隔5秒
- 22. 每隔幾秒就會自動溢出
- 23. 自動隨機div每隔n秒
- 24. 如何使用Javascript每隔1秒更改一次字符串
- 25. jsf 2:如何使Primefaces線圖每隔1秒更改一次?
- 26. 如何在Android的自動點擊一個按鈕,每一秒
- 27. 如何在log4net中每天保存一個日誌文件?
- 28. 如何爲自動保存的VIM會話自動生成文件名?
- 29. 如何在Vim中保存文件後自動執行shell命令?
- 30. Vim,保存文件時自動刪除交換文件
看來這個功能已經爲Vim的下一個版本計劃了(在Vim 7.3':help autosave'中顯示'todo.txt')。 目前我認爲沒有合適的autocmd/event來編寫vimscript來執行每秒保存。但是Michael提出的解決方案應該適用於大多數情況,因爲即使不移動光標時它不執行保存,也不太可能在不移動光標的情況下執行任何更改。 – mMontu
http://vim.wikia.com/wiki/Auto-save_current_buffer_periodically –
在vim 7.4中,內置的自動保存功能仍然列在未來版本中的改進中。 –