14

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

Страницы 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 ответа4

5

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

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

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

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

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .