为类 Unix 系统中的 man page 增加高亮着色
在类 Unix 系统中,我们经常通过 man
查看具体命令的用法,如下图,为 man sed
:
默认所有文本颜色都是相同的,不利于阅读。这里介绍两种简单的方式,为终端 man page 增加高亮着色。
在配置文件中配置文本颜色
在对应的 rc 文件(例如 .bashrc
)中添加如下变量:
export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[01;33m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;31m'
这里其实是通过「色彩码」来控制文本颜色的,如 \e[1;32m
里的 32 对应的就是红色,\e[0m
的 0 对应重置,具体我们使用的文本颜色如下:
- 0 - 默认(重置)
- 31 – 红
- 32 – 绿
- 33 – 黄
类似的,还通过对应编码控制文本格式:
- 0 – 正常(重置)
- 1 – 粗体
- 4 – 下划线
在重新加载配置文件后,man page 就变成彩色的了。例如 man sed
如下:
安装 most 实现
另外,我们也可以通过为终端安装 Most,让 Most 成为默认 man page 实现。
以 Mac 为例,通过 Homebrew 安装:
brew install most
然后在对应 Shell 配置文件中增加下面这行语句:
export PAGER="most"
之后的 man page 就变成彩色的了。我们同样看看 man sed
的样子:
不过这样会和默认的 man page 行为有些不兼容,例如不能用 j 和 k 上下滚动了,我个人不是很喜欢,最终还是选择自己在配置文件中配置着色的方式。