当我通过
ls
滚动less
滚动时,我失去了颜色。 > #1 楼
您的ls
最有可能是ls --color=auto
的别名,这告诉ls
仅在其输出为tty时才使用颜色。如果您执行ls --color
(在道德上等同于ls --color=always
),则将强制其打开颜色。理念。最好使用--color
命名其他别名。less
也需要-R
。#2 楼
尝试使用-R选项,例如:command | less -R
这样一来对我有效,就像这样: />
也是如此:
ls -la | grep --color=always bash | less -r
但是您必须使用-稍微调整主输出(在这种情况下为ls的输出)颜色参数。
评论
谢谢,这也适用于ack-grep。 ack-grep my_string --color |少-R
–igniteflow
2014年1月30日14:25
--color无法识别:ls:非法选项--在osx上运行bash。
– SMBiggs
2014年10月17日在17:04
@Scott Biggs:在OSX中没有--color;试试ls -G
–user262186
2015年1月3日,下午6:34
@ Lu-Chi,即使使用-G,颜色也会丢失
–尤利安·奥诺夫雷(Iulian Onofrei)
15年2月6日在10:26
-R选项是--RAW-CONTROL-CHARS的缩写。
–罗里·奥凯恩(Rory O'Kane)
18年3月28日在21:15
评论
为此,为什么不将ls别名为ls --color或ls --color = always是一个好主意?
– j08lue
2015年4月8日13:38
@ j08lue如果通过不处理颜色的命令进行传递,则会得到一些可能会使该命令弄乱的垃圾字符。例如,我做了ls --color = always |更少而得到:ESC [01; 32mexecute_once.shESC [0m(我知道这很旧,您可能不在乎,但是对于将来的访问者来说,这可能很有用)
–瑞安·阿莫斯(Ryan Amos)
2015年6月30日在16:51