将vim复制命令复制到剪贴板/缓冲区

41

如何将ex命令复制到剪贴板或粘贴到缓冲区?

在Windows上使用gvim。

6个回答

43
Windows剪贴板可以通过缓冲区+访问。因此,将剪贴板粘贴为ex命令可以使用<C-R>+完成。如果要将ex命令复制到剪贴板中,则需要显示命令历史记录(q:)并将其复制到剪贴板缓冲区中("+yy)。

<C-R>+ 可以将内容粘贴到 ex 命令行中。 但是我该如何将 ex 命令复制到剪贴板中呢? - Ayman
我认为您可以从正常模式使用q:来查看命令历史记录,或者从ex命令模式使用<C-F>来查看(: <C-F>)。 - Maxim Kim
2
啊。我不知道有ex-history窗口。这正是我需要的。 - Ayman
1
如果您已经输入命令行中的文本,但尚未执行并且不想执行,那么该怎么复制它呢? - trusktr
@trusktr 在那个时候,我认为你应该将尚未成为命令的内容转换为一个命令,将寄存器设置为你不打算执行的命令。或者将其变成注释行,并按照此处其他地方所述的方式将其从历史记录中删除。 - James Andariese

18

从普通模式进入命令历史记录

q:

然后使用选择并复制(“yank”)命令,例如:

"*y

11

将最后执行的命令复制到剪贴板:

:let @+=@:

命令(:)寄存器分配给系统剪贴板(+)寄存器。


9
:call setreg('+', getreg(':'))

3

虽然这不是对问题的确切回答,但在同一条线上,命令":p"将把最后一个ex命令放置/粘贴到文件中。然后可以使用命令V"+yy将其复制到剪贴板中。
这两个命令均不会打开另一个窗口。
当你想要保存一个非常长且好用的命令时,它们也很有用。


0
如果您在设置中引用mswin.vim,它将映射默认的Windows复制/粘贴键以使用剪贴板。如果您想自己完成,请参阅Soulmerge的答案。

问题是我无法选择复制命令。我使用鼠标进行选择,这样可以工作,但这并不是 Vim 的方式。 - Ayman
我不确定我理解了。正常的移动命令可以与yank一起使用。如果你想要更高级的操作,可以使用可视化模式(v/V)。 - Brian Rasmussen
我之前不知道有 ex 命令历史窗口,所以一开始听起来没有意义。现在我明白了。 - Ayman

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