我一直在使用 vim (7.4) 中的 match 功能,并且发现 match 和 matchadd 之间存在一些我无法弄清楚的差异。
我使用的模式是一个简单的模式来匹配特定行和列中的一些文本。
如果我尝试以下操作,它会起作用并突出显示文本:
:match Test /\%2l\%>4v\%<7v/
如果我尝试以下操作,则不会:
:call matchadd('Test','/\%2l\%>4v\%<7v/')
“测试”在这里是任何高亮组。
然而,一个更简单的模式可以正常工作,例如:
:call matchadd('Test','test')
任何解释或帮助将不胜感激。
最佳答案
从正则表达式中删除 /
。使用 matchadd()
或任何 vim 函数时不需要分隔符。
call matchadd('Test','\%2l\%>4v\%<7v')
关于Vim match 和 matchadd 的工作方式似乎不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25857045/