オペレーティングシステム: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が適切なオプションですが、やはり機能しないようです)
Mercurialの場合、lessに明示的にパイプするのではなく、 pager extension を使用する必要があります。これは、他のhgコマンドのカラー出力オプションとうまく連携します。
行う:
$ hg diff --color always | less -R
「less -R」をlessにエイリアスします。 Mercurialのコマンドにデフォルトのオプションを提供して、常に--color always
をhg diff
と入力する必要がないようにする方法があるかどうかはわかりません。
〜/ .hgrcに次のように入力します。
[extensions]
color =
pager =
[pager]
pager = LESS='FRSXQ' less
quiet = True
attend = outgoing,incoming,diff,status,log,qdiff,blame,annotate,pdiff,glog
ls
に行かなくてもカラーを実行したい場合は、stdout
に--color=always
を使用する必要があると思います。次に、less
コマンドで-r
を使用します
ls --color=always -l | less -r
Mercurialに Pager Extension を使用したくない場合は、次のコマンドを使用できます。
hg diff | cdiff
ls --color=auto
は、何かにパイプされているときにnotのときにカラー出力を取得することを意味します。 ls --colour=auto | cat
を試してみてください。意味がわかります。
Hgが同様の仮定を行うことを期待します。
https://www.Mercurial-scm.org/wiki/Defaults
[デフォルト] diff = --color always