Ver ficheros fuente coloreados en consola

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

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Por si aún te interesa (han

Por si aún te interesa (han pasado más de dos años de este post, pero por si acaso):

#!/bin/sh
a=`echo $* | sed ‘s/.*\/\///’`
b=`echo $a | sed ‘s/.*\///’`
c=`echo $b | sed ‘s/.*\.//’`
if [ $a = $b ] || [ $b = $c ]
then tipo=html
else tipo=$c
fi
wget $* -O – 2> /dev/null | highlight -A -S $tipo

Sirve para ver el código fuente de páginas web:

./vercodigo www.google.es