删除/移动/移动多个部分vim

时间:2018-05-23 22:53:27

标签: vim editor yank

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

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

由于

2 个答案:

答案 0 :(得分:2)

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

但这很简单IMO:

:34,40d|43-45d

还有另一种方式来看待它。如果这些行共享pattern,您可以执行以下操作:

:g/pattern/d

答案 1 :(得分:0)

最简单的方法是复制:d[elete]命令并将所有命令串联在一个命令行中。对于易变的命令(例如:delete),您需要从头开始,以便行号仍然有效:

:43,45d|34,40d

带有插件

我的PatternsOnText plugin提供了:RangeDo命令(其中包括许多命令),该命令简化了处理,因为它可以调整突变范围并确保每行仅被处理一次:

:RangeDo 34,40 43,45 d

扬克斯

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

:34,40yank a | 43,45yank A
:let @a = '' | RangeDo 34,40 43,45 yank A