web-dev-qa-db-ja.com

ほとんどのvimカラースキームを使用するとき、スクリーンショットのように見栄えがよくないのはなぜですか?

多くのvimカラースキーマをダウンロードして試してみましたが、それらの多くは公式のスクリーンショットのようには見えません。

たとえば、vim独自のカラースキーマ-desertは次のようになります。 desert color schema

しかし、私のvimでは、たとえば背景など、多くの色が表示されません。 my vim color display

ただし、一部のカラースキーマは正常に機能します。

何故ですか?

[編集]-> [プロファイル設定]-> [色]で、[システムテーマの色を使用する]を選択します

45
Tanky Woo

多くのカラースキームは256色用に設計されており、標準の8色端末よりもはるかに優れています。これを機能させるには、$TERMのような256色の端末にxterm-256colorを設定する必要があります。

256色対応の端末(Gnome端末の場合はスクリーンショットから見たように見えます)がある場合は、$TERMxterm-256colorに設定し、vimrcで次のような方法で256色を有効にします。

if $TERM == "xterm-256color"
  set t_Co=256
endif

Vim wikiにはいくつかのヒントがあります さまざまなターミナルエミュレータに正しい$TERMを設定することについて。これをすばやくテストする最も簡単な方法は、

TERM=xterm-256color vim 

これにより、GUI vim用に設計されたカラースキームはターミナルVimと完全に互換性がなくなりますが、256色のカラースキームが機能し、標準の8色のカラースキームよりも大幅に改善されます。

58

* nixシステムでは、端末の機能を記述するterminfoエントリに$ TERM環境変数を設定する非常に目的サポートされている色の数を含む端末内で実行されるアプリケーションにこれらの機能をアドバタイズすることです。

言い換えれば、最初にこの変数を設定する理由は、Vim(またはmutt .. slrn .. ELinks ..など)に伝えるためです。.ちょっと..特に256色をサポートしています。 ..?

その結果、t_Co Vim変数の値を設定するために$ TERMの値をテストするためにvimrcに肥大化を追加する際に無意味があります。 Vimは、$ TERM変数が指すterminfoエントリからサポートされている数の色を取得するのに十分スマートです。それが最初の場所でそれを設定する理由です。

この点で、ターミナル/コンソールVimは* nixモデルに単純に従って、terminfoエントリからターミナルの機能を決定し、自動的にはt_Co変数の内容を設定します。

GNU/linux環境で15種類のターミナルエミュレーションのようなものを試し、テストしました。

19
guv'

最初のスクリーンショットはGVimであり、ターミナルVimではありません。色のサポートに関しては、端末は非常に限られています。また、GVimは完全なRGBスペースを使用できます。

16
Cat Plus Plus

ここでの他の答えは良いです。また、 このページ vimのカラー環境の理由と方法を調整および理解するのに非常に便利であることがわかりました。

6
David Pope