Before: let g:vim_markdown_emphasis_multiline = 0 syn off | syn on After: let g:vim_markdown_emphasis_multiline = 1 syn off | syn on Given markdown; a **b** c Execute (bold): AssertNotEqual SyntaxOf('a'), 'htmlBold' AssertEqual SyntaxOf('b'), 'htmlBold' AssertNotEqual SyntaxOf('c'), 'htmlBold' Given markdown; a __b__ c Execute (bold): AssertNotEqual SyntaxOf('a'), 'htmlBold' AssertEqual SyntaxOf('b'), 'htmlBold' AssertNotEqual SyntaxOf('c'), 'htmlBold' Given markdown; a *b* c Execute (italic): AssertNotEqual SyntaxOf('a'), 'htmlItalic' AssertEqual SyntaxOf('b'), 'htmlItalic' AssertNotEqual SyntaxOf('c'), 'htmlItalic' Given markdown; a _b_ c Execute (italic): AssertNotEqual SyntaxOf('a'), 'htmlItalic' AssertEqual SyntaxOf('b'), 'htmlItalic' AssertNotEqual SyntaxOf('c'), 'htmlItalic' Given markdown; _a_b_ Execute (italic text has underscores): AssertEqual SyntaxOf('a'), 'htmlItalic' AssertEqual SyntaxOf('b'), 'htmlItalic' Given markdown; a \*b\* c Execute (not italic with escaped asterisks): AssertNotEqual SyntaxOf('a'), 'htmlItalic' AssertNotEqual SyntaxOf('b'), 'htmlItalic' AssertNotEqual SyntaxOf('c'), 'htmlItalic' Given markdown; a \_b\_ c Execute (not italic with escaped underscores): AssertNotEqual SyntaxOf('a'), 'htmlItalic' AssertNotEqual SyntaxOf('b'), 'htmlItalic' AssertNotEqual SyntaxOf('c'), 'htmlItalic' Given markdown; a _b\_c_ d Execute (italic with escaped underscores): AssertNotEqual SyntaxOf('a'), 'htmlItalic' AssertEqual SyntaxOf('b'), 'htmlItalic' AssertEqual SyntaxOf('c'), 'htmlItalic' AssertNotEqual SyntaxOf('d'), 'htmlItalic' Given markdown; a_b_c Execute (not italic underscores within text): AssertNotEqual SyntaxOf('a'), 'htmlItalic' AssertNotEqual SyntaxOf('b'), 'htmlItalic' AssertNotEqual SyntaxOf('c'), 'htmlItalic' Given markdown; a *b\*c* d Execute (italic with escaped asterisks): AssertNotEqual SyntaxOf('a'), 'htmlItalic' AssertEqual SyntaxOf('b'), 'htmlItalic' AssertEqual SyntaxOf('c'), 'htmlItalic' AssertNotEqual SyntaxOf('d'), 'htmlItalic' Given markdown; a __b\_\_c__ d Execute (bold with escaped underscores): AssertNotEqual SyntaxOf('a'), 'htmlBold' AssertEqual SyntaxOf('b'), 'htmlBold' AssertEqual SyntaxOf('c'), 'htmlBold' AssertNotEqual SyntaxOf('d'), 'htmlBold' Given markdown; _a b c_ d Execute (italic with underscores in multiple lines): AssertNotEqual SyntaxOf('a'), 'htmlItalic' AssertNotEqual SyntaxOf('b'), 'htmlItalic' AssertNotEqual SyntaxOf('c'), 'htmlItalic' AssertNotEqual SyntaxOf('d'), 'htmlItalic' Given markdown; __a b c__ d Execute (bold with underscores in multiple lines): AssertNotEqual SyntaxOf('a'), 'htmlBold' AssertNotEqual SyntaxOf('b'), 'htmlBold' AssertNotEqual SyntaxOf('c'), 'htmlBold' AssertNotEqual SyntaxOf('d'), 'htmlBold' Given markdown; ___a b c___ d Execute (bold italic with underscores in multiple lines): AssertNotEqual SyntaxOf('a'), 'htmlBoldItalic' AssertNotEqual SyntaxOf('b'), 'htmlBoldItalic' AssertNotEqual SyntaxOf('c'), 'htmlBoldItalic' AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic' Given markdown; *a b c* d Execute (italic with asterisks in multiple lines): AssertNotEqual SyntaxOf('a'), 'htmlItalic' AssertNotEqual SyntaxOf('b'), 'htmlItalic' AssertNotEqual SyntaxOf('c'), 'htmlItalic' AssertNotEqual SyntaxOf('d'), 'htmlItalic' Given markdown; **a b c** d Execute (bold with asterisks in multiple lines): AssertNotEqual SyntaxOf('a'), 'htmlBold' AssertNotEqual SyntaxOf('b'), 'htmlBold' AssertNotEqual SyntaxOf('c'), 'htmlBold' AssertNotEqual SyntaxOf('d'), 'htmlBold' Given markdown; ***a b c*** d Execute (bold italic with asterisks in multiple lines): AssertNotEqual SyntaxOf('a'), 'htmlBoldItalic' AssertNotEqual SyntaxOf('b'), 'htmlBoldItalic' AssertNotEqual SyntaxOf('c'), 'htmlBoldItalic' AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic'