我用来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
如何解决这个问题。
注意:猫也会显示颜色!
我用来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
如何解决这个问题。
注意:猫也会显示颜色!
使用 Dr. Chip 的AnsiEsc 插件或我的Colorizer插件。两者都应该能够为那些终端转义序列着色。
如果输出要由另一个程序处理,那么在输出中添加任何ANSI 转义字符通常是一个坏主意。
因为它是一个文本编辑器,所以期望 Vim 使用转义字符显示文件内容是合理的,而不是你希望它看起来的样子。
所以不,这里没有什么需要解决的。无论如何,在 Vim 这边。
重定向到文件会使用输入中的所有字符创建该文件 - 包括颜色转义。这实际上是正确的行为,当 vim 向您显示这些特殊字符时,它向您展示了正确的东西。
似乎您正在寻找的可能是语法突出显示。Vim 具有理解和着色许多不同类型文本的能力。
尝试确保为您filetype
使用的任何类型的脚本正确设置了选项。一旦你得到它,你可以让vim用au
命令自动设置它。查看:help filetype
更多信息。