2

私はvimでモロカイを使用してpython/html / css/javascriptでコーディングしています。Pythonファイル(またはJavaScript)を編集すると、括弧が色付けされません。これは、括弧が灰色になっている単純なスクリプト(molokai.vim自体など)には当てはまりません。

編集molokai.vimして追加しました

hi parens guifg=#999999

次に、編集.vimrcして追加しました。

syn match parens /[(){}]/

ただし、括弧と角かっこは白のままです。

私は何が間違っているのですか?

4

1 に答える 1

3
  1. :synすべてのファイルタイプを強調表示するために使用しないでくださいmatchadd()。使用すると、:syn強調表示を簡単に破ることができますmatchadd()。これはオーバーレイです。
  2. Syntaxイベントが発生すると、構文の強調表示が上書きされます。さらに、現在のバッファにのみ影響します。したがってsyn、vimrc だけでは機能しません。自動コマンドを使用する必要があります。

    autocmd! Syntax python :syntax match Parens /[(){}]/
    

    (python の場合、括弧と数字の括弧は他の構文要素と一致しないので安全です)。

  3. javascript の括弧 ( ) は、強調表示グループ()によって既に一致しています。javaScriptParensしたがって、使用する必要があります

    hi def link javaScriptParens Parens
    

    (配色で)。javaScriptBraces中括弧は、同様のコマンドによって照合され、必要になります。

  4. 特定のシンボルにどの強調表示が使用されているかを判断するには、このシンボルにカーソルを置いて起動します

    echo 'Normal '.join(map(synstack(line('.'), col('.')), 'synIDattr(v:val, "name")'))
    

    、通常は最後に表示された単語が必要です。のみNormalが表示されている場合、シンボルは強調表示されておらず、2. に進む必要があります。それ以外の場合は 3. に進む必要があります。

  5. 現在使用されている強調表示を無視する普遍的なソリューションについてはmatchadd()、既に述べたように使用できます。ただし、ウィンドウに対してローカルであるため、複数のウィンドウ/タブで作業している場合、autocmd なしでは移動できません。

    autocmd! WinEnter * :if !exists('w:parens_match_id') | let w:parens_match_id=matchadd('Parens', '[(){}]') | endif
    

すべての自動コマンドは、

augroup HighlightParens
    autocmd! …
augroup END
于 2012-11-24T18:44:11.657 に答える