Reputation: 19115
I have ls
and grep
aliased to ls --color=auto
and grep --color=auto
for colorized output, but when I pipe to more the color is lost.
Neither more
nor less
seems to have a param for colorizing their output. Is there any way to do this?
Upvotes: 14
Views: 1868
Reputation: 10071
On macOS 10.15 Catalina (darwin 19.0.0) you can colorize the output of ls
piped to head
, grep
, less
and more
with the following adjustments to your zsh config:
~/.zshrc
alias less="less -R"
alias more="more -R"
~/.zshenv
export GREP_COLOR=always
export CLICOLOR_FORCE=true
Run open x-man-page://command
to open the man page for the command command
.
Upvotes: 2
Reputation: 7838
The problem isn't that more
and less
aren't colourizing their output, it's that ls
is not outputting the colour because it's connected to another process rather than the terminal.
You can't easily get ls
to be any smarter about when it outputs colour, but you can add --color
to force it to output colour when you're piping it to more
When you have colour output, use ... |less -R
to make less
pass the colours through to the terminal instead of showing the escape codes as text
Upvotes: 19