Ubuntu – vim & colors from ANSI Escape Sequences: how to display in vim the same colors that are displayed with the cat command

colorscommand linevim

Here's what I'm doing: I'm echoing through Php colors like this:

shell colors

php creates output containing ANSI escape sequences that color text when it is displayed through the shell on my terminal. You can find the php class and explanation here.

But if I send my output to a file, and try to read it with vim it's not "colored", I just can see the special characters. Is there a way to display the colors like they are displayed in the shell?

Best Answer

The terminal output will be colored if the content of the file will be sent "as-is" to the terminal, without any modifications. However, vim and some other editors will escape meta characters in the text and instead maybe add some other color codes for their syntax highlighting, so this doesn't work.

Try dumping the file to the terminal with cat, this should work. Some simple editors or pagers like less might also work.

Edit: I have not found a way to let vim "pass-through" all the escape codes, but I have found this answer which links to this vim script, which parses the escape codes and uses the vim syntax highlighting to recreate the color codes in the output. According to its description, it should do exactly what you want (but I have not tested it).

Related Question