重新连接屏幕(运行 irssi)强制调整窗口大小

重新连接屏幕(运行 irssi)强制调整窗口大小

每当我重新连接到分离的屏幕(包含 Irssi)时,我的 Putty 屏幕都会调整为启动时的大小。如果我在此之后更改窗口大小,分离屏幕并将其调整回原大小,窗口将再次调整为原始大小。我所说的窗口是指我的 Windows 框上的 Putty 窗口。我该如何关闭此功能?

使用 Windows XP 作为本地操作系统,使用 CentOS 6.0 作为远程操作系统。Putty 0.61。

答案1

您还可以阻止屏幕调整任何远程会话的大小。另一个答案是在您的一个本地 Putty 安装中阻止这种情况 - 但如果您来到另一个工作站怎么办?

无论如何,为了防止屏幕调整 xterms 的大小,您需要:

  • 编辑/etc/screenrc
  • 找到这段文字

# Long time I had this in my private screenrc file. But many people
# seem to want it (jw):
# we do not want the width to change to 80 characters on startup:
# on suns, /etc/termcap has :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l:

#termcap xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
#terminfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

  • 取消注释这两个 termcap 行,屏幕将从现在开始正常运行。

我刚刚遇到了这个问题,在谷歌上搜索,找到了答案这里,经过测试并认为它可能对其他人有用。

请注意,如果您无法或不想编辑全局 screenrc 配置,~/.screenrc对于您当前的用户来说这就足够了。

答案2

找到答案了。该功能称为“远程终端大小调整”,可以在配置 -> 终端 -> 功能 -> 禁用远程控制终端大小调整中禁用,如中所述PuTTY 配置

但我真的不知道为什么重新连接屏幕会执行窗口调整大小远程请求。

答案3

公认的答案缺乏对这种现象的解释。以下是其中之一:

  • 的长字符串是终端的初始化字符串,通常与(由)is相同。rsreset
  • 给出的示例包含一个控制序列,它将终端从 132 列重置为 80 列。该部分就是 中的“3” \E[?1;3;4;6l,可以将其拆分为四个控件。影响宽度的是\E[?3l(参见XTerm 控制序列为了"132 Column Mode (DECCOLM)")。
  • 这正好是一个 VT100 序列,它用于X11R5 终端终端描述。
  • 当屏幕启动(或连接)时,它会初始化终端,以防万一。这会改变终端的宽度。
  • CentOS 6 现在有点旧了;当前上游xterm描述已经使用了较短的序列很长一段时间,可以初始化更多的东西。
  • 较新/较短的序列如下所示:(is2=\E[!p\E[?3;4l\E[4l\E>定义在xterm-basic)。该\E[!p部分是DECSTR,它重置字符集、颜色和视频属性。较旧的序列没有这样做;告诉screen使用它有效,但不那么干净。
  • 如果您使用不同的TERM设置,那么自定义.screenrc将不起作用(因为它用于TERM匹配特定设置)。
  • 特别是,如果你使用类似xterm-256color,您可能会再次注意到同样的行为。

相关内容