Prueba lo siguiente:
less -R
de man less
:
-r
o --raw-control-chars
Hace que se muestren los caracteres de control "en bruto". (...)
-R
o --RAW-CONTROL-CHARS
Me gusta -r
, pero solo las secuencias de escape de "color" ANSI se emiten en forma "sin procesar". (...)
(actualizado en 2020)
La forma más rápida sería usando less -R
árbitro. https://superusuario.com/a/117842/34893
Puede utilizar el poder de pigmentar con menos, ¡automáticamente! (No es necesario canalizar a mano).
Instalar pygments
con su administrador de paquetes o pip (posiblemente llamado python-pygments
) o consíguelo aquí http://pygments.org/download/.
Escribe un archivo ~/.lessfilter
#!/bin/sh
case "$1" in
*.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
*.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
*.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
*.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass)
pygmentize -f 256 "$1";;
.bashrc|.bash_aliases|.bash_environment)
pygmentize -f 256 -l sh "$1";;
*)
if grep -q "#\!/bin/bash" "$1" 2> /dev/null; then
pygmentize -f 256 -l sh "$1"
else
exit 1
fi
esac
exit 0
En tu .bashrc
añadir
export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'
Además, debe hacer ~/.lessfilter
ejecutable ejecutando
chmod u+x ~/.lessfilter
Probado en Debian.
Entiendes la idea. Por supuesto, esto se puede mejorar aún más, aceptando más extensiones o analizando el shebang para otros intérpretes además de bash. Vea algunas de las otras respuestas para eso.
La idea surgió de una publicación de blog antigua de los creadores de Pygments, pero la publicación original ya no existe.
Obtuve la respuesta en otra publicación:Less and Grep:Obtener resultados coloreados al usar una tubería de grep a less
Cuando simplemente ejecutas grep --color
implica grep --color=auto
que detecta si la salida es una terminal y, de ser así, activa los colores. Sin embargo, cuando detecta una tubería, desactiva la coloración. El siguiente comando:
grep --color=always "search string" * | less -R
Siempre habilitará la coloración y anulará la detección automática, y obtendrá el resaltado de color sin menos.
Advertencia:no pongas --color=always
como alias, a veces rompe cosas. Por eso hay un --color=auto
opción.