复制一个单词,粘贴一个单词

时间:2011-10-17 17:03:00

标签: vim

我知道如何复制一个单词,但我似乎覆盖了剪贴板中的内容,因为当我尝试复制一个单词时,它似乎无法正常工作。

要复制一个单词:

bye

如何复制一个单词?

7 个答案:

答案 0 :(得分:23)

也许你只想这样做:

viwp

将直观地选择一个新单词并粘贴在其​​上。

现在,如果您不想在执行此操作时丢失注册表,您也可以输入您的vimrc:

xnoremap p pgvy

答案 1 :(得分:4)

像往常一样复制一个单词(例如yiw)并使用

viw"0p

粘贴一个单词。由于可视模式下的命令p(参见:help v_p) 不会更改包含最多文本的编号寄存器0 最近的yank命令,可以一遍又一遍地粘贴相同的复制词。

答案 2 :(得分:2)

这样做一次:

ciw<C-r>0

然后总是使用你猛拉的文字替换单词:

.

您可以像这样使用搜索:

/foo<Cr>

.n.n.n

它的工作原因是:

ciw取代内部词和

<C-r>0使用最近被拽的寄存器来替换它,.然后也使用它。

遗憾的是,如果您在视觉上选择要替换的文本并使用.,则无效。

请注意,如果您最初使用视觉选择来选择要替换的文本并执行c<C-r>0,那么.之后将替换视觉选择中包含的相同长度的字符。

答案 3 :(得分:1)

简单的解决方法是反过来:首先粘贴新单词,然后删除旧单词。

答案 4 :(得分:1)

您可以使用寄存器0,其中包含刚刚覆盖的“剪贴板”文本。对于您的示例,您可以将文本拉出以粘贴,将光标放在单词“bye”中,然后键入

ciw [切入;删除光标下的单词并进入插入模式]

ctrl-r 0 [注册0;从寄存器0中粘贴文本

您可以看到:disp的所有寄存器中的内容。正如Daenyth所说,你可以使用"x [del / cut / yank命令]进入特定的寄存器,并从命令模式粘贴"xp,或者从insert / replace中粘贴ctrl-r x

答案 5 :(得分:1)

当你删除一个单词时,它会被放在"寄存器中,这是默认的粘贴寄存器,所以当你删除要替换的单词时,它会占用{{1中的前一个单词的位置注册。但是,前一个单词将在寄存器"中,前一个单词位于0中,依此类推 - 您可以通过运行1随时查看寄存器的内容。因此,要替换单词,您可以先复制第一个单词(:reg),然后“更改”要替换的单词(yiw),然后通过点击从寄存器ciw插入0ctrl-r。 (您也可以先删除单词(0),然后从注册diw粘贴:0

答案 6 :(得分:0)

您可以通过y"a是寄存器的名称)来a进入寄存器。见How to use vim registers

b"aye