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.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: