如何替换光标下的单个单词?

时间:2013-01-09 10:45:55

标签: vim replace

如何在Vim中替换光标下的单词。

所以不是使用dw然后使用i,而是使用单词然后Esc,是否有更简单的组合来替换光标下的单词?

6 个答案:

答案 0 :(得分:207)

ciw

(更改内部单词)将更改光标下的整个单词。与

比较
cw

只会改变当前光标位置中的单词。有关详细信息,请参阅this SO问题/答案。

答案 1 :(得分:71)

我经常发现自己想要将另一个词替换为我从其他地方拉过来的另一个词。其他解决方案的问题在于,如果您尝试更改某个字词,那么下一个粘贴将 您使用cw删除的该字词。

尝试以下方法:

1 "This first word should overwrite the second"

yiw     yank inner word (copy word under cursor, say "first").
...     Move the cursor to another word (say "second").
viwp    select "second", then replace it with "first". 

希望这就是你要找的东西。

答案 2 :(得分:30)

C 瓦特

c   change
iw  inner word

这将删除光标下的单词(即使光标位于单词中间某处)并进入插入模式。


另见Vim的文档以供参考:

:help c
:help text-objects

答案 3 :(得分:7)

如果您想用之前被拉的单词来更改单词,则viwp还有另一种解决方案(一旦您拉了第一个单词)。

ciw删除前一个单词,并使您进入原来的插入模式。但是随后您可以使用ctrl+r, 0来插入寄存器0的内容(其中包含先前被选中的字)。

所以:

yiw
[move to next word]
ciw
ctrl+r
0

这比viwp更好,因为在首次使用后,您可以重复使用.进行替换。它也不会切换到可视模式并短暂突出显示。

答案 4 :(得分:1)

尝试cw - 与“更改字词”一样。

使用http://linuxmoz.com/vi-commands-cheat-sheet/或任何其他备忘单作为参考。

答案 5 :(得分:0)

要复制光标下的单词,请按:bvey

要替换光标下的单词,请按:bvep