Элементы синтаксиса , внутри которого Вим будет выделить орфографические ошибки определены с использованием @Spell
и @NoSpell
кластеров. Смотрите :help spell-syntax
(и остальные :help spell
и :help syntax
файлы) для получения полной информации.
Быстрое и грязное решение для получения желаемого результата - создать новый файл в вашем каталоге конфигурации Vim: .vim/after/syntax/html.vim
с содержимым:
syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,@Spell
syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,@Spell
Эти строки определяют подсветку синтаксиса для атрибутов HTML и были скопированы из файла html.vim, который включен в стандартные файлы синтаксиса Vim. Затем я добавил @Spell
кластер в contains
поле, чтобы включить проверку орфографии в каждом элементе синтаксиса.
Чтобы применить это только к атрибутам «title» и «data- *», требуется точная настройка регулярного выражения, используемого для сопоставления элементов, и немного более обширное редактирование работы подсветки HTML. Вот решение, которое работает только для атрибутов "title":
syn region htmlStringSpell contained start=+title=["']+hs=s+6 end=+["']+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,@Spell containedin=htmlTag,ScriptTag
hi def link htmlStringSpell String
NB
- Регулярное выражение теперь включает имя
title
атрибута и смещение, так что эта часть элемента синтаксиса не включена в выделение. (См. :help syn-pattern-offset
)
- Элемент синтаксиса теперь имеет свое собственное имя и поэтому должен (i) быть
containedin
всеми элементами синтаксиса, в которых содержатся htmlStrings, через их соответствующие contains
настройки. (ii) применяется своя подсветка.