是否可以将管道输出着色为更多?

时间:2012-04-05 00:56:55

标签: linux bash unix pipe

我将 ls grep 别名为'ls --color = auto''grep --color = auto '用于彩色输出,但是当我输出更多时,颜色会丢失。

more less 似乎都没有用于为其输出着色的参数。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:16)

问题不在于moreless没有对其输出进行着色,而是ls没有输出颜色,因为它连接到另一个进程而不是终端。

在输出颜色时,你不能轻易让ls变得更聪明,但是当你将它输送到{{1}时,你可以添加--color来强制它输出颜色}

当您有颜色输出时,使用more使... |less -R将颜色传递到终端,而不是将转义码显示为文本

答案 1 :(得分:3)

ls --color | less -r

在Linux上测试,GNU userland。

答案 2 :(得分:0)

在macOS 10.15 Catalina(darwin 19.0.0)上,您可以使用以下方法为通过lsheadgrepless传递到more的输出着色对您的zsh配置进行以下调整:

〜/ .zshrc

alias less="less -R"
alias more="more -R"

〜/ .zshenv

export GREP_COLOR=always
export CLICOLOR_FORCE=true

运行open x-man-page://command打开命令command的手册页。