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或类似的东西)。