我用的是Kubuntu 15.10,konsole和Vim。当我最初在konsole中启动Vim时,我得到奇怪的符号(“115; 0 c”)在我的命令行中,这真的很烦人。
我尝试了“set term=konsole”设置在我的.vimrc,但我得到了这个
E558: Terminal entry not found in terminfo
'konsole' not known. Available builtin terminals are:
builtin_gui
builtin_amiga
builtin_beos-ansi
builtin_ansi
builtin_pcansi
builtin_win32
builtin_vt320
builtin_vt52
builtin_xterm
builtin_iris-ansi
builtin_debug
builtin_dumb
defaulting to 'ansi'
但所有这些选项都很烦人,因为我在关闭退出Vim后得到了“trace”。
有人有同样的问题吗?我很感激任何帮助。
2条答案
按热度按时间ezykj2lf1#
这通常表示
TERM
环境变量设置不正确--当vim
启动时,它会根据TERM
设置生成许多终端配置命令来配置终端。如果TERM
设置错误,可能会生成一个错误的设置字符串,显示如下。对于konsole窗口,
TERM
应设置为konsole
。lzfw57am2#
问题是konsole假装是xterm,迷惑了Vim。这个“115; 0 c”(由konsole的开发者设计)看起来像是对xterm的辅助设备响应的响应。特别是,konsole假装是xterm补丁#115,通过发送以下响应:
[
x 1 m1n1xx 1 m2n1xx 1 m3n1xx 1 m4n1xx 1 m5n1xx 1 m6n1xx 1 m7n1xx 1 m8n1xkonsole,像所有的xterm-wannbes一样,在影响任何使用terminfo的应用程序的方式上与xterm不同(这当然是一个常见问题)。
实际代码:
可以追溯到这个commit:
在可选的ncurses-term包中有一个“konsole”条目(参见源代码)。这需要几兆字节。所需的ncurses-base封装要小得多:
这个软件包包含了终端数据文件来支持最常见的终端类型,包括ansi,dumb,linux,rxvt,screen,sun,vt 100,vt 102,vt 220,vt 52和xterm。
这有点奇怪,因为在过去的20年里,很少有人真正使用ansi,sun或vt 52,除非是偶然或听从不好的建议。