当我调整包含 tmux 会话的终端窗口的大小时,tmux 不会检测到此更改,但会继续在旧窗口边界内正常运行。 tmux ls
在我附加之前没有显示其他附加的客户端:
$ tmux ls
admin: 1 windows (created Mon Apr 27 15:12:58 2015) [272x75]
apt-runs: 3 windows (created Mon Apr 27 15:17:50 2015) [272x75]
lal-dev: 4 windows (created Tue Jun 9 12:24:25 2015) [238x73]
Run Code Online (Sandbox Code Playgroud)
这只发生在特定主机(运行 tmux 1.9a)上,分离/重新连接可以解决问题(直到窗口再次调整大小)。这可能是什么原因造成的?
调整大小前:
调整大小后:
rub*_*o77 16
最简单的方法是在附加时从会话中分离任何其他客户端:
tmux attach -d
Run Code Online (Sandbox Code Playgroud)
或短
tmux a -d
Run Code Online (Sandbox Code Playgroud)
或者,您可以在附加到会话之前将任何其他客户端移动到不同的会话:https : //stackoverflow.com/a/7819465/1069083
我不精通终端术语,但我通过执行以下步骤设法摆脱了这个错误:
按Ctrl+退出会话b d(别担心,您可以完整地返回会话)
检查您的控制台应用程序是否正在运行xterm
。如果echo $TERM
返回,xterm
则此过程可能对您有用。
输入resize
您的终端。
通过重新调用返回到您的会话tmux
。如您所见,您的所有会话都在运行,就像您从未离开 tmux 一样。
Tmux 将其终端大小与您的xterm
“大小”变量联系起来。如果您碰巧将$TERM
设置为screen
,那么我无法帮助您,因为我不知道该 TERM 会话的命令是什么。
小智 7
当 tmux 的window-size
选项设置为manual
. 要取消设置该选项,您可以按 Ctrl+B 并键入
:set-option -u window-size
Run Code Online (Sandbox Code Playgroud)
window-size
是每个窗口的选项,因此您必须为会话中的每个大小错误的窗口运行。
从 tmux 的手册页:
窗口大小
largest
|smallest
|manual
|latest
: 配置 tmux 如何确定窗口大小。如果设置为largest
,则使用最大的附加会话的大小;ifsmallest
,最小的大小。如果manual
,则从默认大小选项设置新窗口的大小,并自动调整窗口大小。使用latest
,使用最近活动的客户端的大小。另请参阅resize-window命令和aggressive-resize选项。
默认值latest
从 tmux 3.2(2020 年 2 月 3 日发布)开始,或者smallest
在latest
不存在的早期版本中。然而,值得注意的是,将 iTerm2 与 tmux控制模式一起使用会在manual
不询问您的情况下将其设置为,即使在分离 iTerm2 并在非控制模式下与不同的客户端连接后,该设置也会保留。其他支持控制模式的终端仿真器的行为方式可能相同,但我只测试了 iTerm2。
归档时间: |
|
查看次数: |
10500 次 |
最近记录: |