如何在vim中复制以数字开头的所有行?

时间:2019-07-31 12:15:05

标签: vim macvim

我有一个包含标题和代码的文档。每个代码都有自己的行,现在我需要复制其中的所有代码,每个代码都放在单独的行中。它们都以数字开头,Vim可以轻松实现。

文档如下:

TITLE
123-456-4252-2

Other TITLE 2
123-456-4252-X

A nice TITLE 3
523-456-4252-2

...

1 个答案:

答案 0 :(得分:9)

您可以使用:global命令!

qaq:g/^\d/y A

此后,这些行位于a寄存器中。之后,您可以使用"ap粘贴复制的行。

说明:

  • qaqa中记录一个宏,并立即结束该宏,以有效地清除它。
  • :g/foo/bar对与bar匹配的每一行执行foo命令。
  • ^\d是一个正则表达式,用于匹配以数字开头的行。
  • y A进入a寄存器,但处于追加模式。