Vim - 如何在原地替换单词?


1

我想原地替换一个词。例如,在按下某个单词yw然后将光标设置在其他单词上之后,我想按某些内容以便进行替换。(例如SOME_KEYw,w确实是w而SOME_KEY是一些关键)。我喜欢切换到插入模式。

我对:%s/oldword/newword/gc解决方案不感兴趣。我需要互动式就地替换!

Answers:


7

您正在寻找的内容在Vim Tip 605中有所描述。

如果您使用第一个单词yiw,则可以通过键入替换第一个单词viwp

如果你遗漏了i,你yw也会在你的单词之后拉出空白,当你粘贴它时你会得到太多的空间。因此,使用i选择 nner字。


我不喜欢这种解决方案,因为它违反直觉; 而不是“viwp”不同的错别字发生像“iwvp”,“wivp”,......非常糟糕...
psihodelia

6
那么也许你不应该首先使用vim?因为错别字可能会发生?
innaM

多年来我和vim在一起。Rene提出的解决方案更好,因为它不需要输入“yiw”但只需要通常的“yw”=“Yank Word”。但当然他的解决方案也很糟糕,因为它需要按键2 + 5次才能进行一次替换。您的解决方案需要按3 + 4次。
psihodelia 2009年

2
如果你想“直观”,你使用错误的文本编辑器。
劳伦斯·委拉斯开兹2009年

3
我认为这很直观。首先,猛拉内部单词,然后在视觉上选择内部单词并粘贴。这正是你用一些使用鼠标的可视化编辑器所做的。
innaM


1

以innaM的答案为基础,输入更短:

首先复制第一个单词ye

然后用之前复制的单词替换任何其他单词vep

e动作向前移动到包含单词[count]的结尾。不要停在空行。


怎么e办?
jpaugh 2016年

@jpaugh :help告诉每个命令做什么,所以:help e告诉我们e做什么: 转发到单词[count]的结尾。不要停在空行。
nrz 2016年

谢谢。我远离vim atm,但有一个完整的答案是好的。
jpaugh 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.