Vim文字着色

时间:2013-09-08 13:48:21

标签: vim echo color-scheme

我使用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

如何解决此问题。

NB cat 也会显示颜色!!

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

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

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

所以不,这里没什么可修的。无论如何,在Vim身边。

答案 2 :(得分:0)

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

似乎你正在寻找的是语法高亮。 Vim具有理解和着色许多不同类型文本的能力。

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