bash:彩色手册页

sja*_*jas 15 bash shell colors pager 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
 #########################################
Run Code Online (Sandbox Code Playgroud)

令我感到羞耻的是,我不得不承认我没有弄清楚第二对数字的含义,即 the5;74和 the 5;146

有人可以进一步澄清吗?

Ign*_*ams 5

"\e[...m" 是 SGR CSI 代码。“ANSI 转义码”、“CSI 代码”部分的维基百科页面对它们进行了描述。


egm*_*ont 1

export LESS_TERMCAP_md=$'\E[0;33;5;74m'  # begin bold
export LESS_TERMCAP_us=$'\E[0;36;5;146m' # begin underline
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,所有颜色和属性都被重置(0),前景色切换为黄色/棕色(33)或青色(36),然后打开闪烁(5),然后还会发生其他事情( 74 或 146),这可能是未定义的并且不是所需的。

export LESS_TERMCAP_so=$'\E[38;5;246m'
Run Code Online (Sandbox Code Playgroud)

这个不同,因为 38 需要额外的数字参数。它代表扩展前景色(同样,48 与背景颜色相同),如果后面跟着 5 作为下一个参数(这次与闪烁无关),则第三个数字指定颜色的索引(从 0 到 255:16 种标准传统颜色,后跟 6x6x6 RGB 立方体,后跟 24 种灰度颜色),请参见例如此处

某些终端模拟器还支持直接任意 RGB 颜色,在这种情况下,38 后面应跟有 2,然后分别为 R、G、B 的 0-255 范围内的三个十进制数,例如 #BADA55 是

\E[38;2;186;218;85m
Run Code Online (Sandbox Code Playgroud)