vim 似乎发送了几个奇怪的(即使用 inkpot 方案时,将转义序列转移到底层终端(未记录)。我无法将它们与任何 VT-100 或 ANSI 转义码相匹配;有谁知道这些序列是什么?

^[[3231m
^[[4232m
^[[3130m

这些序列在我负责的终端模拟器中显示为无效令牌,如果我能找到适当的文档,我想添加对这些序列的支持。

在受影响的系统上设置了以下与终端相关的环境变量:

TERM=xterm
COLORTERM=

我没有尝试过这两个变量的任何其他设置。

vim 是 7.2 版本,但我尝试过具有相同效果的新版本。

谢谢!

有帮助吗?

解决方案

您的终端支持 88 色或 256 色模式吗?如果是这样,您可能应该使用 TERM 值,例如 xterm-88color 或者 xterm-256color 而不是普通的 xterm.

墨水瓶 特别声明不支持仅支持 8/16 色的终端。从顶部 墨水瓶 来源:

" This should work in the GUI, rxvt-unicode (88 colour mode) and xterm (256
" colour mode). It won't work in 8/16 colour terminals.

设置语法着色的代码假设如果终端不支持 88 色,则它必须支持 256 色。它不会尝试为 8 种颜色的情况提供后备值(例如什么时候 TERM=xterm)。也许如果 墨水瓶 如果终端似乎没有适当的颜色支持,则会发出错误消息(并且不修改颜色设置)。


您看到的控制序列是由于尝试生成 8 色终端颜色控制序列而产生的,其颜色编号超出了该类型终端可接受输入的 0-7 范围。因此,这些序列可能无效,但它们也不完全是故意的(出现是因为 墨水瓶 假设支持 256 色,但是 xterm terminfo 条目只知道如何处理基本的 8 色支持)。

例如, 墨水瓶 设置 Normal 在 88 色终端上语法前景色为 79;对于非 88 色终端(即,适用于 256 色终端,也适用于您的 8 色 xterm).

当您尝试使用以下格式格式化此超出范围的颜色数字时 TERM=xterm, ,你得到结果 ^[[3231m 你发现:

% tput -T xterm setaf 231 | od -a
0000000  esc   [   3   2   3   1   m
0000007

(IE。插入 231 之间 ^[[3m)

如果你使用 xterm-256color, ,您会得到看起来更正常的结果:

% tput -T xterm-256color setaf 231 | od -a
0000000  esc   [   3   8   ;   5   ;   2   3   1   m
0000013

(IE。插入 231 之间 ^[[38;5;m)

同样, Normal 语法 88 色背景色 80 转换为 256 色值 232 并产生错误 ^[[4232m 序列为 xterm (但会产生更合理的 ^[[48;5;232m 在下面 xterm-256color).

其他提示

^[[3231m

看起来很像颜色定义完成/出错:

^[[32;31m

无论如何,这没有多大意义。

它是否以特定值发生 $TERM 或任何价值?什么 Vim 版本?我们所说的终端模拟器是什么?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top