Acabo de agregar esto a mi .bashrc
para obtener resultados coloreados con less
:
# Colorize less man pages.
export LESS_TERMCAP_md=$'\e[01;34m'
export LESS_TERMCAP_us=$'\e[01;33m'
export LESS_TERMCAP_so=$'\e[01;44;37m'
export LESS_TERMCAP_mb=$'\e[01;31m'
export LESS_TERMCAP_mr=$'\e[01;35m'
export LESS_TERMCAP_me=$'\e[00m'
export LESS_TERMCAP_ue=$'\e[00m'
export LESS_TERMCAP_se=$'\e[00m'
... y ahora, de repente, ciertos comandos (parecen estar relacionados con la visualización de variables de entorno) producen una salida de color que coincide con estas nuevas configuraciones. ¿Me estoy escapando mal? ¿O es este comportamiento intencional? Intenté algunas otras variaciones de escape, pero no funcionaron less
.
Por ejemplo, aquí hay una captura de pantalla de un env
comando.
php -i
también tiene salida coloreada, pero solo en la sección de variables de entorno.
man top
= en\e[01;34mSYNOPSIS\e[00m
lugar de colorear la palabra "SINOPSIS".Como @Gilles señala en su respuesta, este es un comportamiento esperado.
Permítanme agregar información de pareja.
LESS_TERMCAP_xx
anular las capacidades de TERMCAP. Esta anulación se administra porless
sí mismascreen.c
y el valor se usa más adelante como si fuera devuelto por la biblioteca TERMCAP. Eso significa que tiene que ser una secuencia cruda de caracteres de control.Mi cuenta de cómo "arreglar" este es envolver
less
en sífuente
#!/bin/sh
(que es guión, en mi caso)? No puedo entender cómo insertar unESC
carácter literal con vim.export LESS_TERMCAP_me="$(printf '\e[0m')"
. En realidad, si miras la respuesta de @Gilles, él afirma que tambiénexport LESS_TERMCAP_me=$escape'[0m'
debería funcionar/bin/sh
.