我正在尝试使用Vim的语法隐藏选项,希望能对vim-lambdify有所帮助。但是,在尝试将正则表达式传递给syntax match时,我看到了(在我看来)意外的行为。

在我的.vimrc中指定以下内容时

execute "syntax match myOperator /foo\(bar\)\@=/ conceal cchar=*"
execute "hi link myOperator mySpecialOperator"
execute "hi! link Conceal mySpecialOperator"
setlocal conceallevel=1
setlocal concealcursor=c

打开以下文件时,看不到foo隐藏:
foo
foob
foobar

我尝试过这种正则表达式的许多排列方式:不进行任何转义/全部转义,将单引号/双引号引起来,等等,均无济于事。

我是否缺少明显的东西?我是否误解了语法/匹配/隐藏应该如何协同工作?

最佳答案

Redditrgvim上回答了这个问题:

第一个执行字符串中的反斜杠需要转义。

/foo\\(bar\\)\\@=/

09-25 17:48
查看更多