回答:
組み込みオプションはありませんが、:help 'autosave'
(todo.txtで)そのようなオプションで何ができるかについての説明を指します。
これを実装する1つの方法は、CursorHold
autocommandイベントを使用することです。このイベントは、ユーザーがキーを'updatetime'
ミリ秒押していないときにトリガーされます。
autocmd CursorHold * update
この:update
コマンドは、変更された場合にのみバッファーを保存します。挿入モードがアクティブなときにこれを実行したい場合はCursorHoldI
、イベントリストに追加できます。
autocmd CursorHold,CursorHoldI * update
別の選択肢は、'autowrite'
外部コマンドを実行する前にバッファーを保存するオプション(実行前に保存するのに便利:make
)または別のバッファーに切り替えるオプションです。
Vimには自動保存機能がありますが、「リカバリ」ファイルに保存されます。
ドキュメントを編集するとき、たとえば、MyFile.txt
vimは取り消しファイルを作成します.MyFile.txt.swp
。システムがクラッシュした場合、またはセッションが終了した場合は、次のように入力して再接続し、中断したところから回復できます。
vim -r MyFile.txt
これにより、ファイルが編集用に開かれ、最後に行った変更が復元されます。
その後、回復したバージョンを通常の方法で保存でき:w
ます。
残念ながら、vimを終了すると、そのまま残り.MyFile.txt.swp
ます。手動で削除する必要があります。
rm .MyFile.txt.swp
:wq
or :q!
またはZZ
orなど)、スワップファイルは自動的に削除されます。
タイマーのVim 8機能を使用して定期的にバッファーを保存するプラグインvim-autosaveを作成しました。
Vimは、フォーカスが失われるたびにすべてを保存します。
autocmd FocusLost <your-patterns-here> silent! wall
私のパターンはかなり長く、いくつかのautocmdでそれらを使用していますが、完全を期すために、これは次のようになります。
if exists(':keeppatterns')
let s:keeppatterns = 'keeppatterns '
else
let s:keeppatterns = ''
endif
augroup AutoSaveGroup
" :help file-pattern has some info,
" but some of it is is buried in the PATTERNS section of usr_40.txt
let s:autoPattern = "*.{c,h,[ch]pp,[acjt]s,inl,cg,cgfx,fx,py,bat,cmd,jam,vim,yml,yaml,vsprops,erb,rb,html,htm},SCons*,*vimrc"
autocmd!
execute "autocmd FocusLost" s:autoPattern "silent! wall"
execute "autocmd BufWritePre" s:autoPattern s:keeppatterns . 'call FixFormatting(expand("<afile>"))'
execute "autocmd FileChangedRO" s:autoPattern "silent !p4 edit %:p"
execute "autocmd FileChangedRO" s:autoPattern "write!"
autocmd FocusLost *.txt silent! wall
augroup END
VIM-ワークスペースプラグインは、あなたのニーズに合わせてかなりカスタマイズ自動保存機能があります。デフォルトでは、ワークスペースセッションでの自動保存が有効になります(その主な機能)が、探しているだけの場合は常に自動保存するように設定できます(let g:workspace_autosave_always = 1
)。