在vim中,如何在选择某些内容之前粘贴而不复制所选内容

时间:2016-08-07 02:06:16

标签: vim copy paste

我通常想要替换vim中的一些内容。复制后,我选择要替换的内容,然后粘贴我复制的内容。但随后要替换的内容将被复制到剪贴板,我不能替换下一个地方。 我希望当我粘贴到某个选定的地方时,剪贴板中的内容不会改变。

2 个答案:

答案 0 :(得分:4)

简答:"0p (而不是p

这个问题有一个答案here,但我会添加更多细节。

:registers命令将显示寄存器当前存储的内容 (使用:help registers获取更多信息)

说明:

"yank命令之前使用双引号(put)告诉vim您要使用特定寄存器。命令"xp(其中x是数字(0-9)或字母(a-z))表示您希望put存储在寄存器x中的数据。 在您的情况下,您想要从寄存器0中检索,因为这是您最近yank编辑的内容。 (每个yank你自动用文本填充寄存器0,以及默认情况下每个yankput使用的未命名寄存器

您也可以选择一个命名寄存器来存储您的数据。例如,我会选择字母' h' 致yank"hy。致put"hp

现在,如果您使用:registers(或:reg)命令,您会看到"h注册表中存有文字。

Here是一个很好地解释寄存器的问题)

答案 1 :(得分:-1)

我经常需要这个,我写了一个插件来简化并允许最大速度:ReplaceWithRegister

此插件提供了一个二合一gr命令,该命令用{motion} / text对象,整行或当前选择覆盖的文本替换寄存器的内容;旧文本被删除到黑洞寄存器中,即它已经消失了。它透明地处理许多极端情况,并允许通过标准.命令快速重复。如果您不喜欢它,它的页面会链接到替代品。