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?


2 Answers 2


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).

  • Is there a way to do this with vim (= precise not to escape)? Aug 6, 2012 at 10:52
  • @OlivierPons see my edit Aug 6, 2012 at 11:02
  • It didn't work with less but did work with more: cat ~/myfile.txt | more
    – wranvaud
    Jan 5, 2016 at 13:24
  • That script kind of works. It's a vimball, so to install it, gunzip it somewhere, then in vim ':source ansi.vba'. It handles a lot of escapes but not all - Another solution is 'less -R filename'.
    – matiu
    Oct 6, 2017 at 20:11

I just found that there is a Vim plugin to deal with ASCI escape characters. It is called 'Ansi Highlighting'. If you are intrested please visit http://www.drchip.org/astronaut/vim/index.html#ANSIESC

Oh, you are going to need to use 'Vimballs' to unpack ANSIESC.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .