LoginSignup
7

More than 3 years have passed since last update.

posted at

updated at

tmuxのsynchronize-panesをtoggle化する方法

モチベーション

タイトルの通り、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に何らかのキーバインドを割り当てる方向に進むと思います。

ところが調べてみると↓のように

~/.tmux.conf
bind a setw synchronize-panes on
bind b setw synchronize-panes off

複数のキーを割り当ててOnOffを実現させる、といった情報しかなく、これで問題なければいいのですが、やはりひとつのキーでトグル可したほうが利便性も高く、キーも消費しないので安心安全なのは言うまでもありません。

というわけで試行錯誤の結果、↓のようになりました。

~/.tmux.conf
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をトグル可し、かつ切り替えの時にステータスラインにメッセージを表示できるようになりました。

なかなか癖の強い機能ですが、個人的にはこの設定でわりと利便性が上がったかな、と思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
7