水银。颜色输出管道减少

mma*_*lay 37 command-line mercurial less

操作系统:Mac OS 10.6.2

我希望在通过 less 传输某些命令时能够看到颜色输出。

两个例子:

我的 ls 别名为ls --color=auto,所以我希望在执行此操作时能够看到颜色:

ls -l | less
Run Code Online (Sandbox Code Playgroud)

我还在 Mercurial 中打开了颜色扩展,所以我想看看颜色输出:

hg diff | less
Run Code Online (Sandbox Code Playgroud)

hg st | less
Run Code Online (Sandbox Code Playgroud)

经过一些谷歌搜索,似乎有些版本不支持 -r 或 -R 来完成这项工作,但对我来说没有骰子。我在手册页中看不到任何我需要的东西。(-r 或 -R 似乎是正确的选项,但同样,它们似乎不起作用)

ric*_*chq 31

对于 mercurial,您应该使用寻呼机扩展名,而不是明确地通过管道减少。这将很好地与其他 hg 命令的彩色输出选项配合使用。


小智 13

我相信你必须使用--color=alwaysforls如果你想让它做颜色,即使不打算stdout。然后-rless命令上使用

ls --color=always -l | less -r
Run Code Online (Sandbox Code Playgroud)


sta*_*onk 13

做:

$ hg diff --color always | less -R
Run Code Online (Sandbox Code Playgroud)

我会将“less -R”别名为less。我不知道是否有一种方法来提供默认选项善变的命令,这样你就不必记住输入--color alwayshg diff所有的时间。


小智 13

在你的 ~/.hgrc 中:

[extensions]
color =
pager =

[pager]
pager = LESS='FRSXQ' less
quiet = True
attend = outgoing,incoming,diff,status,log,qdiff,blame,annotate,pdiff,glog
Run Code Online (Sandbox Code Playgroud)