【问题标题】:how to copy and paste a vim search result to a new tab如何将 vim 搜索结果复制并粘贴到新选项卡
【发布时间】:2016-11-18 11:55:26
【问题描述】:

我试图在 vim 的有限范围内搜索和复制匹配项。 as mentioned in this answer。 我正在尝试使用

将结果复制到新的 vim 选项卡中
:'<,'>g/foo/y A

但是当打开一个新标签 :tabnew 并尝试粘贴 p 什么都没有显示。
1. 那么,我的问题是我是否可以将 gsearch 输出重定向到新选项卡?
2. 或者我如何正确地将输出复制到寄存器中并从寄存器粘贴到新选项卡?

【问题讨论】:

  • 我可以将输出粘贴到新标签中。
  • 你正在注册a,所以你必须从同一个寄存器中输入:"ap

标签: search vim paste yank


【解决方案1】:

选项 1 的解决方案:

将匹配的文本重定向到新标签

  :tabnew | :normal! i^R/

要输入^R,你必须按CtrlV,然后按R

上面的命令粘贴了搜索寄存器的内容,在你的例子中是 foo。如果你想放任何其他寄存器的内容,你可以放那个字符而不是斜杠。

  :tabnew | :normal! i^Ra

这将粘贴寄存器a 的内容,其中保存了全局搜索命令的输出。

选项 2 的解决方案: 通过注册正确复制粘贴

您的命令完美运行!它将全局搜索的输出复制到寄存器a。所以,你可以直接通过:tabnew打开另一个标签,然后按"ap粘贴,或者按i进入插入模式,然后按CtrlR kbd>,然后是a。寄存器a的内容粘贴在那里。

【讨论】:

  • 我想我错过了新水龙头中的“Ap”,而我只使用了 p。当我复制到寄存器 A 时,它是附加到前一个副本,还是清除旧的副本并且只保存新副本?
  • 当你给大写字母时,它会将内容附加到同一个寄存器中。当您尝试按 p 粘贴时,它会粘贴最近删除/复制的文本。您可以通过在命令行模式下键入:registers 来查看寄存器的内容。当您使用小写字母将某些内容复制到寄存器时,其旧内容将被删除。
猜你喜欢
  • 1970-01-01
  • 2020-08-07
  • 2010-11-05
  • 2013-07-07
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-24
相关资源
最近更新 更多