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