回答:
以下の回答から、ネイティブにサポートされるようになりました。
バージョン1.8では、サイズ変更ペインに-Zフラグが追加されました。manページから:
-Zを使用すると、アクティブペインはズーム(ウィンドウ全体を占める)とズーム解除(レイアウト内の通常の位置)の間で切り替わります。
別のオプションは、を使用するbreak-pane
ことjoin-pane
です。manページから:
break-pane [-d] [-t target-pane]
(alias: breakp)
Break target-pane off from its containing window to make it the
only pane in a new window. If -d is given, the new window does
not become the current window.
join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane]
(alias: joinp)
Like split-window, but instead of splitting dst-pane and creating
a new pane, split it and move src-pane into the space. This can
be used to reverse break-pane.
したがって、ペインを選択してbreak-pane
実行し、最大化されたバージョンで完了したら、再結合することができますjoin-pane
-それを元に戻すためにいくつかのデフォルト引数が必要な場合があります。
join-paneはtmux 1.3にあるように見えますが、1.1ではないことに注意してください。(1.2についてはわかりませんが、申し訳ありません)。
そして、ターミネーター(GUI(GTKベース)のターミナルマルチプレクサー)がズームを行うことができることを言及するだけです。(Ctrl-Shift-Xがデフォルトのキーバインドです)。もちろん、tmuxが行うことの多くは行いません...
join-pane -t:{previous}
、前のウィンドウに対して、またはjoin-pane -t:0
ウィンドウ0に結合し直します
これは現在、ネイティブtmux機能です。
バージョン1.8では、に-Z
フラグが追加されましたresize-pane
。manページから:
-Zを使用すると、アクティブペインはズーム(ウィンドウ全体を占める)とズーム解除(レイアウト内の通常の位置)の間で切り替わります。
バインドされているtmux-prefix- zデフォルトでは、私のインストール(OS XのHomebrew経由)。
少し前にあなたがこれを尋ねたのは知っています...しかし、私は今日まで画面から切り替えませんでした!
私は同じ問題に遭遇しました、ここに私がそれを解決した方法があります:
unbind +
bind + new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \; swap-pane -s tmux-zoom.0 \; select-window -t tmux-zoom
unbind -
bind - last-window \; swap-pane -s tmux-zoom.0 \; kill-window -t tmux-zoom
ワークフローが私のものに似ている(つまり、ウィンドウを最大化し、作業を行ってから、すぐに最大化を解除する)場合、これはうまくいくはずです。
bind c-m select-window -t tmux-zoom ? <minimize> : <maximize>
。しかし、今、私はこの関数をどこか別の場所に定義したいと思っていますbind c-m :max_or_min
。それは可能ですか?検索するのが難しいと感じています。(よく間違ったコマンドを
改善されたズーム機能。これで、階層的にも複数のペインをズームできます。以下を実行し、tmuxサーバー(私の場合はCtrl-r)を再ロードすると、xキーをペインのズームインとズームアウトにバインドできます。ズームインはペインを新しいウィンドウで開くことで実現され、ズームアウトはペインを元のウィンドウに戻すことで実現されます。ズームインウィンドウを分割すると、ズームインウィンドウのペインにズームインし、ズームインしてズームインウィンドウに戻ることができます。ズームアウトは、単一のペインを含むズームインウィンドウにいる場合にのみ発生します。
の末尾に次を追加 ~/.tmux.conf
~$ grep "bind x" ~/.tmux.conf
unbind x
bind x run ". ~/.tmux/zoom"
次のファイルを追加
~$ cat ~/.tmux/zoom
#!/bin/bash -f
currentwindow=`tmux list-window | tr '\t' ' ' | sed -n -e '/(active)/s/^[^:]*: *\([^ ]*\) .*/\1/gp'`;
currentpane=`tmux list-panes | sed -n -e '/(active)/s/^\([^:]*\):.*/\1/gp'`;
panecount=`tmux list-panes | wc | sed -e 's/^ *//g' -e 's/ .*$//g'`;
inzoom=`echo $currentwindow | sed -n -e '/^zoom/p'`;
if [ $panecount -ne 1 ]; then
inzoom="";
fi
if [ $inzoom ]; then
lastpane=`echo $currentwindow | rev | cut -f 1 -d '@' | rev`;
lastwindow=`echo $currentwindow | cut -f 2- -d '@' | rev | cut -f 2- -d '@' | rev`;
tmux select-window -t $lastwindow;
tmux select-pane -t $lastpane;
tmux swap-pane -s $currentwindow;
tmux kill-window -t $currentwindow;
else
newwindowname=zoom@$currentwindow@$currentpane;
tmux new-window -d -n $newwindowname;
tmux swap-pane -s $newwindowname;
tmux select-window -t $newwindowname;
fi
同じキーストロークで最大化/最小化するためにこれを行いました:
bind C-k run "if [[ $(tmux list-window) =~ ZOOM ]]; then tmux last-window; tmux swap-pane -s ZOOM.1; tmux kill-window -t ZOOM; else tmux new-window -d -n ZOOM; tmux swap-pane -s ZOOM.1; tmux select-window -t ZOOM;fi"
resize-pane -Z
トグルであることに伴う問題は、特にスクリプトまたはinsideから呼び出された場合に、必要に応じて逆ズーム操作を実行する場合があることtmux.conf
です。
回避策は次のとおりです。
tmux-zoom-in.sh
#!/bin/bash
# Zoom in the current pane ONLY if it is not currently zoomed.
# Requires tmux version >= 1.8
tmux list-panes -F '#F' | grep -q Z || tmux resize-pane -Z
tmux-zoom-out.sh
#!/bin/bash
# Zoom out the current pane ONLY if it is not currently zoomed.
# Requires tmux version >= 1.8
tmux list-panes -F '#F' | grep -q Z && tmux resize-pane -Z
tmux 1.8を使用できない、または最大化状態を長くしたい人のために、tmux 1.6+で動作するtmuxスクリプトを公開しました。
お役に立てば幸いです。
私はUbuntu 12.04を使用していますが、この機能も必要でした。tmux 1.8以降、tmux-prefix zを使用したズーム切り替えのネイティブサポートがあります。おそらく12.04ではtmux 1.8が表示されないので、別の開発コンピューターのソースからtmux 1.8をコンパイルし、_tmux-1.8に名前を変更し、1.8バイナリを/usr/bin/_tmux-1.8にコピーして.bash_aliases-> aliasを編集しましたtmux = '_ tmux-1.8'。
この迅速でダーティな方法を使用しても問題はありませんし、tmux 1.8が12.04になったときは何も壊れていません。
tmuxの古いバージョンでは、このソリューションが唯一動作することがわかっています。