假设您使用Terminal.app通过ssh连接到远程服务器.当您使用较大的分辨率监视器"tmux attach"时,您之前启动了tmux,它会在控制台周围绘制点.它不适合新的窗口大小.有没有办法重绘和清理窗口?CTRL+ L或CTRL- B+ R没有帮助.我找不到适合男人的命令.
% tmux -V
tmux 1.5
Run Code Online (Sandbox Code Playgroud)
Chr*_*sen 543
tmux将窗口的尺寸限制为窗口所连接的所有会话中每个维度的最小值.如果它没有这样做,那么就没有合理的方法来显示所有连接的客户端的整个窗口区域.
最简单的方法是在附加时从会话中分离任何其他客户端:
tmux attach -d
Run Code Online (Sandbox Code Playgroud)
或者,您可以在附加到会话之前将任何其他客户端移动到其他会话:
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
Run Code Online (Sandbox Code Playgroud)
如果较小的客户端切换到会话,屏幕将再次缩小.
还有一个变体,你只需"接管"窗口(将窗口链接到一个新的会话,设置aggressive-resize
,并将那个窗口激活的任何其他会话切换到其他窗口),但是在一般情况下编写脚本更难case(与"exit"不同,因为你想要取消链接窗口或终止会话而不是仅仅从会话中分离).
Shi*_* B. 438
您可以随时按CTRL- B+ SHIFT- D选择要从会话中分离的客户端.
tmux将列出所有会话及其当前维度.然后,您只需从所有较小的会话中分离.
gbi*_*bin 173
最新版本的tmux(在1.9上测试)的更简单的解决方案现在可以做到:
tmux detach -a
Run Code Online (Sandbox Code Playgroud)
-a
适用于此会话中除当前客户端之外的所有其他客户端
您可以在.[bash | zsh] rc中将其别名
alias takeover="tmux detach -a"
Run Code Online (Sandbox Code Playgroud)
工作流程:您可以正常连接到您的会话,如果您被另一个强制降低您的tmux窗口大小的会话所困扰,您只需拨打电话即可takeover
.
dat*_*kid 21
这仍然是搜索时的顶级帖子,但它不再有效。最佳答案在这里,但 TLDR 是
<c-b>:resize-window -A