2015-10-18 69 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\\)\\@=/