前書き
私の質問は、理解することの必要性から生じる、なぜ私が持っている今、(複数の試行後)ターミナルとtmuxの 256色をサポートし、tput colorsわずか8それらのがある私に告げます。
バックグラウンド
最初から始めましょう。
Ubuntuボックス、Guake、tmux、Vimを使用していますが、テーマSolarizedが大好きです。彼らはかなりひどく見えていたので、私は256色のサポートを有効にし、少し遊んでみることにしました。
Terminalで何が起こるか見てみましょう。tput colors8色あります。個人的には左に紫色に設定しました。もちろん、右には2種類の青色があります。$TERMと言うxterm。(色付きのls私はeval これを私の.bashrc。)

256256色がサポートされていない環境でフラグを付けて呼び出すという事実にもかかわらず、Vimも正常に見えます。
set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized
色空間の減少について不平を言うのはtmuxだけです。呼び出しtmuxは、「間違った」期待される結果を提供します。

しかしtmux、-2フラグを使用して呼び出すと、すべてが魔法のようにうまく動作します。

今私が理解している唯一のことは、それ-2がexport TERM=screen-256color(source)と同等であることです。
GuakeはTerminalと同様に動作し、両方ともxterm質問に答えecho $TERMます。
質問
基本的に、誰もがうまくいかなくてもすべてが機能する理由を理解していますか?
- 私は物事がなぜ機能するのか不平を言っているのはサディスティックですか?多分。
- より良い理由はありますか?確かに、私は私のオフィスの他のUbuntuボックスの外観を修正したいと思います。そして、物事がなぜ機能するか、または機能しないのかを理解したいと思います。
追加実験
このスクリプトを(少し変更して)実行xtermすると、次の結果が得られます。256色ですが、16色のみが正しく表示されます。

次に、端末のプロファイルを変更すると、これらの16色も変わります。

さらにテストが続きます。
左から右、上から下に、ソラリゼーションカラーテーマがdircolor ansi-darkあり256dark、デフォルト(タンゴ)カラースキーム、dircolor ansi-darkおよびがあり256darkます。

観察:理論的にはdircolor ansi-dark、ソラライズされた配色は、厳密に一致する必要がありdircolor 256darkます。リストされた特定のファイルでは、これは明らかに発生していません。代わりに、作業ディレクトリにフォルダ、テキストファイル、シンボリックリンクが存在する場合、これはかなり起こります。結論:256dark色のエンコード中に注意が払われていません。
予備的結論
xtermとはいえ、256色をサポートしていtput colorsます。プログラムは、ansiパレット(ユーザーがカスタマイズ可能)を参照したり、合計256色から選択して色を定義したりできます。
tput colorsが信頼できないテストであることを理解していると思います。私の予備的な結論を確認してもらえますか?
tput colorsと、1つの値しか返せず、2,8,16,88または256色のいずれかをサポートする端末では、最初の値(この場合は8)だけが返されます。真の値を取得するには、前回のコメントのスクリプトを使用します。それは何を返しますか?
画像を右クリック/表示して、最大解像度で検査してください
ソラリゼーションされた「劣化した」dircolors参照マップ