gpt4 book ai didi

vim - 如何将所有匹配行拉入一个缓冲区?

转载 作者:行者123 更新时间:2023-12-03 03:43:25 24 4
gpt4 key购买 nike

如何将所有匹配的行拉入缓冲区?

给定一个如下文件:

match 1
skip
skip
match 2
match 3
skip

我希望能够发出一个命令,将与模式匹配的所有行(在本例中为/^match/)提取到单个缓冲区中,以便我可以将其放入另一个文档中,或者放入摘要或其他内容中。

该命令应该在缓冲区中结束:

match 1
match 2
match 3

我的第一个想法是尝试:

:g/^match/y

但我刚刚得到最后一场比赛。这是有道理的,因为 :g 命令实际上是为每个匹配行重复 y

也许有一种方法可以将复制附加到缓冲区,而不是覆盖它。我没找到。

最佳答案

:g/^match/yank A

这将运行全局命令来提取任何与 ^match 匹配的行并将其放入寄存器 a 中。因为 a 是大写的,所以它不会仅仅将寄存器设置为值,而是会附加到该值。由于全局命令针对所有匹配行运行该命令,因此您将得到所有相互附加的行。

这意味着您可能希望在开始之前将寄存器重置为空字符串::let @a=""qaq (即,记录空宏)。

当然,您可以将其与任何命名寄存器一起使用。

<小时/>

关于vim - 如何将所有匹配行拉入一个缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1474966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com