如何在Vim中替换光标下的单词。
所以,是否有更简单的组合键来替换光标下的单词,而不是使用dw
然后i
,再输入单词,最后按Esc
呢?
我经常发现自己想要用从其他地方复制的另一个单词替换当前的单词。但是,使用其他解决方案的问题在于,如果您尝试更改一个单词,那么您下一次粘贴的内容将是您使用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".
希望这就是你在寻找的。
viw"0p
而不是仅仅使用viwp
会更加有帮助。基本上,这两者的作用相同,但是在粘贴之前加上"0
可以避免覆盖缓冲区。 - Peterciw
c change
iw inner word
这将删除光标下的单词(即使光标在单词中间的位置),并进入插入模式。
另请参阅Vim文档以供参考:
:help c
:help text-objects
viwp
(在你yanked第一个词后)。ciw
移除前面的单词,并将光标置于其所在位置以进行插入。然后,你可以使用 ctrl+r, 0
插入寄存器 0 的内容(其中包含先前yanked的单词)。yiw
[move to next word]
ciw
ctrl+r
0
这比使用viwp
更好,因为在第一次使用后,您可以使用.
重复执行替换。它也不会切换到可视模式并短暂地突出显示。
viwp
相反,这可以通过一次复制来完成多次操作。谢谢! - Paloviwp
的限制 - 即使使用 .
也不能复制它。 - Connor.
真是太棒了! - izzy尝试使用cw
- 就像“更改单词”。
使用http://linuxmoz.com/vi-commands-cheat-sheet/或任何其他备忘单作为参考。
:%s!first!second!gc
。 - Marek Stepanek
/usr/bin/bash
或1222.333
),应如何处理?看起来vim将/
和.
解释为单词的结尾,并且无法选择整个字符串。 - Alexander CskacW
或ciW
(注意大写 W)。 - ShellCode