2015-10-18 84 views
2

我正在试验Vim的语法隐藏选项,希望能回到vim-lambdify。然而,当我尝试传递一个正则表达式到syntax match时,我发现(在我的脑海里)出乎意料的行为。vim语法匹配正则表达式不按预期工作

当指定在我的.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 

我已经试过这正则表达式的许多排列:逃逸没有/一切,用单/双引号包装它等无济于事。

我错过了一些明显的东西吗?我误解了语法/匹配/隐藏应该如何协同工作?

+0

为什么使用exec?删除exec将仍然使命令工作... – FDinoff

+0

在第一行中,双引号执行的使用是错误的,因为反斜杠被解释,您应该使用单引号,或者放一些双反斜杠,或者删除'execute' – yolenoyer

+0

不幸的是,[插件](https://github.com/calebsmith/vim-lambdify/blob/master/autoload/vimla​​mbdify.vim#L27)我有兴趣扩展使用'execute“语法匹配...” 。 – pdoherty926

回答

0

这个问题被回答了Reddit通过rgvim

反斜线第一执行字符串中需要转义。

/foo\\(bar\\)\\@=/ 
相关问题