.zshrc
我的文件中有这个
export MANLESS=""
export LESS="--RAW-CONTROL-CHARS"
export LESS_TERMCAP_mb=$(tput bold; tput setaf 5)
export LESS_TERMCAP_md=$(tput bold; tput setaf 1)
export LESS_TERMCAP_so=$(tput setaf 1; tput setab 3)
export LESS_TERMCAP_se=$(tput rmso; tput sgr0)
export LESS_TERMCAP_us=$(tput setaf 3)
export LESS_TERMCAP_ue=$(tput sgr0)
当我使用 man as: 时man zshexpn
,我有漂亮的彩色部分:
当我在手册页的同一部分使用 man as: 时man zshexpn | less '+/PROCESS SUBSTITUTION'
,它不再是彩色的:
如何在第二种情况下获得彩色输出,与第一种情况相同?
答案1
我假设您使用的man
是主流 Linux 发行版。man
如果其输出不是终端,则那里(以及其他系统上)默认删除格式;因为您手动通过管道传输到less
,所以这就是这里发生的情况。
您可以通过设置MAN_KEEP_FORMATTING
为非空值来覆盖它:
MAN_KEEP_FORMATTING=1 man zshexpn | less '+/PROCESS SUBSTITUTION'
如果您希望此行为成为默认行为,请MAN_KEEP_FORMATTING
与其他设置一起导出;请记住,这将影响所有man
调用,当输出没有最终由终端处理(例如如果你想要grep
输出)。
答案2
不要通过管道传递less
额外的选项,而是在LESS
变量中传递这些额外的选项。
LESS="$LESS +/PROCESS SUBSTITUTION" man zshexpn