我经常发现自己想用我从别处抽出的另一个词来替换一个词。其他解决方案的问题在于,如果您尝试更改某个单词,那么您的下一个粘贴将成为您使用 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".
希望这就是你要找的。
once
。如果我必须替换几个 second' by
first`(在您的示例中),则在第一次替换后复制的单词变为 second
。
viw"0p
而不是 viwp
会为您提供帮助。基本上,与 viwp
相同,但在粘贴前使用 "0
,不会覆盖缓冲区
西瓦
c change
iw inner word
这将删除光标下的单词(即使光标位于单词中间的某个位置)并进入插入模式。
另请参阅 Vim 的文档以供参考:
:help c
:help text-objects
如果您想用之前抽出的词来更改一个词,viwp
有另一种解决方案(一旦你抽出第一个词)。
ciw
删除前一个单词并将您置于原来的插入模式。但随后您可以使用 ctrl+r, 0
插入寄存器 0 的内容(其中包含先前抽出的单词)。
所以:
yiw
[move to next word]
ciw
ctrl+r
0
这比 viwp
效果更好,因为在第一次使用之后,您可以重复使用 .
执行替换。它也不会切换到可视模式并短暂突出显示。
viwp
相反)只需一次拉动即可多次完成。谢谢!
viwp
的限制 - 甚至 .
也不会复制它。
.
的能力很棒!
复制光标下的单词:bvey
要替换光标下的单词,请按: bvep
不定期副业成功案例分享
/usr/bin/bash
或1222.333
),如何处理?看起来 vim 将/
和.
解释为单词的结尾,并且不会选择整个字符串。cW
或ciW
(注意大写 W)