在 Vim 中,您不能有多个可视化选择。 但是,您可以清除一个寄存器并将所有匹配的行附加到它上: :let @a = '' :g/>set/y A 然后创建一个空缓冲区(或导航到现有的缓冲区): :vnew 从寄存器a中复制并粘贴:"ap 但你可能需要像TagList或TagBar这样的东西。:[something]y a 意思是“将文本复制到寄存器a中”。:[something]y A 意思是“将内容附加到寄存器a中”。
我通常做的是: 删除没有与模式匹配的所有行::v/pattern/d 用 ggyG 选择整个新文件 使用 p 在某处粘贴结果 使用 u 撤销几次以将文件恢复到其初始状态 这有点繁琐,我希望有一个更简单的解决方案。
a
中?同样地,对于:g/>set/y B,是否也是为寄存器b进行追加操作? - Xavier T.y B
是正确的。 - romainl:help
中提到的位置,但它被很好地隐藏了。(对于任何感兴趣的人,在Vim 7.4中使用:help copy-move
) - Xavier T.:h quote_alpha
中有解释。 - FDinoff