bash: раскрашенная страница руководства

15

Где я должен посмотреть в системе, чтобы раскрасить страницы руководства?

Страницы man просматриваются с меньшими затратами, поэтому я попытался добавить следующие строки в мой .bashrc, чтобы изменить цвета: (что, впрочем, работает нормально).

 #
 #   L E S S   C O L O R S   F O R   M A N   P A G E S
 #

 # CHANGE FIRST NUMBER PAIR FOR COMMAND AND FLAG COLOR
 # currently 0;33 a.k.a. brown, which is dark yellow for me 
    export LESS_TERMCAP_md=$'\E[0;33;5;74m'  # begin bold

 # CHANGE FIRST NUMBER PAIR FOR PARAMETER COLOR
 # currently 0;36 a.k.a. cyan
    export LESS_TERMCAP_us=$'\E[0;36;5;146m' # begin underline

 # don't change anything here
    export LESS_TERMCAP_mb=$'\E[1;31m'       # begin blinking
    export LESS_TERMCAP_me=$'\E[0m'           # end mode
    export LESS_TERMCAP_se=$'\E[0m'           # end standout-mode
    export LESS_TERMCAP_so=$'\E[38;5;246m'    # begin standout-mode - info box
    export LESS_TERMCAP_ue=$'\E[0m'           # end underline

 #########################################
 # Colorcodes:
 # Black       0;30     Dark Gray     1;30
 # Red         0;31     Light Red     1;31
 # Green       0;32     Light Green   1;32
 # Brown       0;33     Yellow        1;33
 # Blue        0;34     Light Blue    1;34
 # Purple      0;35     Light Purple  1;35
 # Cyan        0;36     Light Cyan    1;36
 # Light Gray  0;37     White         1;37
 #########################################

К своему стыду, я должен признать, что я не узнал, что означает вторая пара чисел, то есть 5;74и 5;146.

Может кто-нибудь прояснить это дальше?

sjas
источник
Что это с закрытыми голосами? Я уже знал ссылку на Википедию и до сих пор не знаю, что означает порядок последовательности. Метод проб и ошибок и установка разных значений мне совсем не помогли. Простое "иди в RTFM" мне здесь не поможет.
Sjas
Ты, должно быть, шутишь ... это просто здорово! Где этот материал задокументирован? Я просмотрел справочные страницы BASH и LESS, но не смог найти строку LESS_TERMCAP.
ysap
Хорошо, нашел это для начала: unix.stackexchange.com/questions/119/colors-in-man-pages
ysap
Это: " for name [ [ in [ word ... ] ] ; ] do list ; done" имеет больше смысла сейчас, в цвете ... 8-)
ysap
@ysap: Я не видел этих ссылок, и не могу вспомнить, где я нашел это. Поместите это здесь для целей документации и спросите о escape-последовательностях в процессе. :)
sjas

Ответы:

1
export LESS_TERMCAP_md=$'\E[0;33;5;74m'  # begin bold
export LESS_TERMCAP_us=$'\E[0;36;5;146m' # begin underline

В этих двух случаях все цвета и атрибуты сбрасываются (0), цвет переднего плана переключается на желтый / коричневый (33) или голубой (36), затем включается мигание (5), а затем происходит что-то еще ( 74 или 146), которые, вероятно, не определены и не желательны.

export LESS_TERMCAP_so=$'\E[38;5;246m'

Это отличается, потому что 38 принимает дополнительные числовые параметры. Он обозначает расширенный цвет переднего плана (и аналогично 48 будет таким же для фона), и если после следующего параметра следует 5 (который не имеет ничего общего с миганием на этот раз), третье число определяет индекс цвета ( от 0 до 255: 16 стандартных устаревших цветов, за которыми следует куб 6x6x6 RGB, а затем 24 оттенка серого), см., например, здесь .

Некоторые терминальные эмуляторы также поддерживают прямые произвольные цвета RGB, в этом случае за 38 должны следовать 2, а затем три десятичных числа в диапазоне 0-255 для R, G, B соответственно, например, # BADA55 is

\E[38;2;186;218;85m
Эгмонт
источник
1
Очень плохо, что вы не можете знать, что ;означает дополнительные параметры предыдущего, а что означает совершенно новый, не глядя на точные цифры. Поэтому было рекомендовано, чтобы дополнительные параметры были разделены :вместо. Например, чтобы сбросить все настройки, затем переключитесь на цвет # 246, а также включите мигание вместо того 0;38;5;246;5, чтобы сказать 0;38:5:246;5. К сожалению, это поддерживается еще меньшим количеством терминалов.
egmont
1

С помощью http://invisible-island.net/xterm/ctlseqs/ctlseqs.html и ссылки на википедию я пришел к выводу, что это 5значит 5 Blink: Slow less than 150 per minute.

Последние цифры звучат так:

 If 88- or 256-color support is compiled, the following apply. 
 P s = 3 8 ; 5 ; P s  Set foreground color to the second P s . 
 P s = 4 8 ; 5 ; P s  Set background color to the second P s .

Также кажется, что количество чисел не важно, просто их хронологический порядок.

sjas
источник