ウィンドウがフォーカスを失ったときにTmuxにVimに通知させることはできますか?

ウィンドウがフォーカスを失ったときにTmuxにVimに通知させることはできますか?

私はTmuxでVimとBashを並べて使います。私はファイルを切り替えるときにファイルを自動的に保存するようにVimを設定しましたが、Bashウィンドウに切り替えるときに自動的に保存したいと思います。

ウィンドウがフォーカスを失ったときにTmuxにVimに何らかのコードを送信させる方法はありますか?

ベストアンサー1

これはおそらくvimクライアントサーバーモデルを使用するのが最善です。で使用するための良いガイドラインがあります:help remote.txt

まず、vimこのオプションでコンパイルされたクライアントが必要です+clientserver。ディストリビューションがこのようにパッケージ化されていない場合は、ソースコードを(、、apt-get sourceなどabsを介して)入手してこのオプションを追加してください。

tmuxこれが完了したら、ウィンドウを変更するときに、次のようにアクティブウィンドウに何かを送信できるようにキーを再バインドする必要があります。

vim --servername foo --remote-send '<C-\><C-N>:w<CR>'  

次のことが機能します(テストされていません)。

bind-key 0 run-shell "vim --servername foo --remote-send '<C-\><C-N>:w<CR>'" \; select-window -t :0

おすすめ記事