たとえば、Terminal.appを使用して、ssh経由でリモートサーバーに接続しているとします。以前にtmuxを起動した小さなモニターから大きな解像度のモニターで「tmux attach」すると、コンソールの周りにドットが描画されます。新しいウィンドウサイズに適合しません。ウィンドウを再描画してきれいにする方法はありますか?CTRL+ LまたはCTRL- B+ Rは役に立ちません。人に適切な命令を見つけることができませんでした。
% tmux -V
tmux 1.5
たとえば、Terminal.appを使用して、ssh経由でリモートサーバーに接続しているとします。以前にtmuxを起動した小さなモニターから大きな解像度のモニターで「tmux attach」すると、コンソールの周りにドットが描画されます。新しいウィンドウサイズに適合しません。ウィンドウを再描画してきれいにする方法はありますか?CTRL+ LまたはCTRL- B+ Rは役に立ちません。人に適切な命令を見つけることができませんでした。
% tmux -V
tmux 1.5
回答:
tmuxは、ウィンドウが接続されているすべてのセッションにわたって、ウィンドウのサイズを各サイズの最小値に制限します。これを行わなかった場合、接続されているすべてのクライアントのウィンドウ領域全体を表示する賢明な方法はありません。
接続するときに、セッションから他のクライアントを切り離すのが最も簡単です。
tmux attach -d
または、セッションに接続する前に、他のクライアントを別のセッションに移動できます。
takeover() {
# create a temporary session that displays the "how to go back" message
tmp='takeover temp session'
if ! tmux has-session -t "$tmp"; then
tmux new-session -d -s "$tmp"
tmux set-option -t "$tmp" set-remain-on-exit on
tmux new-window -kt "$tmp":0 \
'echo "Use Prefix + L (i.e. ^B L) to return to session."'
fi
# switch any clients attached to the target session to the temp session
session="$1"
for client in $(tmux list-clients -t "$session" | cut -f 1 -d :); do
tmux switch-client -c "$client" -t "$tmp"
done
# attach to the target session
tmux attach -t "$session"
}
takeover 'original session' # or the session number if you do not name sessions
小さなクライアントがセッションに切り替えると、画面は再び縮小します。
ウィンドウを「引き継ぐ」(ウィンドウを新しいセッションにリンクし、を設定しaggressive-resize
、そのウィンドウがアクティブになっている他のセッションを他のウィンドウに切り替える)バリエーションもありますが、一般的にスクリプト化するのは困難です。ケース(「セッション」から切り離すのではなく、ウィンドウのリンクを解除したり、セッションを強制終了したりするため、「終了」とは異なります)。
$(tmux display-message -p '#S')
/ questions / 410017 / …を参照してください。
Ctrl-b + D
、使いやすさ(および覚えやすさ)については、Shi B.の回答を参照してください。
set-option... set-remain-on-exit on
。tmux#787を参照してください。ここで、次を使用しますtmux set-hook -t "$tmp" window-linked 'set remain-on-exit on
。
new-window
、次のような最後の引数を使用する'echo "Use Prefix + L (i.e. ^B L) to return to session.'; while(true); do read; done"
必要があります。そうしないと、メッセージが表示されません。(状況によっては、上にスクロールした場合、またはターミナルがより高い場合に表示されます。)これを使用する場合、私のコメント "(1)"または何かの設定なしで表示したほうがよいでしょうremain-on-exit
。
いつでもCTRL- B+ SHIFT- Dを押して、セッションから切断するクライアントを選択できます。
tmuxは、すべてのセッションを現在の次元でリストします。次に、すべての小さいサイズのセッションから切り離します。
CTRL-B
それがあなたのプレフィックスなら。私がCTRL-A
画面から切り替えてからです。
tmux list-sessions
セッション名、サイズ、グループ情報を表示して実行しtmux kill-session -t <session_name>
、同じグループのセッションを強制終了したいと思います。
tmuxの最近のバージョン(1.9でテスト済み)でのより簡単な解決策は次のとおりです。
tmux detach -a
-a
現在のセッションを除く、このセッションの他のすべてのクライアント用です
。[bash | zsh] rcでエイリアスを付けることができます
alias takeover="tmux detach -a"
ワークフロー:通常どおりセッションに接続できますtakeover
。また、tmuxウィンドウサイズを強制的に縮小した別のセッションに悩まされている場合は、を呼び出すだけで済みます。
:detach -a
tmux detach -a
、Tmux内のシェルコマンドラインで実行します。
私はこの問題に遭遇し、別の状況に出くわしました。たぶんユニコーンなのですが、レイアウトすると思いました。
小さいセッションが1つあり、フォントサイズが異なることに気づきました。小さいセッションのフォントは小さいです。どうやら、何らかの理由でウィンドウのフォントサイズを変更したようです。
したがって、OS XではCmd-+
、より小さなサイズのセッションで実行しただけで、元の場所に戻りました。
cmd-+
だり、それを-
修正したりします。
ps ax | grep tmux
17685 pts/22 S+ 0:00 tmux a -t 13g2
17920 pts/11 S+ 0:00 tmux a -t 13g2
18065 pts/19 S+ 0:00 grep tmux
もう一人を殺しなさい。
これはまだ検索時のトップ投稿ですが、もう有効ではありません。 ベストアンサーはこちらですが、TLDRは
<c-b>:resize-window -A