256カラーエスケープシーケンスを使用すると、ls --colorはプリコンパイルされたLS_COLORSに置き換えられますか?

256カラーエスケープシーケンスを使用すると、ls --colorはプリコンパイルされたLS_COLORSに置き換えられますか?

まだ最高のタイトルを見つけていない可能性があります。私は私が欲しいものを達成できるので、実際に助けを求めることではありません。私が正しく理解したかどうか知りたいです。しかし、自分で確認してみてください。

私のシロアリプロファイルには、次のように256色を設定できます。

colorx = #xxxx

たとえば、

color255 = #8fa200

きれいな緑色を示しています。

次の構文を使用して、.dircolorsファイルを介してLS_COLORSに使用できます。

<filetype> <effects>38;5<foreground>;48;5;<background>

たとえば、

DIR 04;38;5;255

下線付きのディレクトリの場合は、指定された緑を使用します。明らかに、これはXに当てはまります。これで、ttyに関して、ディレクトリの標準的な青い色合いが表示されます。 .bashrcのエントリで使用される実際の色に影響を与える可能性があります。たとえば、次のようになります。

echo -en "\e]PCffa500"

私はそれを使ってシステム全体で非常に一貫したカラースキームを組み合わせることができました。

問題はXに256の色記述を使用しているため、ls --colors = autoがプリコンパイルされたdircolorに置き換えられることを正しく理解していますか?それとも実際にそれを制御する他のメカニズムはありますか?したがって、よりきめ細かい制御が可能になる可能性があります。

あなたの知恵を学ぶことを楽しみにしています...

ベストアンサー1

GNU言語端末の制御順序については知られていない。$TERM環境変数をそのテーブルに関連付けるだけです(環境$LS_COLORS変数から取得されたのか、それともコンパイルされたデフォルトなのかはあまり重要ではありません)。 まったく端末に何色があるかを教えてくれます。

ソースコードを読むと(dircolors.cls.c)、印刷する内容を決定するために色数量を使用しないことがわかります。 256色のエスケープシーケンスを使用するかどうかは、パッケージャが誰であるかによって異なります(しかしcoreutilsソースコードにはありません)。コメントこの可能性を示唆しています)。

端末データベースを使用しません。GNU言語デフォルトでは、後者はその情報を使用せず、端末が説明する名前を使用します。だからそんなふりをするVT100使用された色(参照ncurses FAQ)。

~からでコンパイル値はANSIの8つの色を使用し(太い色が8を追加すると仮定)、(外部)のために256の色を使用することがわかります。GNU言語)設定ファイルはに設定されています/etc

おすすめ記事