我试图通过从以下位置更改我的fsharp语法文件(来自this插件)中的这一行来获得一些效率方面的改进:
syn match fsharpModule "\%(\<open\s\+\)\@<=[a-zA-Z.]\+"
至
syn match fsharpModule "\%(\<open\s\+\)\zs[a-zA-Z.]\+"
由于“ \ @
为了提高速度,最好避免这种情况。尝试使用“ \ zs”代替| / \ zs |。
但是,这不起作用,也没有高要求
open SomeModule
怎么会这样?在vim中使用/进行常规搜索会在使用第一个和第二个匹配模式时都高亮显示'SomeModule'。
最佳答案
在Vim docs for the \@<=
construct中,使用\zs
的示例省略了使用\@<=
的等效模式匹配中已经存在的括号。我只是在猜测,但是如果您尝试以下语法匹配会怎样?
syn match fsharpModule "\<open\s\+\zs[a-zA-Z.]\+"