gpt4 book ai didi

vim - 如何删除 vim 中搜索模式周围的行?

转载 作者:行者123 更新时间:2023-12-03 01:56:42 24 4
gpt4 key购买 nike

在文件中,我希望能够删除搜索模式周围的上下文。

根据上下文,我的意思是:a) 模式前的“n”行b) 模式后的“n”行c) 模式前后的“n”行d) 通过删除图案线来执行a、b、ce) 执行 a,b,c 操作而不删除图案线

有没有办法使用 :g/:%s 或其他方式来做到这一点?我可以使用宏来做到这一点,但这不是我想要的。

这里是示例文本:

search_pattern random text 1
line below search pattern(delete me)
abc def
pqr stu
...
line above search pattern(delete me)
search_pattern random text 2
line below search pattern(delete me)
...

最佳答案

基本上关键是

  • :d 后面可以带一个数字参数,指定要删除的行数
  • 您可以在模式后指定偏移量,例如:/patt/+3

注释:

  • 如果您要对所有模式实例执行此操作,请使用 :g/patt/... 而不是 :/patt/... (感谢彼得·林克(Peter Rincker)提醒)
  • 下面的 ex 命令中的所有空格都是可选的,为了清楚起见,我将其放在那里。
<小时/>

要删除模式之前的 n 行,

:/patt/-n d n

删除模式模式行之前的n行

:/patt/-n d p

其中p = n + 1

<小时/>

要删除模式后的 n 行,

:/patt/+ d n

删除模式后的 n 行模式行

:/patt/ d p

其中p = n + 1

<小时/>

删除模式之前的 m 行和之后的 n 行(这里有点作弊,因为它是 2 个命令),

:/patt/-m d m | + d n
  • 这有效,因为在第一个 d 命令之后,光标将位于模式线上

删除花样前m行、花样行、花样后n行

:/patt/-m d q

其中q = m + n + 1

关于vim - 如何删除 vim 中搜索模式周围的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282621/

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