如何在vim的命令行模式下粘贴文本?

3

我从文件中复制了一个要搜索的单词。

是否有命令可以在命令行模式下粘贴该单词。

例如,我从以下代码中将单词“static”复制到默认寄存器中,我想将其粘贴到命令行模式,如下所示:

/static

1275 static const struct of_device_id omap_mcspi_of_match[] = {
1276         {
1277                 .compatible = "ti,omap2-mcspi",
1278                 .data = &omap2_pdata,
1279         },
1280         {
1281                 .compatible = "ti,omap4-mcspi",
1282                 .data = &omap4_pdata,
1283         },
1284         { },
1285 };
3个回答

12

在命令模式或搜索模式下,输入Ctrl+R" 从默认寄存器中粘贴。也就是说,输入Ctrl+R,释放并输入"

对于任何其他命名的寄存器,只需要输入Ctrl+R,后面跟着寄存器的名称,比如ab

或者,如果使用命令q/进入搜索模式,而不仅仅是/,则可以像在普通缓冲区中一样使用p进行粘贴。


8
有几种方法可以实现这个。
  • 检查:h c_^r。在命令行中,您可以输入/<C-R>"来复制默认寄存器 " 的内容,并将其转换为/static
  • 或者,在大多数情况下更方便的方法是使用:h c_^r^w来复制光标下的当前单词,表示为<cword>。所以你可以输入/<C-R><C-W>,如果你的光标在单词 static 上,那么它将被转换为 /static

2
<C-R>"回答了问题,但<C-R><C-W>几乎肯定是潜在问题的答案! - johnsyweb

5
什么时候只需在静态中使用光标与*相遇?

3
同意,如果目的只是为了查找单词,这会是最有效的解决方案。 - merlin2011
如果意图是构建一个包含单词的模式,那么这个解决方案仍然可用:按下 * 后,您可以按 /<UP> 来获取最后一次搜索的模式,即该单词。 - statox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接