当我拥有dircolors时,定义的生活就充满了...颜色。

当我通过ls滚动less滚动时,我失去了颜色。 >

#1 楼

您的ls最有可能是ls --color=auto的别名,这告诉ls仅在其输出为tty时才使用颜色。如果您执行ls --color(在道德上等同于ls --color=always),则将强制其打开颜色。理念。最好使用--color命名其他别名。

less也需要-R

评论


为此,为什么不将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



#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