如何在 vim 中复制最近写的字

How to duplicate the recent written word in vim

如果我只输入car这个词,我怎么用普通模式再写一遍呢?,我只看到carcar.

如果我这样做 yyp,Vim 将当前行复制到最后一行,但我需要同一行中的单词。

使用 . 重复你最后做的事情。

如果你在车里的 c 上,你可以输入

ywep

猛拉单词 (yw),移动到单词 (e) 的末尾,然后粘贴单词 (p)。

如果你在汽车的任何地方,你可以使用 yiw 来复制汽车的所有内容。所以

yiwep

会复制汽车。

如果您知道要在插入 之前重复 ,您可以向 i / a 命令提供 [count]。例如,2icar<Esc> 产生 carcar.

正如@kid 在他的回答中所写,. 将重复插入,但您必须a追加(或首先将光标移到最后一个字符之外)。

另一个选择是a<C-@>;后一个命令在插入模式下再次插入最后插入的文本; cp。 :help i_CTRL-@.

类似的事情适用于视觉模式,viw 将 select current/inner 单词,然后你可以 copy/yank 它(y) 并粘贴 (P$p).

您可以将以下行添加到 vimrc:

map <A-v> viw"+gPb
map <A-c> viw"+y
map <A-x> viw"+x

这些绑定遵循 Control+VControl+C 和 [=20= 的 Windows 样式键]Control+X;除了使用 Alt 而不是 Control。根据您的喜好进行调整。

参见: