Can `cat` show files using code markup in colors?
cat
is not able to do this. However, maybe pygments may be able to help you there. It is a python script and can be either installed via apt-get
sudo apt-get install python-pygments
or easily downloaded and installed via easy_install.
It supports lots of source code languages and also markup languages
It is used by
pygmentize -g <filename>
Not from cat
itself but you can use something like source highlite or supercat or highlight
Source-highlight
This program, given a source file, produces a document with syntax highlighting. It also provides a C++ highlight library (new) (since version 3.0).
Source-highlight reads source language specifications dynamically, thus it can be easily extended (without recompiling the sources) for handling new languages. It also reads output format specifications dynamically, and thus it can be easily extended (without recompiling the sources) for handling new output formats. The syntax for these specifications is quite easy (take a look at the manual).
The manual about installation:
See the file INSTALL for detailed building and installation instructions; anyway if you're used to compiling Linux software that comes with sources you may simply follow the usual procedure, i.e., untar the file you downloaded in a directory and then:
cd <source code main directory>
./configure
make
make install
Supercat
This is Supercat's homepage. Supercat is a program that colorizes text based on matching regular expressions/strings/characters. Supercat supports html output as well as standard ASCII text. Unlike some text-colorizing programs that exist, Supercat does not require you to have to be a programmer to make colorization rules.
If you have written a supercat config file for a standard file type please do not hesitate to contact me at "bug-spc (at) nosredna (dot) net" for possible inclusion in the supercat distribution.
Here is an example page of Supercat's work on Gentoo's emerge.log
Installation/source file (tar.gz)
Example configuration file
Or with a function (source):
#!/bin/bash#!/bin/bash
if [ ! -t 0 ];then
file=/dev/stdin
elif [ -f $1 ];then
file=$1
else
echo "Usage: $0 code.c"
echo "or e.g. head code.c|$0"
exit 1
fi
pygmentize -f terminal -g $file
Requires: Pygments (sudo apt-get install python-pygments python3-pygments
)
Add it as a function to bash .functions and give it a name like color()
As from this answer here, you can use the python-pygments
packages to highlight stuff. First do:
sudo apt-get install python-pygments python3-pygments
then:
pygmentize -g FILENAME
then have a go:
You can also set it as an alias, like in the answer I linked - basically, run this:
echo "alias catc='pygmentize -g'" >> ~/.bash_aliases
chmod +x ~/.bash_aliases
Close the terminal, open it again, and the catc
command should now work - if it does not, make sure these lines are in the .bashrc
file, and are uncommented:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Another thing would be to just use nano
:
nano testfile