(2018-04-06 20:25 コメント頂いた内容で修正しました)
動機
bind-key C-t last-window
このウィンドウの移動に対するキーバインドを、ウィンドウが一つしか開いていない時はペインの移動に変えたかったのです。
結論
# version 2.3 まで
bind-key C-t if-shell 'test #{session_windows} -eq 1' last-pane last-window
または
# version 2.4 以降
bind-key C-t if-shell -F '#{==:#{session_windows},1}' last-pane last-window
解説
if-shell
で、シェルコマンドを対象とした if ができます。書式は
if-shell 「シェルコマンド」 「真の時に実行されるコマンド」 「偽の時に実行されるコマンド」
です。
#{session_windows}
で、そのセッションで開いているウィンドウの数が取得できるので、1 なら last-pane
それ以外(2 以上)なら last-window
が実行される事になります。
なお、tmux
の version 2.4 から、比較を簡単に書ける構文が導入されているので、後者のように tmux の中で閉じるように書けるようです。
apt
などで入れている場合、古いバージョンが入っていてこの表記に対応していない場合があるのでご注意を。(というか、自分がそうでした。)
感想
list に wc とかしなくても、もっと簡単に window の数が取れる方法があってもいいような気がするんですがどうなんでしょうか?
すいません、やっぱりありましたね。