indentLineプラグインを導入するとYAMLの構文強調がおかしくなる

Vimにはインデント階層を可視化してくれる indentLine というプラグインがあります。 このプラグイン、便利なので僕も使っているのですが、ひとつ問題点があります。このプラグインを導入すると、YAMLの構文強調がおかしくなるのです。

Fig. 1 indentLine無効時

f:id:mrk21:20140625182816p:plain

Fig. 2 indentLine有効時

f:id:mrk21:20140625182825p:plain

ふーむ、どうやらインデントされたブロックマッピングのキー部分がハイライトされてないですね。これはどういうことだろうと、indentLineのソースを読むと、after/plugin/indentLine.vimsyntax match ...部分が悪さをしていることが分かりました。

Fig. 3 after/plugin/indentLine.vim, 81行目

execute 'syntax match IndentLine /\%(^\s\+\)\@<=\%'.i.pattern.' / containedin=ALL conceal cchar=' . g:indentLine_char

つまり、indentLineの上記コードにおいて、/^\s\+/を喰っちゃってるので、ハイライトがされなくなったわけです。 この問題を解決するためには、ブロックマッピングのマッチングルールを変更する必要があるわけですが、どうやってやろう…