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)

mmacaulay
fonte
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.

richq
fonte
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
Brandon Bodnar
fonte
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
Joe HG
fonte
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.

Stantonk
fonte
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
2

Se você não quiser usar a Extensão do Pager para mercurial, use o seguinte comando:

hg diff | cdiff
Boa pessoa
fonte
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.

keturn
fonte