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

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

Страницы 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,

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

4 ответа

Решение
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

"\e[...m" - это код SGR CSI. На странице Википедии в разделе "Экранирующий код ANSI", раздел "Коды CSI", описаны их.

С помощью 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 .

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

Не совсем решение Bash, но все еще актуально, используйте:

Пейджер =~/bin/vimpager

и поместите это в ~ / bin: https://github.com/rkitover/vimpager

Другие вопросы по тегам