Mercurial. Цветовой поток меньше

8972
mmacaulay

Операционная система: Mac OS 10.6.2

Я хотел бы иметь возможность видеть цвет при выводе некоторых команд через меньше.

Два примера:

У меня есть псевдоним ls для ls --color = auto, поэтому я хотел бы видеть цвет, когда я делаю это:

ls -l | less

У меня также включено расширение цвета в Mercurial, поэтому я хотел бы видеть вывод цветов из:

hg diff | less

а также

hg st | less

После некоторого поиска в Google кажется, что некоторые версии менее поддерживают -r или -R, чтобы это работало, но для меня это не игра в кости. Я не вижу ничего на странице руководства, которая выглядит так, как мне нужно. (-r или -R СМОТРЕТЬ, чтобы быть правильными вариантами, но опять же, они, кажется, не работают)

34
Похоже, расширение цвета всегда отключено при передаче по каналу. Попробуйте эти команды, чтобы понять, что я имею в виду: `ls --color = always | ls -R` и `hg diff --config color.mode = ansi | меньше -R` Harvey 14 лет назад 1

7 ответов на вопрос

30
richq

Для Mercurial, вы должны использовать расширение пейджера, а не пайпинг явно. Это будет хорошо играть с цветными параметрами вывода других команд hg.

13
Brandon Bodnar

Я считаю, что вы должны использовать --color=alwaysдля, lsесли вы хотите, чтобы сделать цвета, даже когда не собирается stdout. Тогда используйте -rпо lessкоманде

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

Делать:

$ hg diff --color always | less -R 

Я бы псевдоним "меньше -R" меньше. Я не уверен, если есть способ, чтобы обеспечить параметры по умолчанию для команд Mercurial, так что вам не нужно помнить, чтобы напечатать --color alwaysна hg diffвсе время.

Или используйте `$ hg diff --color всегда | меньше -FRSXQ` для лучшего меньше вариантов. Например, он будет тихо завершать работу, если его размер будет соответствовать размеру экрана. jpbochi 12 лет назад 1
Вы можете установить LESS = "- R" в качестве альтернативы псевдониму "less". blueyed 12 лет назад 1
`-F` - продолжать чтение файла в том виде, в каком он создается,` -S` - не перенос строки, `-X` что-то неясное,` -Q` избегает звонка в терминальный звонок. Evgeni Sergeev 10 лет назад 0
11
Joe HG

В вашем ~ / .hgrc положите:

[extensions] color = pager =  [pager] pager = LESS='FRSXQ' less quiet = True attend = outgoing,incoming,diff,status,log,qdiff,blame,annotate,pdiff,glog 
Почему часть `quiet = True '? einpoklum 7 лет назад 0
Nice! I recommend `LESS='eiFRSXQ'` to also quit after reaching EOF and ignore case during search sebastian 7 лет назад 0
2
Good Person

Если вы не хотите использовать расширение Pager для Mercurial, вы можете использовать следующую команду:

hg diff | cdiff 
0
keturn

ls --color=autoозначает, что вы получаете цветной вывод, когда он не передается по каналу. Попробуйте, ls --colour=auto | catи вы поймете, что я имею в виду.

Я ожидаю, что HG делает аналогичные предположения.

0
user612789

https://www.mercurial-scm.org/wiki/Defaults

[по умолчанию] diff = - цвет всегда