我正在尝试为Vim编写语法文件.
其中一行代码读取
syn match constant "\**\*"
Run Code Online (Sandbox Code Playgroud)
而许多其他行之一读取
syn keyword aiOperators up-build
Run Code Online (Sandbox Code Playgroud)
突出显示的代码如下:
hi constant gui=bold
hi aiOperators guifg=green
Run Code Online (Sandbox Code Playgroud)
但是,上述结果仅突出显示以下内容:
这似乎是什么问题?
常量的正则表达式指定一个文字星号,零次或多次,后跟一个文字星号.如果您打算匹配由星号分隔的字符,则需要以下内容\*\w\+\*
:字面星号,后跟一个或多个单词字符,后跟字面星号.
该:syn keyword
方式只适用于关键字的字符; 默认情况下,不包括连字符,因此匹配停在那里.如果对于您的文件类型,连字符属于关键字字符集,请使用
:setlocal iskeyword+=-
Run Code Online (Sandbox Code Playgroud)
这不应该放在语法文件本身,而是放入~/.vim/ftplugin/myfiletype.vim
.否则,请使用:syn match
.