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

如何在Vim中删除单词并进入插入模式?,vim,Vim,在正常模式下,我可以按Ctrl+

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


我想删除整个单词,而不考虑光标的位置(当然在单词内)。

对于第二个问题:
bPldw

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

您可以通过键入“ciw”来使用“更改内部单词”来删除光标所在的单词

“inner”和“a”命令在Vim中非常好,如果您也想删除{}字符,也可以在{}块中尝试使用“ci{”,或者使用“ca{”,将这些命令翻译成英语以便更好地记住它们,可以尝试使用:“change inner{block”和“change a{block”


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

回答后续问题:
viwp

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

对于第一个问题,
bcw
也有效。它的意思是“
b
回到单词的开头,
c
hange
w
ord”。但我认为
ciw
更值得记忆,这意味着“
c
hange
I
nner
w
ord”,只有一步


关于“使用粘贴替换”的第二个问题,我的解决方案是
“\u diwP
.It
d
elete
i
nner
w
ord到一个你不关心的寄存器,并
p
aste默认寄存器的内容。优点是你可以多次粘贴默认寄存器,因为它不会被污染。它有点复杂,所以我将它映射为
nnoremap,r。”"_diwP

您可以使用
bcw
转到当前单词的开头,然后更改该单词,这将使您处于插入模式。如果光标已位于单词的第一个字符上,则将删除前一个单词。@WarrenPena在这种情况下,只需使用
dwi
。请小心警察不会注意,因为dwi在大多数州是非法的。这也会删除单词后面的空格。应该是
bPlde
“caw”可以代替“ciw”相同的功能。虽然“caw”和“ciw”将替换整个单词,但简单的“cw”将从当前光标位置更改为当前单词的结尾。我将答案从讲述“co{”编辑为正如jinxed_程序员的评论所提醒的那样,“ca{”,我以前的定制将“(a)”命令实现为“(o)uter"命令。
ciw
caw
不完全相同:
ciw
只删除单词,
caw
也删除尾随空格。:帮助vim中的对象阅读更多关于这些选择的信息。一行中如何多次执行此操作?每次粘贴时,缓冲区都会填满我粘贴的单词。@BenGartner在以下位置发现了这一点:使用
yiw
复制当前单词,将光标放在要替换的单词上,使用
ciw0
。之后,您可以将光标放在下一个单词上,并使用
重新进行替换。@BenGartner如果您所要做的只是将word_A的所有实例替换为word_B,那么您只需使用vim的e即可x模式,
:%s/a/b/g
a
可以是精确的文本或正则表达式,
b
是您将替换
a
的所有匹配项的模式。您可以使用vim的
/
模式测试正则表达式。如果不想在所有行上替换,请将
%
替换为行号或范围。