在正常模式下,我可以点击 Ctrl
+ E
删除当前单词的其余部分并进入插入模式。
我想删除整个单词,无论光标位置如何(当然在单词内)。
答案 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"只是一步。
关于"使用粘贴"替换的第二个问题,我的解决方案是"_diwP
。 d
elete i
nner w
访问您不在乎的注册,并p
作为默认注册的内容。一个优点是您可以多次粘贴默认寄存器,因为它不会被污染。它是一个小小的复合体,因此我将其映射为nnoremap ,r "_diwP
。