屏幕和vim导致shift-enter插入'M'和一个换行符

8
在gnu screen中运行vim实例时,在插入模式下按shift enter会添加一个“M”,然后是一个换行符,而不仅仅是一个换行符。
有人知道问题可能出在哪里,或者应该去哪里看吗?
相关系统信息:
Ubuntu 8.04.1 Screen版本4.00.03(FAU)23-Oct-06 VIM - Vi IMproved 7.1(2007年5月12日,编译于2008年1月31日12:20:21) 包含的补丁:1-138 Konsole 1.6.6(使用KDE 3.5.10)
感谢评论。当检查$TERM值时,我注意到它是xterm(正如预期的那样),但是在screen内$TERM被设置为screen-bce。在启动screen后设置TERM=xterm可以解决此问题。
将以下内容添加到~/.screenrc中即可自动解决问题:
term xterm

你可能想要指定一下你的终端设置,因为我觉得这可能是问题所在。 - kender
你是绝对正确的。我没有注意到我的screen会话中$TERM(通常为xterm)被设置为screen-bce。 - hjdivad
2个回答

5

问题中缺少信息:

  1. 您在哪里运行screen并看到此问题?一些终端应用程序(如KTerminal,Gnome终端,虚拟控制台等)还是远程会话(例如putty,从另一台计算机的ssh)
  2. 运行“echo $TERM”并告诉我们其输出
  3. 运行“cat -v”,按Shift-Enter,然后按Enter,然后按Ctrl-D,然后告诉我们输出结果。

请详细说明一下这个小宝藏的含义,cat -v是什么意思? - ojblass
cat -v将以可读格式显示控制代码。在这种情况下,如果他的终端输出Shift-Enter时的控制代码,它们将被显示。 - tzot

0

首先,您可以在konsole中修复$TERM。安装“ncurses-term”并配置konsole以设置$TERM = konsole-256color。然后使用“term screen-256color”配置屏幕。或者,如果您喜欢,分别使用'konsole'和'screen'。 Konsole和screen不是xterm,并不支持xterm所支持的所有功能,因此使用不正确的$TERM可能会导致问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接