Vim语法匹配正则表达式不如预期工作。

3
我正在尝试使用Vim的语法隐藏选项,希望能为vim-lambdify做出贡献。然而,当我尝试将正则表达式传递给时,我发现了一些(在我的脑海中)意外的行为。
在我的.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

我已经尝试了许多这个正则表达式的排列组合:不转义/全部转义,用单引号/双引号包裹等等,但都没有成功。
我是否忽略了一些显而易见的事情?我是否误解了语法/匹配/隐藏应该如何一起工作?

为什么要使用exec?移除exec后命令仍然可以正常工作... - FDinoff
在第一行中,使用双引号的execute是不正确的,因为反斜杠会被解释,应该使用单引号,或者添加双反斜杠,或者去掉execute - yolenoyer
很遗憾,我有兴趣扩展的插件使用了execute "syntax match ..." - pdoherty926
1个回答

0

这个问题在Reddit上被rgvim回答:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接