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

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


当前回答

我想这只是乌鸦

daw - delete a word

其他回答

在插入模式下似乎没有内置的方法,这就是问题所在。其他一些答案对于普通模式是正确的,并指出可以创建自定义映射以在插入模式中添加功能。

老实说,你应该在正常模式下进行大部分删除操作。^W是整洁的,但我不确定我能想到一种情况,我宁愿这样做,而不是esc进入正常模式,并有更强大的删除命令在我的处置。

在这方面,Vim与许多其他编辑器(包括TextMate)非常不同。如果您正在高效地使用它,您可能会发现在插入模式上花费的时间并不多。

不太清楚“之前”和“之后”的用法,但你试过了吗

dw

?

编辑:我猜你在寻找在插入模式中使用的东西。奇怪的是,在文档中什么也找不到,似乎只有ctrl-w。

我不仅要删除光标之前的单词,而且要删除光标之后或周围的单词。

在这种情况下,可以将OP提出的解(即使用<c-w>)与接受的答案结合起来,得到:

inoremap <c-d> <c-o>daw<c-w>

或者(更短的解决方案):

inoremap <c-d> <c-o>vawobd

样例输入:

word1 word2 word3 word4
               ^------------- Cursor location

输出:

word1 word4

你是说像?

dw

我想这只是乌鸦

daw - delete a word