如何在Vim中删除单词并进入插入模式?

时间:2009-09-04 13:17:55

标签: vim

在正常模式下,我可以点击 Ctrl + E 删除当前单词的其余部分并进入插入模式。

我想删除整个单词,无论光标位置如何(当然在单词内)。

5 个答案:

答案 0 :(得分:154)

您可以输入“更改内部单词”,输入“ciw”删除光标所在的单词。

“内部”和“a”命令在Vim中很棒,在{}块中也可以尝试“ci {”,如果你也希望删除{}字符,也可以尝试“ca {”。要将这些命令翻译成英语以便更好地记住它们,请尝试:“更改内部{block”和“更改{block”。

http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects

上的文档

答案 1 :(得分:18)

回答您的后续问题:viwp

v    -> start visual mode
iw   -> select the 'inner word'
p    -> paste - in visual mode it replaces the visually selected text.

答案 2 :(得分:8)

关于第二个问题:bPldw

这将按顺序将您带到当前单词的开头,在光标前插入默认寄存器,转到下一个字符(将您带到刚刚插入的文本的末尾),然后删除其余部分。

答案 3 :(得分:2)

或者,您也许可以使用键序列bdwi删除当前单词并进入INSERT模式。

答案 4 :(得分:2)

对于第一个问题,bcw也有效。这意味着" b确认单词的开头,c hange w ord"。但我认为ciw更令人难忘,这意味着" c使i nner w ord"只是一步。

关于"使用粘贴"替换的第二个问题,我的解决方案是"_diwPd elete i nner w访问您不在乎的注册,并p作为默认注册的内容。一个优点是您可以多次粘贴默认寄存器,因为它不会被污染。它是一个小小的复合体,因此我将其映射为nnoremap ,r "_diwP