将较小的显示器切换到较大的显示器时,是否有任何方法可以重绘tmux窗口?

假设你通过ssh与Terminal.app连接到远程服务器。 当您从较小的显示器“更高分辨率的显示器”复合时,您以前开始使用三线显示器,它会在控制台周围绘制点。 它不适合新的窗口大小。 有什么办法重新绘制和清理窗口? CTRL + LCTRLB + 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 (ie ^BL) 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 

如果较小的客户端切换到会话,屏幕将再次缩小。

也有一个变化,你只能“接pipe”窗口(将窗口链接到一个新的会话,设置aggressive-resize ,并将任何其他窗口活动的会话切换到其他窗口),但脚本更难在一般情况下(和“退出”不同,因为您想要取消链接窗口或杀死会话,而不是从会话中分离)。

您始终可以按CTRLB + D来select要从会话中分离哪个客户端。

tmux将列出所有与他们当前维度的会话。 然后,你只需从所有较小的会议中分离出来。

一个简单的解决scheme,最近版本的tmux(testing1.9),你现在可以做:

 tmux detach -a 

-a适用于除此之外的其他所有客户端

你可以在你的。[bash | zsh] rc中加上别名

 alias takeover="tmux detach -a" 

工作stream程:您可以正常连接到会话,如果您受到另一个强制closurestmux窗口大小的会话的困扰,则可以简单地调用takeover

我遇到了这个问题,偶然发现了一个不同的情况。 虽然它可能只是一个独angular兽,但我想我会把它摆出来的。

我有一个较小的会话,我注意到字体大小不同:较小的会话有较小的字体。 显然,由于某种原因,我改变了窗口的字体大小。

所以在OS X中,我只是在较小尺寸的会话上做了Cmd-+ ,然后重新启动。

其他答案没有帮助我,因为我只有客户端(前一个开始会议已经分离)。

为了解决这个问题,我在这里回答了这个问题(我没有使用xterm)。

简单地说:

  1. 从tmux会话中分离出来
  2. 运行resize Linux命令
  3. 重新连接到tmux会话
 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 

杀死另一个。