vim 对 markdown 的默认语法高亮基于 vanilla markdown,它将每个制表符或四个空格缩进的行视为代码块的开头。从markdown.vim:
syn region markdownCodeBlock start=" \|\t" end="$" contained
但是,我使用 kramdown,它允许使用脚注(与其他一些类似,例如 Pandoc、Markdown Extra 和 MultiMarkdown)。我提出了这个规则修改,以允许在脚注中进行语法突出显示和拼写检查,但不允许代码块:
syn region markdownCodeBlock start="\(\[\^.*\]:\n\)\@<! \|\t" end="$" contained
然而,它并不完美,因为它不允许脚注与其实例化在同一行开始,不允许在脚注中包含代码块,并且不允许多段脚注。关于如何更好地做到这一点的任何建议?