¿Puedo obtener menos para no monocromo su salida?
Por ejemplo, la salida de git diffes de color, pero git diff | lessno lo es.
lesssolo sobre .
¿Puedo obtener menos para no monocromo su salida?
Por ejemplo, la salida de git diffes de color, pero git diff | lessno lo es.
lesssolo sobre .
Respuestas:
Utilizar:
git diff --color=always | less -r
--color=alwaysestá ahí para decirle gita los códigos de color de salida, incluso si la salida es una tubería (no un tty). Y -restá ahí para decir lessque interprete esos códigos de color y otras secuencias de escape. Úselo solo -Rpara códigos de color ANSI.
git config color.ui truedeberí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 -Rmejor (o export LESS=Ren /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.
-ropción, puede escribir "-r" en el lessindicador. Por supuesto, esto funciona con la mayoría o todas las opciones menos (es decir, -iactivar ignorecase).
grep --color=alwaysFunciona 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 trueno funcionaba con un buscapersonas, pero color.ui alwayssí. Esto puede haber cambiado desde que se publicó la respuesta.
color.ui truefunciona para comandos como git -p diffy git -p status(donde -psignifica 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 -ro 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?
-rcuando no sean necesarios puede ocasionar problemas de visualización.
ackcon una tubería less -rpierdes un retorno de carro
\lesssi la visualización se complica.
lesspara nada, solo configura la $LESSvariable de entorno al conjunto de indicadores que siempre deseas proporcionar less, por ejemploexport LESS='-MRq -z-2 -j2’
También treetiene 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 jqy lessse 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 -Ry no less -rsi solo necesita colores ANSI, ya que -rpueden 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