vim 和 ANSI 转义序列的颜色:如何在 vim 中显示与 cat 命令相同的颜色

vim 和 ANSI 转义序列的颜色:如何在 vim 中显示与 cat 命令相同的颜色

以下是我正在做的事情:我正在通过 Php 颜色进行回应,如下所示:

外壳颜色

php 创建包含 ANSI 转义序列的输出,当通过终端上的 shell 显示时,这些输出会为文本着色。您可以找到 php 类和说明这里

但是如果我将输出发送到文件,并尝试使用 vim 读取它,它不是“彩色的”,我只能看到特殊字符。有没有办法像在 shell 中一样显示颜色?

答案1

如果文件内容“按原样”发送到终端,不做任何修改,则终端输出将会是彩色的。但是,vim 和其他一些编辑器会转义文本中的元字符,而是可能为其语法高亮添加其他颜色代码,因此这不起作用。

尝试使用 将文件转储到终端cat,这应该可行。一些简单的编辑器或分页器(例如)less也可能有效。

编辑: 我还没有找到让 vim “传递”所有转义代码的方法,但是我发现这个答案链接到这个vim 脚本,它解析转义码并使用 vim 语法高亮来重新创建输出中的颜色代码。根据它的描述,它应该完全符合你的要求(但我没有测试过)。

答案2

我刚刚发现有一个 Vim 插件可以处理 ASCI 转义字符。它被称为“Ansi Highlighting”。如果您有兴趣,请访问http://www.drchip.org/astronaut/vim/index.html#ANSIESC

哦,您将需要使用“Vimballs”来解压 ANSIESC。

相关内容