个性化彩色手册页 zsh 插件颜色

Sou*_*euh 3 zsh oh-my-zsh

我刚刚安装了colour-man-pages zsh 插件。

它运行良好,但我在底部消息上有一个难看的颜色输出:

在此处输入图片说明

在不覆盖所有内容的情况下个性化插件颜色的正确方法是什么?似乎颜色是在插件激活过程中直接设置的。

或者它可能是我的系统的错误,可以用另一种方式修复?事实上,这种默认的不可读的颜色输出看起来很奇怪。

我在 Ubuntu 18.10 和 gnome-terminal 下运行。

jim*_*mij 6

手册页 ( groff)的格式不允许明确使用颜色,但使用了一些文本装饰,如粗体或下划线,而这些文本又可以由查看者重新解释以显示颜色。而这正是联插件是干什么的,所以我建议删除此插件,而是直接在设置颜色.zshrc通过LESS_TERMCAP变量(我假设你正在使用lessman的寻呼机等做这个插件)。

这是带有描述的变量列表:

export LESS_TERMCAP_mb=$'\e[6m'          # begin blinking
export LESS_TERMCAP_md=$'\e[34m'         # begin bold
export LESS_TERMCAP_us=$'\e[4;32m'       # begin underline
export LESS_TERMCAP_so=$'\e[1;33;41m'    # begin standout-mode - info box
export LESS_TERMCAP_me=$'\e[m'           # end mode
export LESS_TERMCAP_ue=$'\e[m'           # end underline
export LESS_TERMCAP_se=$'\e[m'           # end standout-mode
Run Code Online (Sandbox Code Playgroud)

可以使用此脚本找到颜色代码列表:

#!/bin/bash

echo "PALETTE OF 8 COLORS (bold, high intensity, normal, faint)"
for i in {30..37}; do printf "\e[1;${i}m1;%-2s      \e[m" "$i"; done; echo
for i in {90..97}; do printf "\e[${i}m%+4s      \e[m" "$i"; done; echo
for i in {30..37}; do printf "\e[${i}m%+4s      \e[m" "$i"; done; echo
for i in {30..37}; do printf "\e[2;${i}m2;%-2s      \e[m" "$i"; done;

echo -e "\n\n\nPALETTE OF 256 COLORS (only normal)"
j=8
for i in {0..255}; do
    [[ $i = 16 ]] && j=6
    [[ $i = 232 ]] && j=8
    printf "\e[38;5;${i}m38;5;%-4s\e[m" "${i}"
    (( i>15 && i<232 )) && printf "\e[52C\e[1;38;5;${i}m1;38;5;%-4s\e[52C\e[m\e[2;38;5;${i}m2;38;5;%-4s\e[m\e[126D" "${i}" "${i}"
    [[ $(( $(( $i - 15 )) % $j )) = 0 ]] && echo
    [[ $(( $(( $i - 15 )) % $(( $j * 6 )) )) = 0 ]] && echo
done
exit 0
Run Code Online (Sandbox Code Playgroud)