I need to use the less command
with the syntax highlighting of the vim command for python
, C
, bash
and other languages.
How do I apply syntax highlighting colors according to vim
colors for less command
?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this communityI need to use the less command
with the syntax highlighting of the vim command for python
, C
, bash
and other languages.
How do I apply syntax highlighting colors according to vim
colors for less command
?
Syntax highlighting of less
, works just fine on most *nix systems.
apt install source-highlight
export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"
export LESS=' -R '
On Fedora/RedHat based distros use /usr/bin/src-hilite-lesspipe.sh
instead.
Even on Cygwin you can do it with the minor adjustment of the shell script path and installing with apt-cyg
instead of apt
.
However, using this drastically slows down browsing of large files. I suggest to use alias
in such a way to only implement the LESSOPEN
export above when needed, like this:
alias lessh='LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s" less -M '
where the -M
flag is convenient to also show filename and line number.
Also remember to copy the script into your bin path:
cp /usr/share/source-highlight/src-hilite-lesspipe.sh /usr/bin/src-hilite-lesspipe.sh
UPDATE: 2019-07-24
Apparently, on more recent Cygwin installs, you have the following files in your path:
source-highlight.exe
source-highlight-esc.sh
source-highlight-settings.exe
So now you also need to execute the source-highlight-settings.exe
that will add the configuration file:
$HOME/.source-highlight/source-highlight.conf
.
brew install source-highlight
, then I added an alias: alias lessh='LESSOPEN="| src-hilite-lesspipe.sh %s" less -R '
– mhvelplund
Aug 23 '18 at 12:35
less
doesn't support syntax highlighting.
vim
, like all vi
clones has a read-only mode called view
which you can use to just view files. it supports all features of vim including syntax highlighting.
e.g.
view filename.py
the main difference between view
and vi
is that view doesn't "lock" the file you're viewing by creating a .swp file.
view command
means from radare package
, it's not read only
– PersianGulf
Sep 17 '13 at 6:58
view
command doesn't seem to support syntax highlighting. I've tried :syntax enable
and :syntax on
, but I always get syntax: Not an editor command
. My vim
supports highlighting, though.
– Felix
Sep 17 '13 at 10:14
vi
like nvi
or elvis
installed? check your /usr/bin/view
- on my debian system, it's a symlink to /etc/alternatives/view
which is, in turn, a symlink to /usr/bin/vim.basic
.
– cas
Sep 17 '13 at 10:29
/usr/bin/ex
, which, curiously, is owned by the vi
package.
– Felix
Sep 17 '13 at 10:35
arch linux
view
is a symlink to /usr/bin/ex
of core/vi
package.
– x-yuri
May 16 '15 at 16:51
I tend to disagree with Ingo, less
can be taught to highlight syntax. Check out this answer on SuperUser. Basically, you have to install GNU's source-highlight (available in all major distro package repos), and then add the following to your .bashrc
(or .bash_profile
or what have you):
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=" -R "
However, note that source-highlight
is not as powerful as vim
's highlighter. Use whatever suits you best.
less
cannot be taught to highlight syntax elements, but Vim can be used as a pager, i.e. a replacement for less
. There are more advanced plugins, but the basic script actually ships with Vim ($VIMRUNTIME/macros/less.sh
). For the full information, see Using vim as a syntax-highlighting pager on the Vim Tips Wiki.
less
that does the highlighting; but Vim indeed has this capability built-in.
– Ingo Karkat
Jun 29 '14 at 11:59
$ diff file1.c file2.c | /usr/share/vim/vim74/macros/less.sh
– michael
Dec 5 '16 at 2:51