この記事はdotfileアドベントカレンダーの15日目です!
はじめに
みなさんvim + tmux生活エンジョイしていますか?
エンジョイしている方、エンジョイしたい方にオススメの設定をお教えします。
ズバリ、vimの中からtmuxを操作する
というものです。
基本的にはこちらを参考にし、コードをリファクタしました。
15年目のVim | POSTD
tmuxにはcommandでpaneに好きなコマンドを送ることができる、tmux send-keys
というコマンドがあります。
試しにお手元のtmuxで新しいセッションを開き、
3つほどpane分割をした後以下のコマンドを実行してみてください。
$ tmux send-keys -t$(tmux display-message -p"#S"):0.2 'echo hogefuga' c-j
おそらく別のpaneにてecho hogefuga
というコマンドが実行されたかと思います。
(これで実行されない場合、おそらくtmuxのwindowやpaneの番号が1から始まる
といった設定をしている
ことが考えられます)
-t
オプションにて送信先のpaneを指定します。
フォーマットはsession名:window番号.pane番号
となっております。
今回は$(tmux display-message -p "#S")
にてsession名を取得し、柔軟に仕上げました。
こちらをvim内でsystem()
を用いて実行してあげる、というものです。
apiのエンドポイントを開発しているときとかに別paneにcurlとjqを走らせておいて、
こいつを用いてvim内からそのcurlを走らせたりすると便利ですね
アイディア元のsample