9

モードに応じてステータスラインの色を変更するために作成しているプラ​​グインを完成させるためにこれが必要です。

しかし、明らかな問題に遭遇しましたが、ユーザーが使用しているテーマをどのように知ることができますか?そして、たとえ私が知っていたとしても、テーマごとに特定の色を作ることはできません。

たとえば、現在のテーマがステータスラインに使用している前景色と背景色を知る方法。

編集1:

よくわからない場合は、特定のもののctermfg/bgおよびguifg/を見つける方法を探しています。bg現在、ステータスライン。:)

編集2:

どうやら:hi StatusLine私が必要なものを手に入れることができたとしても、すべてではなく、価値だけを手に入れるためにそれを洗練する必要があります。値を見つけるために正規表現を使用する必要があると思います。誰かがもっと簡単な方法を知っているなら、それを共有してください(またはあなたがすでにそれを正規表現で理解しているなら)。ありがとう!

4

2 に答える 2

14

このsynIDattr()関数を使用して、構文の強調表示のさまざまな属性(前景色や背景色など)を照会できます。ハイライトグループのIDを決定するには、hlID()を使用できます。参照してください:help hlID()

:echo synIDattr(synIDtrans(hlID('StatusLine')), 'fg')
于 2012-12-27T00:42:32.370 に答える
1

あなたはで背景を得ることができます

:echo &background

によると設定:help backgroundもあるはずですが、foreground私にはうまくいきません。

編集: 変数、、、guibgおよびがguifgありますctermbgctermfg:hi[glight]

于 2012-12-26T20:26:49.533 に答える