Pregunta ¿Colores en bash después de pasar por menos?


Cuando tengo los colores definidos, la vida está llena de ... color.

Cuando yo tubo ls mediante less Para desplazarme pierdo los colores.

¿Alguna sugerencia?


93
2018-06-16 13:30


origen




Respuestas:


Lo más probable es que tu ls tiene un alias para ls --color=auto, que dice ls Utilizar solo colores cuando su salida sea un tty. Si lo haces ls --color (que es moralmente equivalente a ls --color=always), que lo obligará a encender colores.

También podrías cambiar tu alias para hacer eso, pero realmente no lo llamaría una buena idea. Mejor hacer un alias diferente con --color.

less necesariamente -R, también.


95
2018-06-16 13:38



¿Por qué no lo llamas una buena idea para alias ls? ls --color o ls --color=always, ¿para esa materia? - j08lue
@ j08lue si canaliza a través de un comando que no maneja el color, obtiene algunos caracteres no deseados que pueden arruinar el comando. Por ejemplo, lo hice ls --color=always | less y consiguió: ESC[01;32mexecute_once.shESC[0m (Sé que esto es viejo y probablemente no te importe, pero para futuros visitantes, esto puede ser útil) - Ryan Amos
@RyanAmos como futuro visitante, gracias. :) - malvim


Intenta menos con la opción -R como esta:

command | less -R

Esto funciona para mí en una sola línea como esta:

ls -la | grep --color=always bash | less -r

Y así también:

ls --color | less -R

Pero tiene que ajustar la salida primaria (la salida de ls en este caso) un poco con el parámetro --color.


51
2018-06-16 13:33



Gracias, esto también funciona para ack-grep. ack-grep my_string --color | menos -R - igniteflow
--color no se reconoce: ls: opción no válida - - ejecutando bash en osx. - Scott Biggs
@Scott Biggs: en OSX no hay --color; prueba ls -G
@ Lu-Chi, incluso con -G, faltan los colores - Iulian Onofrei
En OS X, debe establecer la variable de entorno CLICOLOR_FORCE (en cualquier caso) cuando la salida de ls no se dirige a un terminal. Esto funciona para mí: CLICOLOR_FORCE = ls -G | menos -R - jooon