Vimで取得できる最も近いのは(Ingoの回答とクリスチャンのコメントにあるように)です。
augroup viminfo
autocmd!
autocmd FocusLost * wviminfo
autocmd FocusGained * rviminfo
augroup end
Focus*
端末からVimを使用する場合、特にtmuxまたはscreenを使用している場合は特に、自動コマンドが常に実行されるとは限らないことを理解することが重要です。まず、を使用してこれをテストする必要があり:au FocusLost :echoerr "Focus lost!"
ます。
私の知る限り、これらのオートコマンドが機能しない場合の適切な回避策はありません。他のイベント(などCursorHold
)の使用は、ほぼ確実に発生するタイミングの問題のため、私には問題があるようです。
Neovimには、Vimのviminfoシステムに置き換わる「ShaDa」が付属しています。それがより良い1つの側面は、異なるインスタンスからのファイルをマージすることです、そしてそれは複数のインスタンス間の同期を直接サポートしていませんが(まだ)、これは少なくとも1人のNeovim開発者にとってうまく機能するようです:
augroup shada
autocmd!
autocmd CursorHold * rshada | wshada
augroup end
:help shada-merging
マージプロセスの詳細については、を参照してください。