在Vim中突出显示以冒号开头的关键字

时间:2013-07-02 15:55:24

标签: vim vim-syntax-highlighting

我写了一个vim语法文件。我注意到除了以冒号(:)开头的所有关键字都被突出显示。有没有办法在Vim中逃避冒号?

以下是该文件的一部分:

syn keyword actionLabel :action nextgroup=actionName skipwhite
syn keyword problemLabels :goal :init :domain
syn keyword advLabels :types
syn keyword pondLabels :observe


hi def link actionLabel     Statement
hi def link problemLabels   Statement
hi def link advLabels       Statement
hi def link pondLabels      Statement

2 个答案:

答案 0 :(得分:3)

:h :syn-define关于关键字...

  

它只能包含关键字字符   ' iskeyword '选项。它不能包含其他语法项。它会   只匹配一个完整的单词(没有关键字字符   在比赛之前或之后)。关键字“if”会匹配   “if(a = b)”,但不在“ifdef x”中,因为“(”不是关键字   字符和“d”是。

这意味着你必须为你的文件类型修改iskeyword以包含冒号字符(ascii 58)。从vi默认值开始,我们可以支持任何字母字符,数字,下划线或冒号:

set iskeyword="@,48-58,_"

答案 1 :(得分:3)

最佳解决方案似乎没有使用keyword选项,而是使用matches选项。

syn match pddlLabel ':[a-zA-Z0-9]\+'
hi def link pddlLabel Statement