关闭vim后,端子保留bg颜色-使用颜色方案和putty-256颜色术语
关闭使用颜色格式(如vim)的应用程序后,终端会保留一些属性,如背景色。 仅当使用关闭vim后,端子保留bg颜色-使用颜色方案和putty-256颜色术语,vim,putty,xterm,256color,Vim,Putty,Xterm,256color,关闭使用颜色格式(如vim)的应用程序后,终端会保留一些属性,如背景色。 仅当使用putty-256color或屏幕术语时才会发生这种情况。 我在RHEL6.5和Ubuntu14.04LTS中观察到类似的行为 唯一的解决方案是重置终端 使用xterm-256colorterm(也带有Putty终端仿真器)时,问题不存在 有没有一个解决方案/解释为什么会发生这种情况,以及在Putty terminal emulator下使用xterm时可能会失去什么,也就是说,最好实际使用Putty-256col
putty-256color
或屏幕
术语时才会发生这种情况。
我在RHEL6.5和Ubuntu14.04LTS中观察到类似的行为
唯一的解决方案是重置
终端
使用xterm-256color
term(也带有Putty终端仿真器)时,问题不存在
有没有一个解决方案/解释为什么会发生这种情况,以及在Putty terminal emulator下使用xterm时可能会失去什么,也就是说,最好实际使用
Putty-256color
或xterm-256color
术语?解决方案是在GNU屏幕下启用altscreen
。因此,屏幕术语的行为与常规xterm类似-全屏应用程序具有独立于其余输出的帧/屏幕
但是,重要的是要设置正确的术语
,以便应用程序知道如何在常规屏幕和alt屏幕之间切换
来源:有关如何解决此问题的一些启示,请参阅此回复: 要点是包括
altscreen on
在.screenrc文件中
问题描述中提到“终端保留了一些属性,如背景色”。这可能是指腻子支持的背色擦除功能。当屏幕被擦除时,终端将用当前背景色填充背景(在被擦除的部分) 然而,乍一看,备用屏幕功能似乎并不相关。使用PuTTY和vim时,无论是否禁用PuTTY的备用屏幕功能,使用“晨”配色方案都会产生问题。退出时,屏幕具有与vim中相同的灰色背景。如果我跟着它走
tput sgr0
然后,该命令重置颜色,以便使用终端的默认背景色(如预期)写入新文本
查看vim在退出时发送的转义序列,没有发现任何异常-在终端描述中(用于使其具有可读性):
也就是说,vim在将背景设置为灰色(\E[38;5;130m
)后立即发送sgr0
(\E[0m
)。这样做应该会重置颜色。但它不会。在vim发送rmcup
中的两部分转义序列之前,还有一些其他操作
\E[2J
\E[?47l
这将清除(备用)屏幕并切换回正常屏幕。xterm
中相应的功能为
\E[?1049l
结合了这两种操作。鉴于此,腻子中存在两个问题,这两个问题共同产生了问题:
- 颜色未按预期重置,并且
- 该颜色用于设置正常屏幕上的背景
TERM=xterm
一起工作,使用1049
代码,因为PuTTY的开发人员显然已经测试过了。例如,如果这样可以恢复正常屏幕的颜色(但不使用47
代码),那么您就会看到这个问题
进一步阅读:
- (xterm常见问题解答)
:q
退出vim时会发生这种情况。使用:wq
关闭vim时不会发生这种情况。
\E[?1049l