我知道你可以删除说第 34-40 行,
:34,40d
但是有没有办法删除说第 34-40 行和第 43-45 行
像
:34,40(?)43,45d
where (?) 表示告诉 vim 和第二组行所需的符号?
谢谢
没有可用的内置方法可以完全按照您的意愿行事。
但这很简单,IMO:
:34,40d|43-45d
还有另一种看待它的方式。如果这些行共享 a pattern
,您可以这样做:
:g/pattern/d
最短的方法就是复制: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