启动后 vim 命令行中的奇怪符号



我正在使用Kubuntu 15.10,konsole和vim。当我最初在 konsole 中启动 vim 时,我的命令行中出现奇怪的符号("115;0c"(,这真的很烦人。

我尝试在我的 .vimrc 中设置"设置 term=konsole",但我得到了这个

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 后得到了"跟踪"。

有人有同样的问题吗?我将不胜感激任何帮助。

通常表示TERM环境变量设置不正确 - 当vim启动时,它会根据TERM设置生成许多终端配置命令来配置终端。 如果TERM设置错误,则可能会生成不正确的设置字符串,并按如下所示显示。

对于 konsole 窗口,TERM应设置为 konsole

问题是 konsole 假装是 xterm,混淆了 vim。 "115;0c"(由 konsole 的开发人员(看起来像是对 xterm 辅助设备响应的响应。 特别是,konsole 通过发送以下响应来假装是 xterm 补丁 #115:

逃离 [ 1 ; 1 1 5 ; 0 c

与所有 XTERM-WANNBES 一样,Konsole 与 XTune 的不同之处在于影响任何使用 terminfo 的应用程序(这当然是一个常见问题解答(。

实际代码:

void Vt102Emulation::reportSecondaryAttributes()
{   
    // Secondary device attribute response (Request was: ^[[>0c or ^[[>c)
    if (getMode(MODE_Ansi)) {
        sendString("33[>1;115;0c"); // Why 115?  ;)
    } else {
        sendString("33/Z"); // FIXME I don't think VT52 knows about it but kept for
    }
    // konsoles backward compatibility.
}

可以追溯到这个提交:

commit 2d93fed82aa27e89c9d7301d09d2e24e4fa4416d
Author: Waldo Bastian <bastian@kde.org>
Date:   Sat Sep 15 21:21:44 2001 +0000
    proper impl. of primary/secondary device attributes (DA)
    Patch by Achim Bohnet <ach@mpe.mpg.de>
 
    svn path=/trunk/kdebase/konsole/; revision=114396
 
diff --git a/konsole/TEmuVt102.cpp b/konsole/TEmuVt102.cp

在可选的 ncurses-term 包中有一个"konsole"条目(见源代码(。 这需要几兆字节。 所需的 ncurses 基础包要小得多:

此软件包包含terminfo数据文件,以支持最常见的终端类型,包括ansi,dumb,linux,rxvt,screen,sun,vt100,vt102,vt220,vt52和xterm。

这有点奇怪,因为在过去的20年里,很少有人真正使用过ANSI,Sun或VT52,除非偶然或遵循糟糕的建议。

相关内容

  • 没有找到相关文章

最新更新