Vim匹配和matchadd似乎不一样

kjn*_*kjn 3 vim

我一直在玩vim(7.4)中的匹配功能,我看到匹配和matchadd之间的一些差异,我无法弄清楚.

我使用的模式很简单,可以匹配特定行和列的某些文本.

如果我尝试以下方法,它会起作用并突出显示文字:

:match Test /\%2l\%>4v\%<7v/
Run Code Online (Sandbox Code Playgroud)

如果我尝试以下它不会:

:call matchadd('Test','/\%2l\%>4v\%<7v/') 
Run Code Online (Sandbox Code Playgroud)

'测试'在这里是任何突出组.

然而,更简单的模式可以正常工作,例如:

:call matchadd('Test','test') 
Run Code Online (Sandbox Code Playgroud)

任何解释或协助将不胜感激.

Pet*_*ker 6

/从你的正则表达式中删除's.在使用matchadd()或任何vim函数时,您不需要分隔符.

call matchadd('Test','\%2l\%>4v\%<7v')
Run Code Online (Sandbox Code Playgroud)