2012-04-01 11 views
7

私は端末VIM用のカラースキームで遊んでいて、私がこれまで解決できなかった不愉快なことを見つけました。OS Xの端末VIMで256色のパレットが変更されるのはなぜですか?

16種類のシステムカラーが変更されると予想しています。彼らは明らかに設定可能です。そのため、256色のパレットを使用して、端末の16(設定可能な)システムカラーパレットに関係なく同じであるVIMカラースキームを作成しようとしました。

私は256色のパレットの色のみを、背景を含めてすべて使用しました。しかし、私は、端末で指定された背景とテキストの色が異なる端末を開くと、VIMのカラースキームが2つの端末で全く異なるように見えることに気付きました。

端末で背景、前景、システムのカラーパレットが異なる場合でも、Ubuntuでの動作は似ていません。

これがなぜ起こるのかを説明する回答を、うれしく受け入れます。

私が使用したい色設定の各セットに対して特定の端末を設定する以外にも、誰かが私にこの方法を教えてくれると胸が躍ります。

+1

)、あなたは 't_Co = 256単位を使用していて、' TERM = xtermの-256color'右? –

+0

ええ、それは前にLOOOONGの世話をしました。 :) – toadjamb

+0

それはここに記載されているように自動調整することができます:http://apple.stackexchange.com/questions/29487/is-it-possible-to-disable-terminals-automatic-tweaking-of-colors-in-ライオン –

答えて

4

デフォルトでは、ANSI端末は16色のデバイスで、gvimで動作するVimのカラースキームは、端末では正常に動作しません。

一部の端末では、88色または256色が使用できます。これについては、t_Coを設定することでVimに伝えることができます。もちろん、256色はまだgvimにある完全なRGBよりも小さいです。

Matt Wozniskiによって開発されたCSApproxと呼ばれるvimのパッケージがあります。おおよその色でgvimのカラースキームを使用できます。

これは私が自分で使っているものです。

CSApproxには、私がここでできるよりも優れたすべてを説明するドキュメントファイルが含まれています。

URL:http://www.vim.org/scripts/script.php?script_id=2390

幸運。

P.S.あなたの質問についてしかし、ターミナルに指定された背景とテキストの色が異なる端末を開いた場合、VIMのカラースキームは2つの端末で全く異なるように見えます。

OSX端末のように聞こえるのは、256色のxtermパレットから色の定義を分離しないということです。つまり、その設定を操作することで、パレットやそのようなものをつぶしてしまいます。

端末は、おそらく16色のユーザー設定可能なものを256色パレットとは別にしておくべきです。

+1

さらに多くの色をサポートするためのANSI拡張がどこから来るのかについてのもう1つの便利な情報:http:// www.mudpedia。org/wiki/Xterm_256_colors – Kaz

+0

私はCSApproxについて長い間認識していましたが、それを使用する上で2つの問題があります。 1つは、私は端末VIMしか使用せず、GVimには関心がないということです。 2つ目は、自分の色について非常に気難しく、非常に具体的に選択したいということです。 – toadjamb

+0

'CSApprox'はgvim用ではありません。これはgvimではなく端末を使用するユーザのためのものです。カラースキームの表示方法のリファレンスモデルはgvimだけです。あなたが色を気にかけているなら(私は24のRGBビットのすべてを選択したいと思っています)、あなたはVimを通してそれをやっているのです。あなたの設定の仕組みを使って端末のパレットを編集する必要があります。 – Kaz

0

あなたの目に見えるようにスクリーンショットを投稿してください。色を見たり、数値を比較したりすることなく色を話すのは難しいです。

私はまだ10.6.8になっていますので、256色を表示するTerminal.appの機能を楽しんだことはありません。

しかし、AFAIKのデフォルトの16色は、X11パレットからは取り込まれません。彼らはおそらくどこかでハードコードされていて、その値はユーザ設定可能です。そのため、デフォルトのRedの値を何かに変更すると、Vimのcolorschemeの外観が変わるのでは、私は考えていません。

しかし、Terminal.app(他のほとんどの端末エミュレータなど)を使用すると、BackgroundTextBoldSelectionCursorの値を変更することができます。あなたのcolorschemesが書かれている方法によっては、これらの設定のいくつかは、あなたのcolorschemeの一部、最も顕著にはBackgroundを上書きするかもしれません。

私のTerminal.appの背景は、私のVim colorschemeの背景と長い間素晴らしい結果を得ていました。少なくとも16色の端末エミュレータでは、

0

256色モードは、単なるインデックス付きのパレットで、8色モードと16色モードと同じです。アプリケーションは単にパレットからインデックスで色を選択し、実際にどの色になるかを決めるのは端末に任されています。

2つの異なる端末がこれらのインデックスに同じ色を選んだということは、216色のRGBキューブ内に6つのレベルの各コンポーネントがあるということだけかもしれません。リストからそれぞれを選択する(00x330x660x990xcc0xff)。私は、ほとんどの端末がこれを行い、したがって同じインデックスで同じ色を与えると思います。

2つの端末が異なる場合、実際の色を選択する他の方法を使用していることを示すだけです。

+0

デフォルトの256色テーブルは、すべてのターミナルエミュレータで本質的に同じでなければなりません。正確なカラー値は異なる場合がありますが、デフォルトのカラーセットの「標準的な」説明があります。カラーキャリブレーションでもわずかなばらつきが生じます。 –

2

端末は、背景色とのコントラストが最小になるように、いくつかの色の値を動的に調整します。おそらくそれはあなたが見ているものです。

2つの異なる配色を示すスクリーンショットを添付してください。利用可能な色を見るための良いスクリプトは256colors2.plです。

0

iTerm2を使用している場合は、報告する端末のタイプを変更する必要があります。あなたのiTerm2の設定> Terminal.app別名アップルターミナルでxterm-256color

0

に設定プロファイル>ターミナル>レポート端末タイプでは、

背景色を明示的にも設定されていない場合は、色が変化します。

だからあなたのカラースキームを使用すると、例えば、Normalカラーグループを使用して、デフォルトの背景色を設定する必要があります。:

hi Normal ctermfg=188 ctermbg=234 

、その後、あなたは色にさらに変更が表示されないはずです。

注:私はあなたがすべての重要な出力を見逃さないように、おそらく影響を受けフォアグラウンドに気づいた。ただ、明確にする

関連する問題