Terminal Tips¶
These are some tips how to get more out of Pygments on the terminal.
How do I determine which shell I am using?¶
Run this command:
$ echo $SHELL
Mine outputs /usr/bin/fish
, which is the location of the executable.
This means my computer is using the fish shell. neofetch
(or a similar
utility) can also provide that information.
Most shells are POSIX compliant.
Aliases (POSIX)¶
POSIX compliant shells includes bash
and zsh
, and most shells.
Aliases allow you to call a function using a different name. In this case it
calls pygmentize by using a different name. The simplest is to make
an alias called cath
:
$ alias cath="pygmentize"
The only thing is that pygmentize does not really work like cat
.
It does allow you to use a command that is similar to one use for cat,
displaying a file.
Add additional flags can be added as desired. The monokai style works well for a dark background, so this is how you would add that option:
$ alias cath="pygmentize -O style=monokai"
Here is a version of less
with syntax highlighting. It is slightly more
complicated, because it uses the environment variable LESSOPEN
to preprocess
the input file(s):
$ alias lessh='LESSOPEN="| pygmentize -O style=monokai %s" less -M -R '
These alias commands need to be added to your configuration in order to work when you open a new terminal (or restart the computer).
Add above commands to your configuration file:
bash
- edit either~/.bash_aliases
(if it exists) or~/.bashrc
file.csh
(C shell), edit the~/.cshrc
fileksh
(Korn shell), edit the~/.kshrc
file.tcsh
, edit the~/.tcshrc
file.zsh
, edit the~/.zshrc
file.
In order to apply the changes to the current shell environment systems: run source
on the filename just edited:
$ source [~/.filenamerc]
Aliases (fish shell)¶
The above aliases for POSIX work just fine, but permanently saving an alias in
fish shell is a little different. Functions are used to make permanent aliases.
funced [command]
is used to create the function, followed by
funcsave [command]
saves the function to the environment.
Running the funced cath
, brings up the default editor, and add the
following code in the function:
function cath
# 'cath' alias will highlight source code as cat does.
alias cath="pygmentize"
end
Here’s what the cath
function looks like with an additional argument:
function cath
alias cath="pygmentize -O style=monokai"
end
Note: that just like the POSIX shell you may run alias cath="pygmentize -O style=monokai"
on the command line to test out the alias beforehand.
Test the cath
function. To save the function run funcsave cath
.
This saves the function for future sessions.
funced lessh
, which is slightly more
complicated, because it uses the environment variable LESSOPEN
to preprocess
the input file(s):
function lessh
LESSOPEN="| pygmentize -O style=native %s" less -M -R $argv
end
Test the lessh
function. To save the function run funcsave lessh
.