2016-05-03 10 views
0

vimを使用するときに、構文の強調表示がテキストを特定の方法で着色している​​理由を知りたいことがあります。私はこのテキストにカーソルを置き、いくつのコマンドを入力してそれがどの構文グループに属しているかを調べることができます。現在の文字の「構文グループ」を知るにはどうすればよいですか?

たとえば、gitcommitバッファの最初の50文字(つまりgit commitメッセージ)が奇妙な色で強調表示されていたことに気付きました。私はどのような構文グループがこれらの文字に使用されているか知りたいので、自分の(カスタム)配色を調整できます。

+0

@glts感謝。私はこの質問を検索し、それを見つけることができませんでした。これは、ドキュメントを読んで、 '2html.vim'を読んで私自身の解決策を思いついたのです。 –

答えて

1

両方の構文グループの名前、およびカーソルが上にある文字の翻訳構文グループは、次のコマンドの出力は以下となります。それはカスタムに包ますることができ、これはより便利にするために

:let s = synID(line('.'), col('.'), 1) | echo synIDattr(s, 'name') . ' -> ' . synIDattr(synIDtrans(s), 'name') 

コマンド、関数、またはキーバインディングを使用します。数値の構文ID

  • synIDtrans(s)は、以下のハイライトでsを翻訳返すことに対応する名前を返す
  • synIDattr(s, 'name')リンク

    • line('.')col('.')現在位置
    • synID(...)を返す:どのようにこの作品

      数値構文ID

    この意志出力、何かのように:

    gitcommitSummary -> Statement 
    
  • 関連する問題