🏮
VimでMarkdownファイル中の`_`がエラーハイライトされてしまう問題の対処
VimでMarkdownファイルを編集しているとき、_
が意図せずエラーハイライトされてしまう問題に遭遇しました。
ハイライトの表示は設定によります
Markdownのシンタックス設定で、単語中に_
が含まれている場合が指定されていることが原因です。
syntax/markdown.vim
にて確認できます。
path-to-nvim/runtime/syntax/markdown.vim 抜粋
syn match markdownError "\w\@<=_\w\@="
_
がMarkdownの記法として動作するにはスペースに接していることが必要なので、構文エラーとして認識したいこともあるかもしれません。
しかし、URLや単語に含まれているものもエラー表示されてしまうので、筆者のユースケースではこの指定は不要に感じられました。
対処
autocmd
で設定を更新しましょう。
.vimrc or init.vim
augroup update_markdown_syntax
autocmd!
autocmd BufNew,BufEnter * if &filetype == 'markdown' | syntax match markdownError '\w\@<=\w\@=' | endif
augroup END
追記:FileTypeイベントで書いていたがそれだと正しく発火しなかったので修正
これで単語中の_
がエラーから除外されます。
参考
Discussion