Есть ли способ выделить ключевое слово vim по умолчанию без использования соответствия? - PullRequest
2 голосов
/ 03 апреля 2019

Я делаю пользовательскую подсветку синтаксиса .vim, и есть одна проблема с файлом синтаксиса. Вот код:

syn keyword vimKeyword contains contained

Когда я пытаюсь открыть файлы .vim, это выдает ошибку, потому что contains является реальным ключевым словом:

Error detected while processing .vim/syntax/vim.vim
E395: contains argument not accepted here

Можно ли выделить ключевые слова vim по умолчанию без использования syn match?

1 Ответ

1 голос
/ 04 апреля 2019

:help E789 упоминает об этом:

Обратите внимание, что если у вас есть ключевое слово, совпадающее с опцией (даже то, которое здесь не разрешено), выне может использовать это.Вместо этого используйте совпадение.

Тем не менее, мне кажется, что работает только одно ключевое слово contains:

syn keyword vimKeyword contains

Дополнительные ключевые слова могут быть определены с помощью отдельных :syn keyword vimKeyword команд, поскольку они являются кумулятивными.

Еще одна хитрость заключается в определении ключевого слова с необязательным хвостом, но при его сохранении пустым:

syn keyword vimKeyword contains[] contained

Но так как оба они (неправильные)используя особенности реализации парсера Vimscript, я бы не полагался на них, а вместо этого использовал бы :syntax match, как документировано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...