9

我用来echo -e为我的脚本输出着色,在使用标准输出时效果很好。

但是当我将输出重定向到文件时,vim不显示颜色,而是显示这样的符号^[[

例子:

echo -e "\e[32m Green message\e[0m";
echo -e "\e[31m Red message\e[0m";

用 vim :

^[[32m Green message^[[0m
^[[31m Red message^[[0m

如何解决这个问题。

注意也会显示颜色!

4

3 回答 3

7

使用 Dr. Chip 的AnsiEsc 插件或我的Colorizer插件。两者都应该能够为那些终端转义序列着色。

于 2013-09-08T14:43:02.103 回答
2

如果输出要由另一个程序处理,那么在输出中添加任何ANSI 转义字符通常是一个坏主意。

因为它是一个文本编辑器,所以期望 Vim 使用转义字符显示文件内容是合理的,而不是你希望它看起来的样子

所以不,这里没有什么需要解决的。无论如何,在 Vim 这边。

于 2013-09-08T16:23:36.750 回答
0

重定向到文件会使用输入中的所有字符创建该文件 - 包括颜色转义。这实际上是正确的行为,当 vim 向您显示这些特殊字符时,它向您展示了正确的东西。

似乎您正在寻找的可能是语法突出显示。Vim 具有理解和着色许多不同类型文本的能力。

尝试确保为您filetype使用的任何类型的脚本正确设置了选项。一旦你得到它,你可以让vim用au命令自动设置它。查看:help filetype更多信息。

于 2013-09-09T19:34:49.223 回答