Используя Vim 7.4 в Windows в ConEmu (хотя я видел то же самое на других платформах / установках), я замечаю, что подсветка синтаксиса соответствует начальной и конечной двойным звездочкам в виде выделенных курсивом областей в выделенной ими жирной области. Это бельмо на глазу:

Покопавшись, думаю, я нашел источник этой проблемы (из $VIMRUNTIME/syntax/markdown.vim):
syn region markdownItalic start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart
syn region markdownItalic start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart
syn region markdownBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart,markdownItalic
syn region markdownBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart,markdownItalic
syn region markdownBoldItalic start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend contains=markdownLineStart
syn region markdownBoldItalic start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend contains=markdownLineStart
И дальше вниз:
hi def link markdownItalic htmlItalic
hi def link markdownBold htmlBold
hi def link markdownBoldItalic htmlBoldItalic
Как видите, жирный шрифт принимает курсив в качестве субрегиона. Проблема заключается в том, если я markdownItalic из contains= , это:

больше не работает правильно:

хотя это решило другую проблему. Я также пытался заменить \S в регулярных выражениях курсивом [^*] но это тоже не сработало. Кроме того, установка плагина Plastic Boy's Markdown не помогла.
Любые идеи о том, как обойти это раздражающее дело?
