«\ e [... m» - это код SGR CSI. На странице Википедии в разделе «Код выхода ANSI», раздел «Коды CSI», описаны их.
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 ответа на вопрос
- Популярные
- Новые
- С комментариями
- Активные
С помощью 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 .
Также кажется, что количество чисел не важно, просто их хронологический порядок.
export LESS_TERMCAP_md=$'\E[0;33;5;74m' # begin bold export LESS_TERMCAP_us=$'\E[0;36;5;146m' # begin underline
In these two cases, all the colors and attributes are reset (0), the foreground color is switched to yellow/brown (33) or cyan (36), then blinking is turned on (5), and then something else also happens (74 or 146) which are probably undefined and not desired.
export LESS_TERMCAP_so=$'\E[38;5;246m'
This one's different, because 38 takes additional numeric parameters. It stands for extended foreground color (and similarly 48 would be the same for background), and if followed by a 5 as the next parameter (which doesn't have anything to do with blinking this time) the third number specifies the color's index (from 0 to 255: 16 standard legacy colors, followed by a 6x6x6 RGB cube, followed by 24 grayscale colors), see e.g. here.
Certain terminal emulators also support direct arbitrary RGB colors, in that case 38 should be followed by 2, and then by three decimal numbers in the 0-255 range for R, G, B respectively, e.g. #BADA55 is
\E[38;2;186;218;85m
Not exactly a bash solution, but still relevant, use:
PAGER=~/bin/vimpager
and drop this into ~/bin: https://github.com/rkitover/vimpager
Похожие вопросы
-
2
.profile в Mac OS X?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
5
Как мне настроить мой монитор / операционную систему для оптимального цветного дисплея?
-
-
1
Старая игра меняет цвета
-
6
Какие функции Zsh вы используете?
-
8
Убийство Windows Shell
-
3
Mac OS X: обычные места, где должны жить бинарные файлы
-
2
Mac OS X: нужен простой скрипт
-
10
Как я могу найти в истории bash и повторно запустить команду?
-
2
Можно ли передать выходные данные одной команды двум другим командам?