На самом деле это не синтаксис кластеров , а просто синтаксис items .
В то время как @Spell
и @NoSpell
являются синтаксическими кластерами с ними важно то, где они содержатся, а не элементы, которые в них содержатся, поэтому мы не можем использовать syntax cluster
для их изменения и включения или написания для существующих элементов синтаксиса ...
Так что лучше всего поспорим, что здесь действительно нужно переопределить элементы синтаксиса, удалив часть @Spell
.
Вы можете переопределить только эти 4 элемента, но на самом деле не существует хороших способов просто изменить часть команды (просто удаляя часть @Spell
), вам в конечном итоге придется снова устанавливать их с нуля, что означает, что вы должны скопировать их определение из исходного файла, а затем внести изменения.
Чтобы добавить в существующий файл синтаксиса см. :help mysyntaxfile-add
.
Вкратце, вы должны создать ~/.vim/after/syntax/javascript.vim
с содержанием:
syntax clear jsString
syntax clear jsTemplateString
syntax clear jsObjectKeyString
syntax clear jsObjectStringKey
syntax region jsString start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ end=+$+ contains=jsSpecial extend
syntax region jsTemplateString start=+`+ skip=+\\`+ end=+`+ contains=jsTemplateExpression,jsSpecial extend
syntax region jsObjectKeyString contained start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1\|$+ contains=jsSpecial skipwhite skipempty nextgroup=jsObjectValue
syntax region jsObjectStringKey contained start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1\|$+ contains=jsSpecial extend skipwhite skipempty nextgroup=jsFuncArgs,jsObjectValue
Эти команды сначала очистят элементы синтаксиса, а затем определить их снова, но это время без включения части contains=@Spell
, поэтому они не включат проверку орфографии для этих правил.