重新连接时强制 GNU 屏幕回流到当前终端宽度?

重新连接时强制 GNU 屏幕回流到当前终端宽度?

当我重新连接会话时,我想强制 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'

https://superuser.com/a/217281/6593

相关内容