Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 文本着色_Vim_Echo_Color Scheme - Fatal编程技术网

Vim 文本着色

Vim 文本着色,vim,echo,color-scheme,Vim,Echo,Color Scheme,我使用echo-e为脚本输出着色,使用标准输出时效果很好 但是当我将输出重定向到一个文件时,vim不显示颜色,而是显示这样的符号^[[ 例如: echo-e“\e[32m绿色消息\e[0m”; echo-e“\e[31m红色消息\e[0m”; 使用vim: ^[[32m绿色消息^[[0m] ^[[31m红色消息^[[0m] 如何解决这个问题 NB:cat也会显示颜色!!使用by Dr.Chip或my plugin。两者都应该能够为这些终端转义序列着色。如果输出要由另一个程序处理,则在输出中添

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

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

例如:

echo-e“\e[32m绿色消息\e[0m”;
echo-e“\e[31m红色消息\e[0m”;
使用vim:

^[[32m绿色消息^[[0m]
^[[31m红色消息^[[0m]
如何解决这个问题


NB:cat也会显示颜色!!

使用by Dr.Chip或my plugin。两者都应该能够为这些终端转义序列着色。

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

因为它是一个文本编辑器,所以期望Vim使用转义字符按原样显示文件内容是合理的,而不是按您希望的方式显示


所以不,这里没有什么需要修复的。无论如何,在Vim方面。

重定向到一个文件会创建一个包含输入中所有字符的文件——包括颜色转义符。这实际上是正确的行为,Vim向您显示这些特殊字符是正确的

看起来,也许您正在寻找的是语法高亮显示。Vim具有理解和着色许多不同类型文本的能力


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

注意
cat
不显示颜色,它只是输出(没有Vim的解释)将内容传输到终端。终端将转义序列转换为颜色!如果您的文本通常由终端直接输出(通常通过外壳),请使用AnsiEsc;或者,如果您希望仅在Vim中查看,请使用彩色,(AnsiEsc在大小计算上搞砸了,这很烦人),您可能想查看:syntax和:hi命令,这将使您能够使用正则表达式高亮显示/着色文本,这样更容易管理文本(当然,除非您处理的是ANSI art或类似的东西)。