man 命令显示颜色

man 命令显示的内容默认是没有颜色的。可以通过设置 LESS 环境变量或使用 MOST 分页程序来使 man 显示颜色。

设置 LESS 环境变量(推荐)

.bashrc 中添加以下行:

  • 绿红配色:

    export LESS_TERMCAP_md=$'\e[1;32m' \
           LESS_TERMCAP_me=$'\e[0m' \
           LESS_TERMCAP_so=$'\e[1;41;30m' \
           LESS_TERMCAP_se=$'\e[0m' \
           LESS_TERMCAP_us=$'\e[4;40;36m' \
           LESS_TERMCAP_ue=$'\e[0m'
    

    image

  • 蓝黄配色:

    export LESS_TERMCAP_md=$'\e[1;36m' \
           LESS_TERMCAP_me=$'\e[0m' \
           LESS_TERMCAP_so=$'\e[1;44;33m' \
           LESS_TERMCAP_se=$'\e[0m' \
           LESS_TERMCAP_us=$'\e[4;33m' \
           LESS_TERMCAP_ue=$'\e[0m'
    

    image

  • LESS_TERMCAP_mb:开始闪烁模式的转义序列(现代终端支持较少)

  • LESS_TERMCAP_md:开始加粗模式的转义序列(标题)

  • LESS_TERMCAP_me:结束加粗、闪烁模式的转义序列

  • LESS_TERMCAP_so:开始突出文本的转义序列(提示文本、搜索高亮)

  • LESS_TERMCAP_se:结束突出文本的转义序列

  • LESS_TERMCAP_us:开始下划线模式的转义序列(占位符)

  • LESS_TERMCAP_ue:结束下划线模式的转义序列

关于 LESS_TERMCAP_* 环境变量的具体说明可以参见 Documentation on LESS_TERMCAP_* variables? | Stack Exchange

为了避免环境变量污染,可以使用一个函数包装 man 命令:

function man {
    env LESS_TERMCAP_md=$'\e[1;32m' \
        LESS_TERMCAP_me=$'\e[0m' \
        LESS_TERMCAP_so=$'\e[1;41;30m' \
        LESS_TERMCAP_se=$'\e[0m' \
        LESS_TERMCAP_us=$'\e[4;40;36m' \
        LESS_TERMCAP_ue=$'\e[0m' \
        /usr/bin/man "$@"
}

关于颜色配置表请参见 echo 输出彩色字符

使用 MOST 分页程序

安装 MOST

# Ubuntu
sudo apt install most
# macOS
brew install most

.bashrc 中添加如下内容:

export PAGER="most"

image

参考:

posted @ 2024-02-02 22:35  Undefined443  阅读(61)  评论(0)    收藏  举报