首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么能保持着色当管道人到更少?

我怎么能保持着色当管道人到更少?
EN

Unix & Linux用户
提问于 2022-08-14 06:26:46
回答 2查看 1.5K关注 0票数 16

我把这个放在我的.zshrc文件里

代码语言:javascript
复制
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'时,它不再是彩色的:

如何在第二种情况下获得彩色输出,与第一种情况相同?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2022-08-14 12:23:56

不要用额外的选项在less中穿行,而是在LESS变量中传递这些额外的选项。

代码语言:javascript
复制
LESS="$LESS +/PROCESS SUBSTITUTION" man zshexpn
票数 10
EN

Unix & Linux用户

发布于 2022-08-14 06:41:19

我假设您在主流Linux发行版上使用man。如果man的输出不是终端,那么那里(以及其他系统上的)默认删除格式;因为您是手动管道到less,这就是这里所发生的事情。

可以通过将MAN_KEEP_FORMATTING设置为非空值来覆盖此值:

代码语言:javascript
复制
MAN_KEEP_FORMATTING=1 man zshexpn | less '+/PROCESS SUBSTITUTION'

如果希望这种行为成为默认行为,请将MAN_KEEP_FORMATTING与其他设置一起导出;请记住,这将影响所有man调用,当输出不被终端处理时,这将产生副作用(例如,如果您想要grep输出)。

票数 17
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/713570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档