Vim语法高亮和某些字符

时间:2012-09-02 17:45:08

标签: vim

我正在尝试为Vim写一个语法文件。

其中一行代码读取

syn match constant "\**\*"

而许多其他行中的一行读取

syn keyword aiOperators up-build

突出显示的代码如下:

hi constant gui=bold
hi aiOperators guifg=green

然而,上述结果是只突出显示以下内容:

  • 每个常量的星号,但不是它们之间的字符。
  • 直到 aiOperators 的第一个连字符的字符。

似乎是什么问题?

1 个答案:

答案 0 :(得分:5)

常量的正则表达式指定一个文字星号,零次或多次,后跟一个文字星号。如果您打算匹配由星号分隔的字符,则需要\*\w\+\*:字面星号,后跟一个或多个单词字符,后跟字面星号。

:syn keyword仅适用于关键字字符;默认情况下,连字符,因此匹配停在那里。如果对于您的文件类型,连字符属于关键字字符集,请使用

:setlocal iskeyword+=-

这不应放入语法文件本身,而应放入~/.vim/ftplugin/myfiletype.vim。否则,请使用:syn match