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

2. hightlight

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

3. source-highlight

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



blog comments powered by Disqus