Елементи синтаксису, в яких Vim виділяє орфографічні помилки, визначаються за допомогою кластерів @Spell
та @NoSpell
кластерів. Детальну інформацію див. У :help spell-syntax
(та решті файлів :help spell
та :help syntax
файлів).
Швидке та брудне виправлення для отримання бажаного результату полягає у створенні нового файлу у каталозі Vim config: .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) застосовувати власну підсвітку.