gpt4 book ai didi

正则表达式/Vim : Matching everything except a pattern, 哪里模式是多行的?

转载 作者:行者123 更新时间:2023-12-04 22:49:53 25 4
gpt4 key购买 nike

Vim 中有没有办法执行类似的操作

:v/PATTERN/d 

其中 PATTERN 是多行正则表达式模式?我确信有一种方法可以在脚本中做到这一点,但我主要想知道是否可以只使用标准正则表达式替换或 Vim 命令,因为在这一点上它比实际需要更学术。

我的例子如下:
asdf

begin
blah
end

asdf

alsdfjasf

begin
random stuff
end
...

我想用它们之间的线来获取开始/结束的块,但忽略块之外的所有内容,最终以
begin
blah
end

begin
random stuff
end
...

我的想法是做
:v/begin\_.\{-}end/d 

如果所有不匹配的内容都将被删除甚至复制到注册,但显然 :v 和 :g 仅适用于单行。

然后,我开始走上运行替代品的道路,并用与 begin\_.\{-}end 不匹配的空字符串替换所有内容。模式,但我无法掌握如何使用后视或任何东西来实现这样的目标。正则表达式在搜索时工作得非常好,但我不知道如何告诉正则表达式引擎找到除该模式之外的所有内容。有任何想法吗?

最佳答案

清除注册 a

qaq

附加 begin...end注册 a
:g/begin/,/end/y A

打开新标签
:tabnew

把注册 a
"ap

关于正则表达式/Vim : Matching everything except a pattern, 哪里模式是多行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9280489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com