マークダウン用の vim のデフォルトの構文強調表示は、すべてのタブまたは 4 つのスペースでインデントされた行をコード ブロックの始まりと見なすバニラ マークダウンに基づいています。markdown.vim から:
syn region markdownCodeBlock start=" \|\t" end="$" contained
ただし、脚注を許可する kramdown を使用します (Pandoc、Markdown Extra、MultiMarkdown などの他のものと同様)。構文の強調表示と脚注内のスペル チェックを許可するが、コード ブロックは許可しないように、このルールの変更を考え出しました。
syn region markdownCodeBlock start="\(\[\^.*\]:\n\)\@<! \|\t" end="$" contained
ただし、脚注をインスタンス化と同じ行で開始することは許可されず、脚注内のコード ブロックは許可されず、複数段落の脚注は許可されないため、完全ではありません。これを改善する方法について何か提案はありますか?