我想在Vim C#中突出显示一个对象。
我在cs.vim中执行以下操作:
syn match csObject "[A-Z][_a-zA-Z0-9]*\.[A-Z]"
并在我的色彩主题中突出显示
hi csObject guifg=#ff0000
然而它也描绘了。和下一个“字”的第一个字母。
如何只突出点之前的匹配?
修改
感谢@romainl的回答,我发现\zs
设置了匹配的开头,\za
设置了匹配的结束。
这使我能够正确地进行比赛:
syn match csObject "[ \t\(\!]\zs[A-Z][_a-zA-Z0-9]\{-}\ze\.[A-Z]"
答案 0 :(得分:4)
您只需对正则表达式进行一次微小修改即可解决问题。
您的模式实际涵盖Application
,.
和以下大写字母。你应该做的是使用\ze
标记模式的“有用”部分的结尾:
syn match csObject "[A-Z][_a-zA-Z0-9]*\ze\.[A-Z]"
另外,我会使用\{-}
代替过于贪婪的*
。