我知道如何复制一个单词,但是当我尝试覆盖剪贴板中的内容时,好像会覆盖掉原来的内容,这导致我无法成功复制单词。
要复制一个单词,我可以使用:
bye
如何复制一个单词?
我知道如何复制一个单词,但是当我尝试覆盖剪贴板中的内容时,好像会覆盖掉原来的内容,这导致我无法成功复制单词。
要复制一个单词,我可以使用:
bye
如何复制一个单词?
也许您只是想这样做:
viwp
这会在视觉上选择一个新单词,并粘贴在其上。
现在,如果您不想在执行此操作时丢失注册表,还可以将以下内容添加到您的vimrc中:
xnoremap p pgvy
xnoremap p pgvy
很好用。vep
比 viwp
少按一个键,但是效果相同。 - nrzvep
才能像viwp
一样工作。而viwp
则可以在任何地方使用。 - poige通常情况下,按照惯例复制源单词(例如使用yiw
)并使用:
viw"0p
将目标单词上覆盖。
由于Visual模式下的p
命令(参见:help v_p
)不会更改包含最近一次复制命令文本的编号为0
的寄存器,因此同一复制的单词可以一遍又一遍地粘贴。
执行以下操作:
ciw<C-r>0
然后每次使用你复制的文本替换单词:
.
你可以像这样与搜索一起使用:
/foo<Cr>
.n.n.n
它有效的原因是:
ciw
替换内部单词,而
<C-r>0
使用最近复制的寄存器进行替换,.
随后也使用。
遗憾的是,如果你选择了要替换的文本,则无法使用.
进行替换。
请注意,如果最初使用视觉选择选中要替换的文本并执行了c<C-r>0
,那么在那之后,.
将替换与视觉选择中包含的相同长度的字符。
您可以使用寄存器0,其中包含刚刚覆盖的“剪贴板”文本。对于您的示例,您可以拖动要粘贴的文本,将光标放在单词“bye”的某个位置,然后键入
ciw
[在单词中剪切;删除光标下的单词并进入插入模式]
ctrl-r 0
[寄存器0;从寄存器0粘贴文本]
您可以使用:disp
查看所有寄存器中的内容。正如Daenyth所说,您可以使用"x
[删除/剪切/复制命令]将内容保存到特定寄存器中,并从命令模式下使用"xp
或从插入/替换模式下使用ctrl-r x
进行粘贴。
bye
视为一个命令。无论如何,我的回答回答了正确的问题,并且是正确和适当的信息。要覆盖的单词是无关紧要的。 - Kevin"
中,因此当您删除要替换的单词时,它将在"
寄存器中占据前一个单词的位置。然而,前一个单词将在寄存器0
中,之前的单词在1
中等等 - 您随时可以通过运行:reg
查看这一点,并查看寄存器的内容。因此,要替换一个单词,您可以首先复制第一个单词(yiw
),然后“更改”您想要替换的单词(ciw
),然后通过按下ctrl-r
,0
从寄存器0
插入。 (您也可以先删除单词(diw
),然后从寄存器0
粘贴:"0p
)。简单的解决方案是反过来操作:先粘贴新单词,再删除旧的。