Die Syntaxelemente, in denen Vim Rechtschreibfehler hervorhebt, werden mithilfe der Cluster @Spellund definiert @NoSpell. Ausführliche Informationen finden Sie unter :help spell-syntax(und den übrigen Dateien :help spellund :help syntax).
Die schnelle und schmutzige Lösung, um das gewünschte Ergebnis zu erzielen, besteht darin, eine neue Datei in Ihrem Vim-Konfigurationsverzeichnis zu erstellen: .vim/after/syntax/html.vimmit dem Inhalt:
syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,@Spell
syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,@Spell
Diese Zeilen definieren die Syntaxhervorhebung für HTML-Attribute und wurden aus der Datei html.vim kopiert, die in den Standard-Syntaxdateien von Vim enthalten ist. Ich habe dann den @SpellCluster zum containsFeld hinzugefügt , um die Rechtschreibprüfung in jedem Syntaxelement zu aktivieren.
Um dies nur auf die Attribute "title" und "data- *" anzuwenden, müssen Sie den regulären Ausdruck, der zum Abgleichen der Elemente verwendet wird, optimieren und die Funktionsweise der HTML-Hervorhebung etwas umfangreicher bearbeiten. Hier ist eine Lösung, die nur für "Titel" -Attribute funktioniert:
syn region htmlStringSpell contained start=+title=["']+hs=s+6 end=+["']+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,@Spell containedin=htmlTag,ScriptTag
hi def link htmlStringSpell String
NB
- Der reguläre Ausdruck enthält jetzt den Namen des
titleAttributs und einen Versatz, sodass dieser Teil des Syntaxelements nicht in der Hervorhebung enthalten ist. (Siehe :help syn-pattern-offset)
- Das Syntaxelement hat jetzt einen eigenen Namen und muss daher (i)
containedinalle Syntaxelemente sein, in denen htmlStrings über ihre jeweiligen containsEinstellungen enthalten sind. (ii) eine eigene Hervorhebung anwenden lassen.