Syntax highlighting with less, trouble with lexer
I have installed python-pygments
and using it for syntax highlighting with less
as described by mankoff here
I put a function in my .bashrc
cless () {
pygmentize -f terminal "$1" | less -R
}
it is enabling syntax highlighting with less
. But when I am going to open a file like /etc/fstab
or /etc/apt/apt.conf
a error saying
Error: no lexer for filename '/etc/apt/apt.conf' found
I found option to show pygmentize
the lexer with -l
at this manpage. But what will be the appropriate lexer for such files? and how to use it?
Buried in pygmentize --help
:
If -g is passed, attempt to guess the lexer from the file contents, or pass through as plain text if this fails (this can work for stdin).
Simply change your code to:
cless () {
pygmentize -gf terminal "$1" | less -R
}
To have syntax highlight on Ubuntu/Debian first install
apt install source-highlight
Then you may want to add this two environment variables to ~/.bashrc
export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Tip: Also notice v on less
open the file on default editor (defined by select-editor
command) that maybe have syntax highlight. Here it is how to add compatibility to a lot of file types in nano
.
Reference
- gnu.org - 2.7 Using source-highlight with less
- bash - less command and syntax highlighting - Unix & Linux Stack Exchange
- How to syntax highlight via Less - Super User