Vimにはインデント階層を可視化してくれる indentLine というプラグインがあります。 このプラグイン、便利なので僕も使っているのですが、ひとつ問題点があります。このプラグインを導入すると、YAMLの構文強調がおかしくなるのです。
ふーむ、どうやらインデントされたブロックマッピングのキー部分がハイライトされてないですね。これはどういうことだろうと、indentLineのソースを読むと、after/plugin/indentLine.vim
のsyntax match ...
部分が悪さをしていることが分かりました。
execute 'syntax match IndentLine /\%(^\s\+\)\@<=\%'.i.pattern.' / containedin=ALL conceal cchar=' . g:indentLine_char
つまり、indentLineの上記コードにおいて、/^\s\+/
を喰っちゃってるので、ハイライトがされなくなったわけです。
この問題を解決するためには、ブロックマッピングのマッチングルールを変更する必要があるわけですが、どうやってやろう…