如何在Neovim中提取指定范围内含z_image的所有行并复制?
Neovim提取所有含指定内容行的解决方法
你遇到的问题是因为默认的y命令每次都会覆盖寄存器内容,所以最后只保留了最后一行匹配结果。这里给你几种实用的解决办法:
方法一:利用寄存器追加复制
- 先清空一个备用寄存器(比如a寄存器):
:let @a='' - 在选中的文本范围内,执行全局命令将匹配行追加到a寄存器:
这里大写的'<,'>g/z_image/y AA表示追加到寄存器,而不是覆盖原有内容。 - 移动光标到你想粘贴的位置,执行粘贴命令:
"ap
方法二:直接复制到目标位置
如果已经确定要粘贴的位置,可以一步完成:
- 把光标移到你想放置结果的位置(比如新行开头)
- 执行全局命令,将所有匹配行复制到光标下方:
这里的'<,'>g/z_image/t.t.表示复制当前匹配行到光标所在位置的下方。
方法三:借助quickfix窗口收集
- 在当前文件中搜索所有含
z_image的行::vimgrep /z_image/g % - 打开quickfix窗口查看所有匹配结果:
:copen - 在quickfix窗口中用
ggVG选中所有行,复制后粘贴到目标位置即可。
内容的提问来源于stack exchange,提问作者Carson
相关产品推荐
相关产品推荐

