tmuxで複数のペインに同時に入力する

データ解析を行っていると複数ペインのワーキングディレクトリを一度に設定するなど、同じコマンドを別のペインで繰り返さないと行けない時があります。こんな時に、複数のペインに同じコマンドを入力する(ペインをシンクロさせる)方法があります。

tmuxのオプションを使用する

tmuxを開き、一つのペインで次のように入力すると全てのペインがシンクロするようになります。

# シンクロの開始
tmux set-window-option synchronize-panes on

# 複数ペインに同じ入力が行われる

# シンクロの終了
tmus set-window-option synchronize-panes off

キーバインドに設定する

上記のコマンドを毎回入力するのは少し大変なので、キーバインドに登録しましょう。

まず、まだ使われていないキーバインドを確認します。キーバインドの確認は、 tmux list-keys で確認することが出来ます。おそらく一画面には収まりきらない情報が表示されるため more をパイプでつなげて実行すると良いでしょう。

# tmuxのキーバインド確認
tmux list-keys | more

まだ使われていないキーバインドを確認したら、 .tmux.conf に次のように設定を行います。この時、シンクロの開始と終了を別のキーに登録することも出来ますが、トグルにした方が便利だと思います。 私は、シンクロの頭文字から prefix + S でシンクロの開始・終了が行えるように設定しています。(小文字の s は既に登録されていました。)

# シンクロの開始・終了をトグルで行う
bind S set-window-option synchronize-panes

# シンクロの開始と終了を別のキーに登録する
bind a set-window-option synchronize-panes on
bind b set-window-option synchronize-panes off

設定は以上です。 お疲れ様でした!

参考

tmuxで複数のペインに対して一斉に同じ文字を入力する tmux のキーバインドを調べる方法 【 more 】コマンド――長いメッセージやテキストファイルを1画面ずつ表示する tmux: how to toggle “on” and “off” options with the same key