vimでmarkdownのfrontmatterにちゃんと色を付ける
vimは標準でmarkdownをシンタックスハイライトしてくれるのですが、frontmatterに対応していません。
frontmatterを使う機会が結構あるのですが、いつも変な見た目になって気になっていたのでちょっと綺麗にしてみました。
何もしなかった場合の見た目
デフォルトのvimだと、以下のような感じになってしまいます。
frontmatter部分もmarkdownとして認識しようとしているので、罫線と見たり見出し行として見たりして変な感じ。
ハイライトのルールを追加する
~/.vim/after/syntax/markdown.vim
に以下のようなファイルを作ります。
unlet b:current_syntax syntax include @Yaml syntax/yaml.vim syntax region yamlFrontmatter start=/\%^---$/ end=/^---$/ keepend contains=@Yaml
ファイルの1行目が---
から始まっていたら、次の---
という行までをyamlとしてハイライトする、みたいな指示ですね。
ちゃんとハイライトされるようになった
これを書いてあげると、以下のようにfrontmatter部分はちゃんとYAMLとして表示してくれます。
私の場合はGitHub Flavored Markdownを使いたいのでvim-gfm-syntaxというプラグインでmarkdown
シンタックスを上書きしているですが、それでも上記の記述だけで機能しました。良い感じ。