有什么方法可以不使用match突出显示默认的vim关键字?

时间:2019-04-03 20:51:18

标签: vim

我正在自定义.vim语法高亮显示,语法文件存在一个问题。这是代码:

syn keyword vimKeyword contains contained

当我尝试打开.vim文件时,由于contains是一个实际的关键字,因此出现错误:

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

是否可以不使用syn match突出显示默认的vim关键字?

1 个答案:

答案 0 :(得分:1)

:help E789提到了这一点:

  

请注意,当您拥有与选项相同的关键字时(即使   此处不允许的一种),则无法使用。使用比赛   代替。

也就是说,对我来说似乎有用的只是定义一个关键字contains

syn keyword vimKeyword contains

其他关键字可以通过单独的:syn keyword vimKeyword命令定义,因为它们是累积的。

另一种技巧是使用可选的尾部定义关键字,但将其保留为空:

syn keyword vimKeyword contains[] contained

但是由于这两个都是(错误地)使用了Vimscript解析器的实现细节,我将依赖它们,而是使用:syntax match,如所记录。