Como poner a color las páginas de manual en Linux

color-terminal

Existen varias técnicas para darle un toque de color a las man pages de la terminal en Linux, prescindiendo del blanco/negro habitual y haciendo la consola más atractiva a la hora de buscar información, sobre alguna de esas aplicaciones que estamos por usar.

Una de ellas es most del que ya hablamos en la prehistoria del blog y otra puede ser añadiendo unas líneas de código a nuestro archivo de configuración ./bashrc.

Se trata de proporcionar diferentes valores en la biblioteca Termcap, utilizada para dotar de determinadas capacidades a la terminal en Linux y otros sistemas Unix-Like.

En el caso que nos ocupa estableciendo los colores a usar y la representación del estilo dado a la escritura, en las páginas del manual.

# color manpages

man() {
    env \
        LESS_TERMCAP_mb=$(printf "\e[1;31m") \
        LESS_TERMCAP_md=$(printf "\e[1;31m") \
        LESS_TERMCAP_me=$(printf "\e[0m") \
        LESS_TERMCAP_se=$(printf "\e[0m") \
        LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
        LESS_TERMCAP_ue=$(printf "\e[0m") \
        LESS_TERMCAP_us=$(printf "\e[1;32m") \
            man "$@"
}

Introduciendo el código anterior en ./bashrc y reiniciando la consola, vemos que el texto en negrita ahora se convierte en rojo claro, el subrayado pasa a tener color verde y el texto sombreado de pie de página que nos marca la línea de navegación adquiere un tono amarillo sobre fondo azul oscuro. El resto del texto permanece del mismo color.

Lo bueno del asunto es que podemos cambiar el esquema de color con mínimos retoques. Os dejo una lista con los códigos de varios colores, por si lo queréis dejar a vuestro gusto:

# Negro       0;30     #Gris oscuro    1;30
# Rojo        0;31     #Rojo Claro     1;31
# Verde       0;32     #Verde claro    1;32
# Marrón      0;33     #Amarillo       1;33
# Azul        0;34     #Azul claro     1;34
# Purpura     0;35     #Fucsia         1;35
# Cyan        0;36     #Cyan claro     1;36
# Gris claro  0;37     #Blanco         1;37

Sobre el tema de las variables en LESS_TERMCAP y la secuencias de escape ANSI no es que exista demasiado información, más allá de la que ofrece el manual de Termcapt:

man termcapt

En el caso que nos ocupa:

  • mb: empieza el modo parpadeo en rojo
  • md: empieza el modo negrita en rojo
  • me: finaliza todos los modos so, us, mb, md y mr
  • se: abandona el modo de resaltado o destacado.
  • so: empieza el modo de resaltado (amarillo sobre cuadro de fondo azul)
  • us: empieza subrayado
  • ue: finaliza subrayado (color verde)

Además de en bash, esto también funciona en otros shells como zsh, en este último caso modificando el archivo de configuración ~/.zshrc.

Fuente | Idle Time

4 thoughts on “Como poner a color las páginas de manual en Linux”

  1. alejandroindependiente says:

    ¿Y no podéis incorporar el código dentro de una actualización (del sistema o la aplicaciones de la consola) para que sólo haya que cambiarlo en Opciones? ¿Como un plugin o algo?

    1. tannhausser says:

      Y si, casi todo se puede incorporar a una interfaz gráfica…pero ten en cuenta que esto es solo para las man pages, algo muy específico, no para el esquema general de colores de la terminal que si se puede cambiar en las preferencias como tu dices.

      Un simple copiar y pegar en el archivo de configuración, y ya te olvidas de que lo tienes 🙂

  2. Marcelo says:

    * Si se modifica el archivo de configuración de terminal, con el comando “source ~/.bashrc ” o “source ~/.zshrc” se carga la nueva configuración sin tener que cerrar / abrir la terminal.
    * Se agradece la entrada Mr. José.

    1. tannhausser says:

      Está bien saberlo @marcelo

      Gracias a ti por comentar.

Deja un comentario