マーキュリアル。カラー出力を少なくする


35

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

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

2つの例:

にエイリアスされたlsがあるためls --color=auto、これを行うときに色を表示できるようにしたいと思います。

ls -l | less

また、Mercurialでカラー拡張機能をオンにしているので、次からのカラー出力が見たいです。

hg diff | less

そして

hg st | less

いくつかのグーグルの後、これを動作させるために-rまたは-Rをサポートしていないバージョンもありますが、私にとってはサイコロではありません。必要なもののように見えるマニュアルページには何も表示されません。(-rまたは-R SEEMが正しいオプションですが、これも機能しないようです)


1
パイプされると、カラー拡張は常に無効になっているようです。私が何を意味するか確認するためにこれらのコマンドを試してみてください。ls --color=always | ls -Rそしてhg diff --config color.mode=ansi | less -R
ハーヴェイ

回答:


30

Mercurialの場合、明示的にlessにパイプするのではなく、ページャー拡張機能を使用する必要があります。これは、他のhgコマンドの色付き出力オプションとうまく機能します。


13

私はあなたが使用する必要が信じる--color=alwaysためにlsあなたはそれをするつもりはない場合でも、色を行いたい場合stdout。次に-rlessコマンドで使用します

ls --color=always -l | less -r

12

〜/ .hgrcに以下を入力します。

[extensions]
color =
pager =

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

なぜquiet = True部品なのか?
アインポクルム-モニカを

いいね!LESS='eiFRSXQ'EOFに達した後も終了し、検索中にケースを無視することをお勧めします
セバスチャン

11

行う:

$ hg diff --color always | less -R

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


1
または$ hg diff --color always | less -FRSXQ、より少ないオプションを使用してください。たとえば、diffが画面に収まると、静かに終了します。
-jpbochi

1
「less」自体をエイリアスする代わりにLESS = "-R"を設定できます。
10:45にブルー化された

-F生成中にファイルを読み続けること、-S行を折り返さない-Xこと、不明瞭なこと、-Q端末のベルを鳴らさないことです。
エフゲニーセルゲイエフ14年


0

ls --color=auto何かにパイプされていないときにカラー出力が得られることを意味します。試してみてls --colour=auto | cat、あなたが私が意味するものが表示されます。

hgも同様の仮定をすることを期待しています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.