and*_*hhp 6 regex syntax vim f#
我试图通过更改我的 fsharp 语法文件(来自此插件)中的这一行来获得一些效率改进:
syn match fsharpModule "\%(\<open\s\+\)\@<=[a-zA-Z.]\+"
Run Code Online (Sandbox Code Playgroud)
到
syn match fsharpModule "\%(\<open\s\+\)\zs[a-zA-Z.]\+"
Run Code Online (Sandbox Code Playgroud)
因为“\@<=”构造上的文档指出:
为了速度,通常最好避免这种多重。尝试使用“\zs”代替 |/\zs|。
但是,这不起作用,并且没有突出显示
open SomeModule
Run Code Online (Sandbox Code Playgroud)
怎么会这样?在使用第一个和第二个匹配模式时,在 vim 中进行常规搜索(使用 /)会突出显示“SomeModule”。
在构造的 Vim 文档\@<=
中, using 的示例\zs
省略了等效模式匹配 using 中出现的括号\@<=
。我只是猜测,但是如果您尝试以下语法匹配会发生什么?
syn match fsharpModule "\<open\s\+\zs[a-zA-Z.]\+"
Run Code Online (Sandbox Code Playgroud)