Vim text coloring

被刻印的时光 ゝ 提交于 2019-12-19 17:41:27

问题


I use echo -e to color my scripts output, it works fine when using standard output.

But when I redirect the output to a file, vim doesn't show the colors, instead of that it shows signs like this ^[[

example:

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

with vim :

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

How to fix this.

NB: cat shows the colors too!!


回答1:


Use either the AnsiEsc Plugin by Dr. Chip or my Colorizer plugin. Both should be able to color those Terminal Escape sequences.




回答2:


It is usually a bad idea to add any ANSI escape characters to your output if that output is meant to be processed by another program.

Because it is a text editor, it is reasonable to expect Vim to display the content of the file as it is, with the escape characters, rather than as you want it to look.

So no, there's nothing to fix, here. On Vim's side, anyway.




回答3:


Redirecting to a file creates that file with all the characters in the input -- including the color escapes. This is actually correct behaviour, and vim is showing you the right thing when it shows these special characters to you.

It seems that perhaps what you're looking for is syntax highlighting. Vim comes with the ability to understand and colorize many different types of text.

Try making sure you have the filetype option correctly set for whatever type of script you're using. Once you get it, you can get vim to set it automatically with the au command. Check out :help filetype for more info.



来源:https://stackoverflow.com/questions/18684419/vim-text-coloring

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!