如何在“最多/最少”中为 Apropos 的输出着色?

Léo*_* 준영 2 linux command-line-interface

以下命令让我在寻呼机中最多/最少

man -k background
Run Code Online (Sandbox Code Playgroud)

替代文字 http://files.getdropbox.com/u/175564/apropos-colors.png

图片中的所有内容都是绿色的,甚至是描述。我想将它们设置为黄色。

您如何通过 Less_termcap 将 Less/Most 中的描述设置为黄色?


我的影响较少的变量

     export LESS_TERMCAP_mb=$'\E[01;31m'         # begin blinking
     export LESS_TERMCAP_md=$'\E[01;38;5;74m'    # bold in blue
     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

     export LESS_TERMCAP_us=$'\E[04;33;146m'    # begin underline is now yellow
     #                             |  |  |
     #                             |  |----------------- yellow
     #                             |-------------------- underline

     # to have the indication of cursor's location and line numbers
     export LESS="-mN"
Run Code Online (Sandbox Code Playgroud)

Den*_*son 5

这将解决问题:

man -k background|sed "s/ - \(.*\)/ - \o033[33m\1\o033[0m/"
Run Code Online (Sandbox Code Playgroud)

你可以做一个功能:

mank () { man -k $1|sed "s/ - \(.*\)/ - \o033[33m\1\o033[0m/"; }
Run Code Online (Sandbox Code Playgroud)

那么你可以这样做:

mank background
Run Code Online (Sandbox Code Playgroud)

并且命令将采用您的默认颜色,而描述将为黄色。方括号后的“33”代表黄色。您可以用另一个数字替换另一种颜色。获取颜色列表及其代码的地方是man 5 dir_colors

而且,当然,您必须使用less -R(或设置 $LESS 以包含它)才能查看less.

这是一个更便携的版本,它使用tput

mank() { local yellow=$(tput setaf 3) default=$(tput op); /usr/bin/man -k $1|sed "s/ - \(.*\)/ - ${yellow}\1${default}/"; }
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅man tputman 5 terminfo(在“颜色处理”部分),包括可识别的颜色编号列表setaf