将较小的显示器切换到较大的显示器时,有没有办法重新绘制tmux窗口?

时间:2011-10-18 22:37:07

标签: tmux

假设您使用Terminal.app通过ssh连接到远程服务器。当您使用较大的分辨率监视器“tmux attach”时,您之前启动了tmux,它会在控制台周围绘制点。它不适合新的窗口大小。有没有办法重绘和清理窗口? CTRL + L CTRL - B + R 无效。我找不到适合男人的命令。

% tmux -V
tmux 1.5

9 个答案:

答案 0 :(得分:495)

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,并将具有该窗口的任何其他会话切换到其他窗口),但在一般情况下编写脚本更困难(并且与“退出”不同,因为您希望取消链接窗口或终止会话而不是仅从会话中分离)。

答案 1 :(得分:388)

您可以随时按 CTRL - B + SHIFT - D 选择要分离的客户端来自会议。

tmux将列出所有会话及其当前维度。然后你只需从所有较小的会话中分离出来。

答案 2 :(得分:166)

最新版本的tmux(在1.9上测试)的更简单的解决方案现在可以做到:

tmux detach -a

-a适用于此会话中除当前客户端之外的所有其他客户端

您可以在。[bash | zsh] rc

中对其进行别名
alias takeover="tmux detach -a"

工作流程:您可以正常连接到您的会话,如果您被另一个强制降低您的tmux窗口大小的会话所困扰,您只需拨打takeover

答案 3 :(得分:8)

这仍然是搜索时的热门帖子,但不再有效。 Best answer is here,但TLDR是

<c-b>:resize-window -A

答案 4 :(得分:3)

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

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

所以在OS X中,我只是在较小的会话上做了Cmd-+,然后它重新回到原位。

答案 5 :(得分:3)

其他答案对我没有帮助,因为我只附加了客户端(前一个启动会话已经分离)。

为了解决这个问题,我按照了答案here(我没有使用xterm)。

简单地说:

  1. 从tmux会话中分离
  2. 运行resize linux命令
  3. 重新连接到tmux会话

答案 6 :(得分:1)

我使用 Ctrl - b + q ,这使它成为每个窗格的闪存编号,并在途中重新绘制它们。

答案 7 :(得分:0)

您可以使用 <Ctrl-B> : + at -d <CR> 重绘 tmux 窗口。

答案 8 :(得分:-2)

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

杀了另一个。