Colorful source code in Terminal
Often it is quicker to take a look at a source code file in Terminal using the cat
or less
commands, instead of starting up an editor, especially if you don’t need to make changes. However, like myself, most developers are used to syntax highlighting, or presenting source code in various colours. It makes the different elements in the source code stand out, and helps with comprehension. I find that the older I become, the more I need syntax highlighting, and I think back to a time when it was not so common, amazed that I could make sense of anything. (Of course younger brains have more cycles to burn.)
An easy way to get syntax highlighting to your macOS Terminal is to install Pygments. It is a Python-based source code colorizer library with a command-line interface.
First, if necessary, install Python 3 with Homebrew, make sure your pip3
tool is up to date, and then install Pygments:
brew install python3
pip3 install --upgrade pip setuptools
pip3 install pygments
Now you should have the pygmentize
command in your system, and
pygmentize -h
will give you an overview.
Pygments supports many programming languages and has several built-in styles. Since I work with Xcode a lot, I like to see similar syntax highlighting in the Terminal, so a typical command for me would use the xcode
style like this:
pygmentize -f terminal256 -O style=xcode -g somefile.py
Pygments tries to infer the correct formatting from the file extension, but the -g
flag makes it also look at the contents of the file. The -f terminal256
option directs Pygments to output 256-color ANSI escape sequences.
These options are a little too much to type every time I need syntax highlighting, so I’ve defined an alias in my ~/.bash_profile
file:
alias pcat='pygmentize -f terminal256 -O style=xcode -g'
so that I can just say pcat somefile.py
.
If you need paging, you’ll probably use the less
utility, but you need to use the -R
option to interpret the ANSI codes emitted by Pygments:
cat somefile.py | less -R
If this doesn’t make your Terminal colourful enough, you can always install lolcat!