モチベーション
タイトルの通り、synchronize-panes
をキーバインドひとつで切り替える方法が見当たらなかったので書きました。
環境
- tmux 2.8
- Ubuntu 18.04
19/2/4追記
@umesoya様にコメントの通り、
setw synchronize-panes
でトグルできちゃいますので、表示メッセージにも対応できるようにする場合は
bind a setw synchronize-panes \; display "synchronize-panes #{?pane_synchronized,on,off}"
で完了です。
ものすごくすっきりですね!
@umesoya様、ありがとうございました。
とりあえず以下は非効率な内容ですが、いちおうそのままにして残しておきます。
(追記終わり)
本題(いまとなっては昔の話)
tmuxを使うなら当然複数のペインを使うことになると思います。
そうすると面倒なのがディレクトリ移動。全部のペインでcdコマンドを打っていくのが大変で、「一発で全部移動できないのか!」と検索することになります。
そうすると出てくるのがやはりsynchronize-panes
で、Prefixキーを入れた後に
:set-window-option synchronize-panes on
と入力すれば全部のペインの入力が同期化するので、いちいちひとつずつのペインにcdコマンドを入力するような不毛な作業もなくなります。
問題はこのコマンドがかなり長いことで、ほとんどのひとが.tmux.confに何らかのキーバインドを割り当てる方向に進むと思います。
ところが調べてみると↓のように
bind a setw synchronize-panes on
bind b setw synchronize-panes off
複数のキーを割り当ててOnOffを実現させる、といった情報しかなく、これで問題なければいいのですが、やはりひとつのキーでトグル可したほうが利便性も高く、キーも消費しないので安心安全なのは言うまでもありません。
というわけで試行錯誤の結果、↓のようになりました。
bind a \
if-shell "tmux show-window-options synchronize-panes | grep off" \
"setw synchronize-panes on" \
"setw synchronize-panes off" \;\
display "synchronize-panes #{?pane_synchronized,on,off}"
これで、Prefix+aでsynchronize-panesをトグル可し、かつ切り替えの時にステータスラインにメッセージを表示できるようになりました。
なかなか癖の強い機能ですが、個人的にはこの設定でわりと利便性が上がったかな、と思います。