8

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?

8

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)? – Olivier Pons Aug 6 '12 at 10:52
  • @OlivierPons see my edit – Philipp Wendler Aug 6 '12 at 11:02
  • It didn't work with less but did work with more: cat ~/myfile.txt | more – wranvaud Jan 5 '16 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 '17 at 20:11
0

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.