我现在从TextMate切换到VIM。我发现^+W在插入模式下非常有用。但是,我不仅要删除游标之前的单词,还要删除游标之后或周围的单词。

我做了一些谷歌搜索,但我唯一能找到的是^+W删除单词前光标。


当前回答

在旧的vi中,b将光标移动到单词的开头,在光标之前,w将光标移动到单词的开头,在光标之后,e将光标移动到单词的末尾,而dw将光标从光标删除到单词的末尾。

如果键入wbdw,则删除光标周围的单词,即使光标位于单词的开头或末尾。请注意,单词后面的空格被认为是要删除的单词的一部分。

其他回答

如果要删除游标之前的一定数量的字符,可以使用x。如果要删除游标之后的一定数量的单词,可以使用dw(以3个单词为例,可以使用3dw删除多个单词)。一般来说,如果要删除光标周围的内容,可以使用daw。

你应该做的是创建一个特定键的imap到一系列的命令,在这种情况下,命令会让你进入正常模式,删除当前的单词,然后把你放回插入:

:imap <C-d> <C-[>diwi

要删除你的光标所在的整个单词,使用diw删除你的光标所在的整个单词,并将你置于插入模式,如果你不想删除整个单词,请使用ciw删除你所在的dw/cw

重复删除单词时,接受的答案失败,请尝试以下解决方案:

" delete current word, insert and normal modes
inoremap <C-BS> <C-O>b<C-O>dw
noremap <C-BS> bdw

它映射CTRL-BackSpace,也在正常模式下工作。

正常模式:

daw : delete the word under the cursor    
caw : delete the word under the cursor and put you in insert mode