假设您正在使用Terminal.app通过ssh连接到远程服务器。当您从以前启动过的较小的监视器中以较大的分辨率监视器“附加tmux”时,它将在控制台周围绘制点。它不适合新的窗口大小。有什么方法可以重画和清洁窗户吗?CTRL+ L或CTRL- B+ R没有帮助。我找不到关于男人的任何正确命令。
% tmux -V
tmux 1.5
假设您正在使用Terminal.app通过ssh连接到远程服务器。当您从以前启动过的较小的监视器中以较大的分辨率监视器“附加tmux”时,它将在控制台周围绘制点。它不适合新的窗口大小。有什么方法可以重画和清洁窗户吗?CTRL+ L或CTRL- B+ R没有帮助。我找不到关于男人的任何正确命令。
% tmux -V
tmux 1.5
Answers:
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')
,请参阅:superuser.com/questions/410017/…。
Ctrl-b + D
以易于使用(并记住)。
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"
工作流程:您可以正常连接到您的会话,如果您被另一个会话压低了tmux窗口大小,则可以直接致电takeover
。
:detach -a
tmux detach -a
在Tmux中的shell命令行上执行。