当我重新连接会话时,我想强制 GNU 屏幕回流到现有的终端宽度。在我将机器升级到 CentOS 6 之前,这似乎工作正常,但我不知道如何恢复它。 ( TERM=xterm
)
每当我重新附加一个会话时,无论我分离它时的状态如何,它都会以 80 列启动,并随之调整我的终端(在本例中为 PuTTY)的大小。
我正在启动并重新连接:
screen -aA -R <session>
我的 .screenrc 仅包含以下内容和一些不相关的键绑定:
term xterm
defscrollback 10000
# status line at the bottom
hardstatus on
hardstatus alwayslastline
hardstatus string "${-}%{.0c}%-w%{.y0}%f%n %t%{-}%+w %=%{..G}[%H] %{..Y} %D %M %d, %Y %c | Load: %l"
caption splitonly "%{.yK}%3n t"
caption string "%{.c0}%3n %t"
vbell off
# Fix fullscreen programs
altscreen on
答案1
重新连接后,ctrl-a F
运行“fit”命令来调整当前窗口的大小。如果您使用该-A
选项重新连接,则重新连接时它应该调整所有窗口的大小。当您附加时,是否还有其他人附加到屏幕会话?例如,您是否必须使用 -x 而不是 -r 来重新连接?当您使用“screen -D -r”而不是“screen -x”重新连接时,您可以分离其他窗口,我希望这会自动重新安装窗口。
答案2
请注意,此答案仅适用于 PuTTY。我也被迫使用我不愿意使用的操作系统,由于系统的其他限制,PuTTY 是唯一真正的选择。我遇到了同样的问题,我的屏幕会在启动或连接到现有屏幕会话时调整大小。我尝试了这里的答案,但没有成功(通过 MSI 安装了 PuTTY 0.67 的 Windows 10)。这些答案可能适用于标准 UN*X 终端,但不适用于 PuTTY,它是一个不同的野兽。
我深入研究了选项,你瞧,在“终端 -> 功能”下有一个标记为“禁用远程控制终端调整大小”的选项。选中该框,应用设置,然后再次尝试屏幕。我想你会发现问题已经解决了。
答案3
尝试将其(从 /etc/screenrc )添加到您的 ~/.screenrc 中:
# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
# in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'