tmux で一時的に pane を最大化する
Vim には,分割しているウィンドウのうちカーソルが居るカレントウィンドウを除いて他を閉じる :only
というコマンドがあります.それを拡張して,一時的にカレントウィンドウを最大化し,最大化前に戻せる ZoomWin というプラグインがあり,愛用しています.因みに Emacs にもemacs-zoom-window が最近出来たようです.
僕は最近ローカルでも tmux を真面目に使いはじめたので,tmux でも pane を最大化したり元に戻したりしたくなりました.そんなわけで早速設定しました.
最新の tmux (1.8) のみしか使わない場合
最新の tmux (1.8) では resize-pane
に -Z
オプションを指定でき,これがそのままやりたい機能を提供してくれます.デフォルトでは {プレフィクス} z
に割り当てられており,カーソルが居る pane の最大化↔最大化解除 をトグルすることが出来ます.
最新の tmux しか使わない人はこれを使えば良いです.
tmux 1.7 を使う場合
Ubuntu 12.04 で tmux 1.8 がどうもうまく動かなかったので,Ubuntu では tmux 1.7 を使っているのですが,1.7 でも pane の最大化をやりたかったので,tmux-zoom-window をつくりました.
tmux-zoom-window から clone してきた
zoomwin.sh
を~/.tmux
に入れる(場所はどこでも良いです).tmux.conf にキー設定
bind-key z run "/bin/bash -c 'if [ -f $HOME/.tmux/zoomwin.sh ]; then bash ~/.tmux/zoomwin.sh; fi'"
zoomwin.sh
は tmux のバージョンを見て適宜処理を切り替えるので,tmux のバージョンごとに .tmux.conf
を書き換える必要は無く,すべて上記の設定で正しく動作します.tmux は Vim と違って pane を非表示にすることが出来ないため,最大化したい pane だけを一時的に別ウィンドウに取り出し,後で元のウィンドウに戻すようにしています.
ともあれ,これで 1.7 以前でも一時的に pane を広げて作業できるようになって色々やりやすくなりました.