我试图练习我的搜索模式以获取ex命令,并尝试做一些我经常使用它们的宏,我遇到了一个我不确定是否可能。
我有一些看起来像这样的代码:
public myFunc (): any {
return {};
}
我试图用这个命令猛拉它(用光标后面的光标):
:?\vpublic\s*\w+\s*\(.*\)\s*:\s*\w+\s*\{?;/}$/y
这符合预期,并与我在那里提到的功能相匹配。
我想做的但是没有找到方法是忽略第一行和最后一行(我只想要函数的内容)。我怀疑有可能以某种方式(可能是+/-搜索偏移?),但我还没有运气。
有谁知道怎么做?谢谢!
答案 0 :(得分:2)
是的,这是添加适当的偏移(:help search-offset
)的简单问题。您基本上定义了一个包含两次搜索的范围(一个从当前位置向上,一个向下从那里开始):?...?;/.../
。要排除目标,只需加/减1;这是通过将偏移量附加到搜索:?...?+1;/.../-1
来完成的。适用于您的示例:
:?\vpublic\s*\w+\s*\(.*\)\s*:\s*\w+\s*\{?+1;/}$/-1y