如何更改 Less 命令输出边缘的“~”字符的颜色。
如何更改底部“(END)”的颜色?
答案1
LESS 基于 termcap 库使用多个环境变量来控制颜色。变量列表如下:
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[0m' # end mode
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
如果你想设置不同的前景色,只需将 3x 更改为其他颜色即可更改背景更改或添加 4x,例如。将问题中的“~”(波浪号字符)的颜色更改为红色前景和绿色背景集
export LESS_TERMCAP_md=$'\E[31;42m'
使用这些变量,您将为搜索模式、提示甚至手册着色(如果您使用 less 作为寻呼机)。
您还可以更改其他较少的行为,例如提示,请尝试以下一项:
export LESS='-iR -j4 --shift 5 -P ?n?f%f .?m(file %i of %m) ..?ltlines %lt-%lb?L/%L. :byte %bB?s/%s. .?e(END) ?x- Next\: %x.:?pB%pB\%..%t'
和它一起玩,玩得开心。
注1
由于新 groff 版本中的一些错误,您可能需要设置
export GROFF_NO_SGR=''
以及改变颜色。
笔记2(基本颜色代码列表)
Foreground:
30 - black
31 - red
32 - green
33 - yellow
34 - blue
35 - magenta
36 - cyan
37 - white
Background:
40 - black
41 - red
42 - green
43 - yellow
44 - blue
45 - magenta
46 - cyan
47 - white
More about color codes: http://en.wikipedia.org/wiki/ANSI_escape_code
答案2
less
不提供对其显示的功能的微调,更喜欢使用视频属性,例如粗体和反向(或突出):
~
仅当设置了“twiddle”选项(“在文件末尾后显示波形符”)时,字符才会以粗体属性打印。当你可以修改用于绘制粗体文本的终端功能,“END”由standout/standend终端功能括起来。
对于这两者,less
出于其他原因使用相同的终端功能,例如,
less
当看到一个字符重打包含相同字符的单元格时,使用粗体,例如AbackspaceA。standout 用于突出显示错误消息。
也就是说,您可以通过使用合适的终端转义序列设置这两个环境变量来更改粗体文本的外观:
LESS_TERMCAP_md
LESS_TERMCAP_me
这术语信息(5)手册给出了“md”和“me”的含义的线索,在第三列中列出了 termcap 名称:
enter_bold_mode bold md turn on bold (extra
bright) mode
exit_attribute_mode sgr0 me turn off all
attributes
同样,standout 和standend 是
LESS_TERMCAP_so
LESS_TERMCAP_se
对应这个描述:
enter_standout_mode smso so begin standout mode
exit_standout_mode rmso se exit standout mode
进一步阅读: