Mercurial. Salida de color canalizada a menos

35

Sistema operativo: Mac OS 10.6.2

Me gustaría poder ver la salida de color al canalizar ciertos comandos a través de menos.

Dos ejemplos:

Tengo un alias ls --color=auto, así que me gustaría poder ver el color cuando hago esto:

ls -l | less

También tengo la extensión de color activada en Mercurial, por lo que me gustaría ver la salida de color de:

hg diff | less

y

hg st | less

Después de buscar en Google, parece que algunas versiones de menos soporte ya sea -r o -R hacen que funcione, pero no hay dados para mí. No puedo ver nada en la página del manual que se parezca a lo que necesito. (-r o -R SEEM son las opciones correctas, pero de nuevo, no parecen funcionar)

mmacaulay
fuente
1
Parece que la extensión de color siempre está deshabilitada cuando se canaliza. Pruebe estos comandos para ver a qué me refiero: ls --color=always | ls -Ryhg diff --config color.mode=ansi | less -R
Harvey

Respuestas:

30

Para mercurial, debe usar la extensión del localizador en lugar de canalizar explícitamente a menos. Esto jugará muy bien con las opciones de salida en color de otros comandos hg.

richq
fuente
13

Creo que usted tiene que utilizar --color=alwayspara lssi usted quiere que haga colores, incluso cuando no va a stdout. Luego use -ren el lesscomando

ls --color=always -l | less -r
Brandon Bodnar
fuente
12

En su ~ / .hgrc poner:

[extensions]
color =
pager =

[pager]
pager = LESS='FRSXQ' less
quiet = True
attend = outgoing,incoming,diff,status,log,qdiff,blame,annotate,pdiff,glog
Joe HG
fuente
¿Por qué la quiet = Trueparte?
einpoklum - reinstalar a Mónica el
¡Agradable! Recomiendo LESS='eiFRSXQ'también dejar de fumar después de llegar a EOF e ignorar el caso durante la búsqueda
sebastian
11

Hacer:

$ hg diff --color always | less -R

Alias ​​"menos -R" a menos. No estoy seguro de si hay una manera de proporcionar opciones por defecto a las órdenes del mercuriales de modo que usted no tiene que recordar que escribir --color alwayspara hg difftodo el tiempo.

Stantonk
fuente
1
O utilizar $ hg diff --color always | less -FRSXQpara mejores opciones menos. Se cerrará silenciosamente si diff se ajusta a la pantalla, por ejemplo.
jpbochi
1
Puede configurar LESS = "- R" alternativamente al alias "less" en sí mismo.
azulado
-Fes seguir leyendo el archivo a medida que se produce, -Ses no ajustar la línea, -Xalgo oscuro, -Qevita que suene la campana del terminal.
Evgeni Sergeev
2

Si no desea usar la extensión Pager para mercurial, puede usar el siguiente comando:

hg diff | cdiff
Buena persona
fuente
0

ls --color=autosignifica que obtienes salida de color cuando no se está canalizando a algo. Intenta ls --colour=auto | caty verás a qué me refiero.

Espero que hg haga suposiciones similares.

keturn
fuente