В качестве меры ограничения я положил копию $VIMRUNTIME/syntax/html.vim
в ~/.vim/syntax/html.vim
и изменил ее:
38c38
< syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc
---
> syn match htmlValue contained /=[\t ]*\%('\%(\\.\|[^\\']\)*'\|"\%(\\.\|[^\\"]\)*\|[^'" \t>]*\)/hs=s+1 contains=htmlString,javaScriptExpression,@htmlPreproc
40c40
< syn region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster
---
> syn region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster
43a44
> syn match htmlTagError contained /['"].*/
168c169
< syn region htmlScriptTag contained start=+<script+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
---
> syn region htmlScriptTag contained start=+<script+ end=+>+ contains=htmlTagN,htmlArg,htmlValue,htmlTagError,htmlEvent
Это просто ловит эту конкретную ошибку (несоответствующие кавычки), поэтому я все еще очень заинтересован в улучшении файла синтаксиса для строгого HTML.