在Vim中有没有办法执行类似的操作
:v/PATTERN/d
Run Code Online (Sandbox Code Playgroud)
PATTERN是多行正则表达式模式?我确信在脚本中有一种方法可以做到这一点,但我很好奇是否可以只使用标准的正则表达式替换或Vim命令,因为在这一点上,它比实际需要更具学术性.
我的例子如下:
asdf
begin
blah
end
asdf
alsdfjasf
begin
random stuff
end
...
Run Code Online (Sandbox Code Playgroud)
我想用它们之间的线条来获得开始/结束的块,但忽略块之外的所有内容,最终结束
begin
blah
end
begin
random stuff
end
...
Run Code Online (Sandbox Code Playgroud)
我的想法是做的
:v/begin\_.\{-}end/d
Run Code Online (Sandbox Code Playgroud)
哪里一切都不匹配,将被删除甚至复制到注册,但显然:v和:g只适用于单行.
然后,我开始沿着运行替代品的路径,用begin\_.\{-}end
无法匹配模式的空字符串替换所有内容,但我无法掌握如何使用look-behinds或任何东西来实现.正则搜索时,正则表达式完全正常,但我无法弄清楚如何告诉正则表达式引擎找到所有这些模式.有任何想法吗?
a
qaq
Run Code Online (Sandbox Code Playgroud)
begin...end
到rega
:g/begin/,/end/y A
Run Code Online (Sandbox Code Playgroud)
:tabnew
Run Code Online (Sandbox Code Playgroud)
a
"ap
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2227 次 |
最近记录: |