tmuxでペインを一時的に全画面にするキーバインドが便利

tmuxでペインを複数開いているとき、「このペインを一瞬だけ大きく表示したいけど、リサイズして戻すのは面倒だな」と思うことが多々あります。

たとえばログ。普段はペインを小さめにしておいて、エラーが出たときだけ大きくして確認できると便利です。

今回はそんなときに便利なtmuxコマンドを解説します。

こんなことができる

設定したキーバインドを押すだけで、「ペインを一時的に全画面にする・戻す」をトグルできます。

同じウィンドウ内の他のペインが非表示になり、今のペインが最大化されます。

設定方法

デフォルトではprefix+zに設定されています。

変えたい場合、resize-pane -Zを使って設定しましょう。筆者は次のように設定しました。

.tmux.conf
bind-key -N "一時的に全画面" -n M-z resize-pane -Z

-n M-zでprefixなしのAlt+zに設定しています。

-NCtrl+?のヘルプに表示できる説明文です。

もとに戻す方法

一度全画面に拡大したあとに戻す方法は次のとおりです。

  • もう一度resize-pane -Zを実行(無難)
  • ペインサイズ変更
  • 画面分割する

ステータスバーに表示すると便利

window_zoomed_flag変数を使えば、そのウィンドウが全画面のズーム中なのかわかります。これを利用し筆者はステータスバーに 全画面ズーム中なら虫眼鏡マークを表示する 設定をしています。

見た目はこんな感じです。

ステータスバーにズームアイコンの表示
.tmux.conf
#  はNerd Fontsなのでお好きな文字に置き換えてください
set-option -gw window-status-format '#( \
label="#{?window_zoomed_flag,,} #W "; \
bg="#{@c-base-100}"; \
color="#{@c-neutral}"; \
text_fg="#{@c-neutral-content}"; \
if [ "#{window_bell_flag}" = "1" ]; then \
label=" 󱅫 #W "; \
color="#{@c-info}"; \
text_fg="#{@c-info-content}"; \
fi; \
echo "#[bg=$bg,fg=$color]#[bg=$color,fg=$text_fg]$label#[bg=$bg,fg=$color]"; \
)'
set-option -gw window-status-current-format '#( \
label="#{?window_zoomed_flag,,} #W "; \
bg="#{@c-base-100}"; \
color="#{@c-primary}"; \
text_fg="#{@c-primary-content}"; \
echo "#[bg=$bg,fg=$color]#[bg=$color,fg=$text_fg,bold]$label#[bg=$bg,fg=$color,nobold]"; \
)'

#{?変数名,A,B}は「変数があって0じゃないときはA、変数が無いか0のときはB」になる文法です。

#{@c-base-100}などの変数は別途設定した色の値です。別の記事tmuxのステータスライン設定方法!〜カスタマイズしやすいテンプレ付き〜で解説しています。


先日vim-jpのSlackで知ってめちゃくちゃ便利だったので解説しました。すぐに元のレイアウトに戻せるので便利です。