Разрешение подсветки синтаксиса сносок Kramdown при предотвращении подсветки блоков кода в vim

Подсветка синтаксиса vim по умолчанию для уценки основана на стандартной уценке, которая рассматривает каждую вкладку или строку с отступом в четыре пробела как начало блока кода. Из markdown.vim:

syn region markdownCodeBlock start="    \|\t" end="$" contained

Однако я использую kramdown, который позволяет делать сноски (как и некоторые другие, такие как Pandoc, Markdown Extra и MultiMarkdown). Я придумал эту модификацию правила, чтобы разрешить подсветку синтаксиса и проверку орфографии в сносках, но не в блоках кода:

syn region markdownCodeBlock start="\(\[\^.*\]:\n\)\@<!    \|\t" end="$" contained

Однако он далеко не идеален, потому что он не позволяет сноскам начинаться на той же строке, что и их экземпляр, не позволяет использовать блоки кода внутри сносок и не позволяет использовать сноски, состоящие из нескольких абзацев. Любые предложения о том, как сделать это лучше?


person Kyle Barbour    schedule 17.03.2014    source источник


Ответы (1)


Вы можете использовать vim-pandoc. Он неправильно выделяет код внутри сносок, но решает остальные проблемы. К сожалению, он не очень хорошо работает с некоторыми менее распространенными частями синтаксиса kramdown (такими как таблицы), так что это не идеальное решение.

Его настройка по умолчанию широко использует скрытие в vim; если вам это не нравится, вы можете отключить его:

:set cole=0
person Kyle Barbour    schedule 17.03.2014