Thijs Koerselman
Thijs Koerselman

Reputation: 23280

How to view terminal color codes as colors in Sublime Text

I have some log files that use color schemes. I would like to be able to view those logs in Sublime Text and still see the colors. Currently when I view the log file I see things like this:

2013-11-20T15:53:02.711Z - [34minfo[39m: Default profiles created
2013-11-20T15:53:02.712Z - [34minfo[39m: Finished server initialization
2013-11-20T15:53:02.712Z - [34minfo[39m: Start collecting garbage

The text between [34m and [39m is colored. Is anyone aware of a plugin that does this?

Upvotes: 45

Views: 21111

Answers (3)

Gabriel Staples
Gabriel Staples

Reputation: 52767

@keheliya's answer is correct...but how to install said package?

How to install Package Control, and other packages and plugins, into Sublime Text 3 and 4+

1. Install the Package Control package

To install any other package, you need the Package Control package. Follow the installation instructions here: https://packagecontrol.io/installation

In short:

  1. Open the command palette

    Win/Linux: ctrl+shift+p, Mac: cmd+shift+p

  2. Type Install Package Control, press enter

Or, using the Menu:

  1. Open the Tools menu
  2. Select Install Package Control…

2. Use Package Control to install the ANSIescape package:

  1. Ctrl + Shift + P --> type "install", select "Package Control: Install Package" --> wait a few seconds, and a new search bar will pop up.
  2. In the new search bar --> search for "ANSIescape" and select it.
  3. Watch the status bar in the very bottom to see when it's done installing. It should just take a few seconds. Done!

Now, to use it, click the current syntax highlighting text in the very bottom right of your Sublime Text 3 window. Choose "ANSI", as shown below.

You may also choose this from the menus: View --> Syntax --> ANSI.

enter image description here

Alternative, command-line option

Instead of Sublime Text 3, you can also try less -r filename and less -R filename, but if your file has mixed color codes it may be easier to look at in Sublime Text 3 anyway. My favorite less command options are -RFX, which produce the effect seen in git diff (and also seen in my thin wrapper program I wrote to show line numbers in git diff: git diffn). For example:

less -RFX filename

Description:

  • -R to interpret ANSI color codes
  • -F to quit immediately if the output takes up less than one-screen, and:
  • -X to not clear the screen when less exits!

See:

  1. How do I prevent 'git diff' from using a pager?
  2. https://unix.stackexchange.com/questions/38634/is-there-any-way-to-exit-less-without-clearing-the-screen/38638#38638

Other, useful Sublime Text plugins I like:

  1. "Emmet" plugin to find matching HTML tags: Find closing HTML tag in Sublime Text

Upvotes: 40

keheliya
keheliya

Reputation: 2553

Install the SublimeANSI plugin and change the syntax of your log file to ANSI (using the View -> Syntax menu.)

Also available as ANSIescape on Package Control.

Upvotes: 48

MattDMo
MattDMo

Reputation: 102862

PersistentRegexHighlight should be able to do what you're looking for. I'm no regex guru, so I'm not sure exactly how you'd set them up, but you could make regexes that match [34m at the beginning and [39m at the end, and highlight the middle with a blue scope.

Unfortunately, you won't be able to hide the color codes themselves, but this should at least help.

Upvotes: 1

Related Questions