Vim - 如何突出显示图案的一部分

时间:2015-09-13 09:10:13

标签: c# vim syntax-highlighting

我想在Vim C#中突出显示一个对象。

我在cs.vim中执行以下操作:

syn match csObject  "[A-Z][_a-zA-Z0-9]*\.[A-Z]"

并在我的色彩主题中突出显示

hi csObject     guifg=#ff0000

然而它也描绘了。和下一个“字”的第一个字母。

enter image description here

如何只突出点之前的匹配?

修改 感谢@romainl的回答,我发现\zs设置了匹配的开头,\za设置了匹配的结束。

这使我能够正确地进行比赛:

syn match csObject         "[ \t\(\!]\zs[A-Z][_a-zA-Z0-9]\{-}\ze\.[A-Z]"

1 个答案:

答案 0 :(得分:4)

您只需对正则表达式进行一次微小修改即可解决问题。

您的模式实际涵盖Application.和以下大写字母。你应该做的是使用\ze标记模式的“有用”部分的结尾:

syn match csObject "[A-Z][_a-zA-Z0-9]*\ze\.[A-Z]"

另外,我会使用\{-}代替过于贪婪的*