1

我知道你可以删除说第 34-40 行, :34,40d但是有没有办法删除说第 34-40 行和第 43-45 行

:34,40(?)43,45dwhere (?) 表示告诉 vim 和第二组行所需的符号?

谢谢

4

2 回答 2

2

没有可用的内置方法可以完全按照您的意愿行事。

但这很简单,IMO:

:34,40d|43-45d

还有另一种看待它的方式。如果这些行共享 a pattern,您可以这样做:

:g/pattern/d
于 2018-05-24T05:55:56.290 回答
0

最短的方法就是复制:d[elete]命令并将所有命令连接到一个命令行中。对于可变命令(如:delete),您需要从末尾开始,以便行号仍然有效:

:43,45d|34,40d

带插件

我的PatternsOnText 插件提供(以及许多其他)一个:RangeDo简化处理的命令,因为它适应突变的范围并确保每行只处理一次:

:RangeDo 34,40 43,45 d

洋基

无论有没有插件,每个单独的范围仍然会导致单独的命令调用。要在单个寄存器中累积 yanks,您必须使用附加的大写版本(除第一次调用外):

:34,40yank a | 43,45yank A
:let @a = '' | RangeDo 34,40 43,45 yank A
于 2018-10-24T13:25:22.700 回答