【问题标题】:How to copy all lines starting with a number in vim?如何在vim中复制所有以数字开头的行?
【发布时间】:2019-07-31 20:34:24
【问题描述】:

我有一个包含标题和代码的文档。每个人都有自己的行,现在我需要从中复制所有代码,每个代码都在单独的行中。它们都以数字开头,而 Vim 可能很容易做到。

文档如下所示:

TITLE
123-456-4252-2

Other TITLE 2
123-456-4252-X

A nice TITLE 3
523-456-4252-2

...

【问题讨论】:

  • 您可以添加文档的摘录吗?至少混淆了。
  • @gonzalo 已添加 :)

标签: vim macvim


【解决方案1】:

您可以使用:global 命令!

qaq:g/^\d/y A

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

解释:

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

【讨论】:

  • 非常感谢,vim 很强大但是很难学。谢谢你帮助像我这样的菜鸟:)
  • 有时可能会觉得很难学,但我发现它比记住十亿个键盘快捷键要容易得多,因为 vim 语言(我不是是说 VimScript)是如此可组合。你不需要记住我回答中的击键顺序,而是乐高积木。
  • 稍作改动即可将内容添加到剪贴板:qaq :g/^\d/y A | let @+=@a
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 2015-01-18
  • 1970-01-01
相关资源
最近更新 更多