2016-04-05 14 views
2

Windows上でgvim 7.4を使用していますが、クリーンインストールで、プラグインはありません。誰でも説明できる理由:ステータスラインの色が反転しています。どうして?

highlight statusline guifg=red guibg=green 

私は赤い背景に緑のテキストを表示します。

しかし、この1:

highlight statusline gui=NONE guifg=red guibg=green 

は緑の背景に赤い文字が表示されますか?

(実際の目標は、ステータスラインのテキストを太字から標準に変更することでした。このタスクでは、gui=NONEを追加して、この奇妙な動作を参照してください)。

編集

(ケントさんのコメントに私の答えとして)

はここに私の完全な_vimrcです。また、試してみました

set laststatus=2 
highlight statusline gui=NONE guifg=red guibg=green 

:コード上の唯一の2行があります

  • hihighlight
  • StatusLineと同じ効果を与えますが。これはstatusline
+0

このグループは 'StatusLine'と呼ばれていますが、Windowsの大文字と小文字の区別はわかりません。':hi StatusLine'の出力も 'User1-9'の強調表示を定義しましたか?あなたは 'ステータスライン'に何を設定しましたか?あなたのvimrcを表示する – Kent

+0

返事をありがとう、私は質問を編集しました – james

+0

@Carpetsmoker ':hi StatusLine'の出力は何ですか? – Kent

答えて

2

と同じ効果を与えますデフォルトのStatusLineは、

です。
:hi StatusLine 
    StatusLine  xxx term=bold,reverse cterm=bold,reverse gui=bold,reverse 

キーワードreverseは、ctermguiにあります。それは逆のビデオを使用するよう指示します。

これは、gui=NONE(またはgui=bold)を使用した場合の色の期待値です。

HIは

hihighlightだけの簡略版であるハイライトと同じ効果を与えます。

4

どのようにhi-groupが定義されているかを確認するには、vimでhi GroupNameを使用します。そのため、OPとCarpetsmokerにcmd出力を依頼しています。

vimをコンパイルしてインストールした後、いくつかのデフォルトのHLグループが既に定義されています。

時々、人々はデフォルトの配色について尋ねました。また、「デフォルト」の配色を拡張したい。場所は見つけるのが簡単です。それは/usr/share/vim/vim74/colors/default.vimにあり、異なるディストリビューションは異なるパスを持つ可能性があります。

default.vimを開くと、かなり単純なvimファイルが表示されます。 HL定義はありません。それらはvimのソースコードに定義されているデフォルト値だったからです。

StatusLineグループに関しては、それがsyntax.cファイルで定義されました:私たちはreverseStatusLineStatusLineNCグループであることがわかります

https://github.com/vim/vim/blob/8bc189e81aa98ba4aebb03a9dc9527a210fce816/src/syntax.c#L6784

逆の「機能」を取り除くには、guiまたはcterm属性を上書きする必要があります。

関連する問題