我将 ls 和 grep 别名为'ls --color = auto'和'grep --color = auto '用于彩色输出,但是当我输出更多时,颜色会丢失。
more 和 less 似乎都没有用于为其输出着色的参数。有没有办法做到这一点?
答案 0 :(得分:16)
问题不在于more
和less
没有对其输出进行着色,而是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)上,您可以使用以下方法为通过ls
,head
,grep
和less
传递到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
的手册页。