如下面的截图所示,我退出 gnu-screen 会话后,屏幕没有被清除,所以很乱。我必须手动输入clear
。
这是我的环境:
- GNU Screen 版本 4.04.00 (GNU) 2016 年 6 月 19 日
- Fedora 24.您可以在这里检查未受影响的 /etc/screenrc:https://gist.github.com/anonymous/66bbf9e94f5d5893da7e2a0444986d0a)
- 没有
~/.screenrc
设置 - 终端是putty远程SSH
- TERM="xterm"
答案1
与 vim-in-screen 行为相关。我忘了在哪里找到这些了。
你可以通过输入以下内容来解决问题
altscreen on
在 ~/.screenrc 中
答案2
我通过将 PuTTY 终端类型从 更改为xterm
或 来putty
解决这个问题putty-256color
。
您可以在此处找到会话的设置:设置 -> 连接 > 数据 > 终端类型字符串。
确保您所连接的机器具有适当的putty
/ putty-256color
terminfo 文件,通常位于此处:/usr/share/terminfo/p/
。
答案3
如果 PuTTY 的对话框设置为禁用在正常/备用屏幕之间切换,并且同时 PuTTY 使用旧式 xterm 控件来切换正常/备用屏幕,则会发生这种情况。这些控件切换了事物(并且已禁用),但将清除和保存/恢复光标操作作为单独的控制序列执行。您在错误放置的光标中看到的是 PuTTY 将光标恢复到应用程序要求 PuTTY 切换到备用屏幕之前的位置。
这些控制序列的一些历史可以在 xterm FAQ 中找到为什么运行 vi 时屏幕不清除?
顺便说一下,退出从 screen
不同于退出正在运行的应用程序在 screen
前者依赖于终端设置和的交互screen
,而后者仅依赖于screen
(而不依赖于终端设置)。
答案4
通过注释掉 /etc/screenrc 中的两行来解决
# Do not use xterms alternate window buffer.
# This one would not add lines to the scrollback buffer.
#termcap xterm|xterms|xs ti=\E7\E[?47l
#terminfo xterm|xterms|xs ti=\E7\E[?47l