Vim - 反向删除到匹配的模式

4

我知道如何从光标位置删除文本的一部分,即d/<pattern>。 我想知道如何在光标位置之前删除文本的一部分,直到出现在光标位置之前的模式。

在文件位置x处:

>>>>
aaaa
===x
bbbb
<<<<

我想要删除

>>>>
aaaa
====

如果模式在文件中只存在一次,那么这项工作就可以了……而vim没有选择。然而,对于像这样的文件存在一个问题:

>>>>
aaaa
====
bbbb
<<<<

foo
boo

>>>>
cccc
====
dddd
<<<<

4
你尝试过使用 <pattern> 吗? - Lars Kotthoff
@LarsKotthoff:对我来说似乎不起作用。更正!这是有效的!请把您的评论写成答案,我会很乐意接受它 :) - noisy
2个回答

9
您可以使用?向后搜索。因此,要删除直到某个模式之前的内容,请使用d?<pattern>

1

使用f或t可以向前删除。例如,d2f_将删除第二个下划线及其之前的内容,而d2t_将删除第二个下划线之前的内容。我刚在运行您知道的那个系统的机器上使用gVim尝试了一下,如果您将f或t大写,则可以反向操作。因此,d2F_将删除回到并包括倒数第二个下划线,而d2T_将删除回到但不包括倒数第二个下划线。

我很高兴找到这个功能,以至于我可以按压我的面颊腺。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接