Vim语法用空格突出显示两个特定单词(正则表达式)

时间:2018-06-05 19:52:39

标签: regex vim

我创建了这个名为“〜/ .vim / syntax / proc.vim”的文件,并且已经填充了正则表达式(我认为这就是他们所说的)。我不得不用90年代开发的这种测试语言编写一些测试脚本,称为STOL,用于航天器有效载荷。我在一个安全的环境中工作,所以我唯一可以访问的是vim。

STOL允许您编写几种不同类型的打印语句,我想要一些语法突出显示每种类型的消息之间的区别(错误消息,信息消息等)。

我的vim颜色配置文件名为“〜/ .vim / color / molokai.vim”让我将各种正则表达式链接到特定的语法类,该类将调用特定的颜色。例如,要突出显示关键字,我指定两行,如...

" This is the regex where two keywords have been defined
syntax keyword procKeywords IF ELSE

" This is how I link the above regex to a molokai color class
" which is called Keyword
highlight link procKeywords Keyword

我基本上希望对STOL定义的一些错误和信息消息做同样的事情......

EVENT ERROR "This is a error message"
EVENT INFO "This is a info message"

如何匹配两个特定单词之间的空格?我在“〜/ .vim / syntax / proc.vim”中需要类似下面的内容。以下是错误的,但我只是写出来,告诉你我在想什么......

syntax match procInfo "EVENT INFO"
syntax match procError "EVENT ERROR"
highlight link procInfo ModeMsg
highlight link procError ErrorMsg

1 个答案:

答案 0 :(得分:1)

您的尝试已大体上可行。但是,:syntax match不会像:syntax keyword那样自动强制执行全关键字匹配,因此您会在例如MYEVENT INFORMATION也是如此。您可以通过在正则表达式中添加关键字边界原子:help /\<来轻松解决此问题:

syntax match procInfo "\<EVENT INFO\>"
syntax match procError "\<EVENT ERROR\>"