在正常模式下,我可以按下
我想要删除整个单词,而不考虑光标位置(当然是在单词内)。
Ctrl
+ E
,这将删除当前单词的其余部分并进入插入模式。我想要删除整个单词,而不考虑光标位置(当然是在单词内)。
Ctrl
+ E
,这将删除当前单词的其余部分并进入插入模式。使用"ciw"命令可以删除光标所在的单词。在Vim中,"inner"和"a"命令很方便,您也可以尝试在{}块内部输入"ci{"命令,或者加上"ca{"命令以删除{}字符。为了更好地记忆这些命令,请将它们翻译成英文: "change inner { block" 和 "change a { block"。
请参考http://vimdoc.sourceforge.net/htmldoc/motion.html#text-objects获取文档说明。
针对您的后续问题的答案:viwp
v -> start visual mode
iw -> select the 'inner word'
p -> paste - in visual mode it replaces the visually selected text.
yiw
复制当前单词,将光标放在要替换的单词上,使用ciw<C-r>0
。之后,您可以将光标放在下一个单词上,并使用.
来重复替换。 - siegi:%s/a/b/g
。其中,a
可以是精确文本或正则表达式,而b
则是你要用来替换所有匹配到的a
的内容。你可以在vim的“/”模式下测试正则表达式。如果你不想在所有行上进行替换,可以将%
替换为行号或范围。 - Braden BestbPldw
这将按顺序带您到当前单词的开头,在光标前插入默认寄存器,转到下一个字符(将您带过刚刚插入的文本的末尾),然后删除其余的单词。bPlde
。 - 0x89bcw
也可以使用。它的意思是“b
ack to the begin of word,c
hange w
ord”。但我认为 ciw
更容易记忆,它的意思是“c
hange i
nner w
ord”,只需要一步。"_diwP
。它会将 d
elete 内部单词到你不关心的寄存器中,并将默认寄存器的内容 p
aste。一个优点是你可以多次粘贴默认寄存器,因为它不会被污染。这有点复杂,所以我将其映射为 nnoremap ,r "_diwP
。bdwi
来删除当前单词并进入插入模式。bcw
命令将光标移动到当前单词的开头并进行修改,这会让你进入插入模式。 - Hank Gay
ciw
和caw
并不完全相同:ciw
只删除单词,而caw
还会删除尾部空格。 - Roberto Bonvallet:help objects
命令以了解更多关于这些选择方式的内容。 - Aaroncaw
和ca{
中的a
代表 "around"。 - npfoss