Mercurial. Saída colorida canalizada para menos


35

Sistema operacional: Mac OS 10.6.2

Eu gostaria de ver a saída de cores ao canalizar certos comandos com menos.

Dois exemplos:

Eu tenho ls com alias ls --color=auto, então eu gostaria de poder ver cores quando fizer isso:

ls -l | less

Também tenho a extensão de cores ativada no Mercurial, então gostaria de ver a saída de cores de:

hg diff | less

e

hg st | less

Depois de pesquisar no Google, parece que algumas versões com menos suporte -r ou -R fazem com que isso funcione, mas não há dados para mim. Não consigo ver nada na página de manual que se pareça com o que eu preciso. (-r ou -R PARECEM ser as opções corretas, mas, novamente, elas parecem não funcionar)


11
Parece que a extensão da cor está sempre desativada quando canalizada. Tente estes comandos para ver o que quero dizer: ls --color=always | ls -Rehg diff --config color.mode=ansi | less -R
Harvey

Respostas:


30

Para mercurial, você deve usar a extensão de pager em vez de canalizar explicitamente para menos. Isso funcionará bem com as opções de saída coloridas de outros comandos hg.


13

Eu acredito que você tem que usar --color=alwayspara lsse você quer que ele faça cores, mesmo quando não vai stdout. Em seguida, use -ro lesscomando

ls --color=always -l | less -r

12

No seu ~ / .hgrc, coloque:

[extensions]
color =
pager =

[pager]
pager = LESS='FRSXQ' less
quiet = True
attend = outgoing,incoming,diff,status,log,qdiff,blame,annotate,pdiff,glog

Por que a quiet = Trueparte?
Einpoklum - reinstala Monica

Agradável! Eu recomendo LESS='eiFRSXQ'também para sair depois de atingir EOF e ignorar caso durante a busca
sebastian

11

Faz:

$ hg diff --color always | less -R

Gostaria de alias "menos -R" para menos. Eu não tenho certeza se há uma maneira de fornecer opções padrão para comandos de mercuriais de modo que você não precisa se lembrar de digitar --color alwayspara hg diffo tempo todo.


11
Ou use $ hg diff --color always | less -FRSXQpara menos opções. Ele será encerrado silenciosamente se o diff couber na tela, por exemplo.
jpbochi

11
Você pode configurar LESS = "- R" como alternativa ao apelido "less" em si.
blueyed 27/09/12

-Fé continuar lendo o arquivo enquanto ele está sendo produzido, -Sé não quebrar a linha, -Xalgo obscuro, -Qevita tocar a campainha do terminal.
Evgeni Sergeev


0

ls --color=autosignifica que você começa a saída de cor quando ele é não ser canalizada para algo. Tente ls --colour=auto | cate você verá o que quero dizer.

Espero que o hg faça suposições semelhantes.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.