Como usar GNU less para ver ficheros fuente con resalte de sintaxis en consola
Aprovechando
lesspipe es sencillo conseguir que
less se comporte de modo distinto dependiendo del tipo de fichero que se abre y de ese modo integrarlo con
highlight o
GNU source-highlight para conseguir resaltado sintáctico en consola.
1. lesspipe
lesspipe es un programa que permite modificar el comportamiento de
less de un modo muy sencillo. Primero debes escribir un fichero
$HOME/.lessfilter. Este fichero normalmente es un script bash que debe tener permisos de ejecución.
En los próximos apartados se incluyen ejemplos de
lessfilter para
highlight y
souce-highlight que se utilizan para colorear código, aunque en realidad se puede usar less para todo tipo de ficheros, como listado de archivos comprimidos, imágenes, ps, html, etc.
Para que funcione es necesario además incluir lo siguiente en tu fichero
$HOME/.bashrc:
eval $(lesspipe)
export LESS=-r
Es una utilidad que permite colorear ficheros fuente de varios lenguajes y generar varios formatos de salida, como HTML, LaTeX o secuencias de escape ANSI.
La posibilidad de generar salida para la consola (opción -A) se incorporó en la versión 2.1, así que asegúrate que tienes una versión igual o superior.
Fichero .lessfilter
#!/bin/sh
set -e
file "$1" | grep text > /dev/null
highlight -A "$1"
exit 0
Si usas highlight 2.2-4 o posterior el script es aún más sencillo:
#!/bin/sh
set -e
highlight -A "$1"
exit 0
Es un programa muy similar a
highlight pero más limitado. Necesitas la versión 1.8 como mínimo
3.1. Fichero .lessfilter
#!/bin/sh
case "$1" in
*.c)
source-highlight -s cpp -f esc "$1" -o STDOUT
;;
*.cc)
source-highlight -s cpp -f esc "$1" -o STDOUT
;;
*.py)
source-highlight -s python -f esc "$1" -o STDOUT
;;
*)
# We don't handle this format.
exit 1
esac
exit 0
Puedes utilizar este fichero
.lessfilter para
source-highlight.
Referencias