Die Syntaxelemente, in denen Vim Rechtschreibfehler hervorhebt, werden mithilfe der Cluster @Spell
und definiert @NoSpell
. Ausführliche Informationen finden Sie unter :help spell-syntax
(und den übrigen Dateien :help spell
und :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.vim
mit 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 @Spell
Cluster zum contains
Feld 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
title
Attributs 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)
containedin
alle Syntaxelemente sein, in denen htmlStrings über ihre jeweiligen contains
Einstellungen enthalten sind. (ii) eine eigene Hervorhebung anwenden lassen.