我通常想要替换vim中的一些内容。复制后,我选择要替换的内容,然后粘贴我复制的内容。但随后要替换的内容将被复制到剪贴板,我不能替换下一个地方。 我希望当我粘贴到某个选定的地方时,剪贴板中的内容不会改变。
答案 0 :(得分:4)
简答:"0p
(而不是p
)
这个问题有一个答案here,但我会添加更多细节。
:registers
命令将显示寄存器当前存储的内容
(使用:help registers
获取更多信息)
说明:
在"
或yank
命令之前使用双引号(put
)告诉vim您要使用特定寄存器。命令"xp
(其中x
是数字(0-9)或字母(a-z))表示您希望put
存储在寄存器x中的数据。
在您的情况下,您想要从寄存器0中检索,因为这是您最近yank
编辑的内容。 (每个yank
你自动用文本填充寄存器0,以及默认情况下每个yank
和put
使用的未命名寄存器
您也可以选择一个命名寄存器来存储您的数据。例如,我会选择字母' h'
致yank
:"hy
。致put
:"hp
。
现在,如果您使用:registers
(或:reg
)命令,您会看到"h
注册表中存有文字。
(Here是一个很好地解释寄存器的问题)
答案 1 :(得分:-1)
我经常需要这个,我写了一个插件来简化并允许最大速度:ReplaceWithRegister。
此插件提供了一个二合一gr
命令,该命令用{motion} / text对象,整行或当前选择覆盖的文本替换寄存器的内容;旧文本被删除到黑洞寄存器中,即它已经消失了。它透明地处理许多极端情况,并允许通过标准.
命令快速重复。如果您不喜欢它,它的页面会链接到替代品。