每当我重新连接到分离的屏幕(包含 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
相同。rs
reset
- 给出的示例包含一个控制序列,它将终端从 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
,您可能会再次注意到同样的行为。