web-dev-qa-db-ja.com

Mercurial。カラー出力をパイプに接続

オペレーティングシステム:Mac OS 10.6.2

Lessを介して特定のコマンドをパイプするときに、カラー出力を表示できるようにしたいと思います。

2つの例:

私はls --color=autoにエイリアスされたlsを持っているので、これを行うと色が見えるようにしたいと思います。

ls -l | less

Mercurialでカラー拡張機能をオンにしているので、次のカラー出力を確認したいと思います。

hg diff | less

そして

hg st | less

いくつかグーグルした後、それが機能するように-rまたは-Rのどちらかをサポートしていないバージョンのようですが、私にとってサイコロはありません。 manページに、必要なもののように見えるものが何もありません。 (-rまたは-R SEEMが適切なオプションですが、やはり機能しないようです)

35
mmacaulay

Mercurialの場合、lessに明示的にパイプするのではなく、 pager extension を使用する必要があります。これは、他のhgコマンドのカラー出力オプションとうまく連携します。

30
richq

行う:

$ hg diff --color always | less -R

「less -R」をlessにエイリアスします。 Mercurialのコマンドにデフォルトのオプションを提供して、常に--color alwayshg diffと入力する必要がないようにする方法があるかどうかはわかりません。

13
stantonk

〜/ .hgrcに次のように入力します。

[extensions]
color =
pager =

[pager]
pager = LESS='FRSXQ' less
quiet = True
attend = outgoing,incoming,diff,status,log,qdiff,blame,annotate,pdiff,glog
13
Joe HG

lsに行かなくてもカラーを実行したい場合は、stdout--color=alwaysを使用する必要があると思います。次に、lessコマンドで-rを使用します

ls --color=always -l | less -r
13
Brandon Bodnar

Mercurialに Pager Extension を使用したくない場合は、次のコマンドを使用できます。

hg diff | cdiff
2
Good Person

ls --color=autoは、何かにパイプされているときにnotのときにカラー出力を取得することを意味します。 ls --colour=auto | catを試してみてください。意味がわかります。

Hgが同様の仮定を行うことを期待します。

0
keturn

https://www.Mercurial-scm.org/wiki/Defaults

[デフォルト] diff = --color always

0
user612789