¿Puedo obtener menos para no monocromo su salida?
Por ejemplo, la salida de git diff
es de color, pero git diff | less
no lo es.
less
solo sobre .
¿Puedo obtener menos para no monocromo su salida?
Por ejemplo, la salida de git diff
es de color, pero git diff | less
no lo es.
less
solo sobre .
Respuestas:
Utilizar:
git diff --color=always | less -r
--color=always
está ahí para decirle git
a los códigos de color de salida, incluso si la salida es una tubería (no un tty). Y -r
está ahí para decir less
que interprete esos códigos de color y otras secuencias de escape. Úselo solo -R
para códigos de color ANSI.
git config color.ui true
debería ser suficiente para obtener una salida en color y ejecutar automáticamente un buscapersonas para salidas largas.
watch --color 'git diff --cached --color=always'
y sus amigos pueden brindarte algo de genialidad adicional.
less -R
mejor (o export LESS=R
en /etc/profile
)? ¿Por qué permitiría que mostrara algo más que secuencias de escape de "color" ANSI? Además, la página del manual diceWarning: when the -r option is used, less cannot keep track of the actual appearance of the screen (since this depends on how the screen responds to each type of control character). Thus, various display problems may result, such as long lines being split in the wrong place.
-r
opción, puede escribir "-r" en el less
indicador. Por supuesto, esto funciona con la mayoría o todas las opciones menos (es decir, -i
activar ignorecase).
grep --color=always
Funciona de la misma manera. Esto no es parte de esta pregunta o respuesta, pero llegué aquí buscando en Google esa pregunta, así que ahí está.
Otra opción sería habilitar colores y usar 'less -r' como buscapersonas.
git config --global color.ui true
git config --global core.pager 'less -r'
Esto resulta en
[color]
ui = true
[core]
pager = less -r
en su ~ / .gitconfig
Para obtener más información, consulte el libro Pro Git .
color.ui true
no funcionaba con un buscapersonas, pero color.ui always
sí. Esto puede haber cambiado desde que se publicó la respuesta.
color.ui true
funciona para comandos como git -p diff
y git -p status
(donde -p
significa canalizar toda la salida a $ PAGER, por defecto es less
) incluso para versiones bastante antiguas de git (por ejemplo , Git 1.7.1). Pero aún necesita color.ui always
(lo que le dice a git que envíe códigos de color "incluso si la salida es una tubería (no un tty)") para obtener una salida de color cuando especifica directamente git status | less -r
o git diff | less -r
. Cuando especifica la redirección de salida explícitamente, no verá la salida después de salir del buscapersonas.
Use la opción -r
( --raw-control-chars
) para menos, o también -R
(solo secuencias de escape ANSI).
Tengo un alias para esto en ~/.bashrc
alias rless='less -r'
alias less='less -r'
. ¿Alguna razón para no hacerlo?
-r
cuando no sean necesarios puede ocasionar problemas de visualización.
ack
con una tubería less -r
pierdes un retorno de carro
\less
si la visualización se complica.
less
para nada, solo configura la $LESS
variable de entorno al conjunto de indicadores que siempre deseas proporcionar less
, por ejemploexport LESS='-MRq -z-2 -j2’
También tree
tiene una opción para forzar colores en:
tree -C | less -r
Y así sucesivamente para ls
:
ls -lR --color | less -r
Solo para agregar otra versión en "use less -r":
use la variable de entorno MENOS con el valor r (o agregue r a lo que ya es)
por ejemplo, como lo uso en mi .bashrc
export LESS=-Xr
(La X detiene el borrado de la pantalla al salir menos)
En caso de que alguien esté interesado en paginar un json jq
y less
se pueda lograr usando:
jq -C <jq args> file.json | less -R
p.ej
jq -C . file.json | less -R
Fuente: https://github.com/stedolan/jq/issues/764#issuecomment-95355331
Sé que esto es antiguo y muchos ya han proporcionado la respuesta correcta, pero me gustaría agregar que siempre es mejor usarlo less -R
y no less -r
si solo necesita colores ANSI, ya que -r
pueden presentarse problemas al mostrar los caracteres.
Del manual:
-r or --raw-control-chars
Causes "raw" control characters to be displayed. The default
is to display control characters using the caret notation; for
example, a control-A (octal 001) is displayed as "^A". Warn‐
ing: when the -r option is used, less cannot keep track of the
actual appearance of the screen (since this depends on how the
screen responds to each type of control character). Thus, var‐
ious display problems may result, such as long lines being
split in the wrong place.
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences are output in
"raw" form. Unlike -r, the screen appearance is maintained
correctly in most cases. ANSI "color" escape sequences are
sequences of the form:
ESC [ ... m