在插入模式下如何在Vim中执行Ctrl + Del?

时间:2018-07-22 15:43:25

标签: vim command editor keyboard-shortcuts

在Vim的插入模式下,是否有人知道如何删除光标前面的单词?大多数系统使用Ctrl+Del来执行此操作。

我知道在插入模式下,在Vim中删除光标后面的单词是Ctrl+w,但是我不知道如何向前删除。

4 个答案:

答案 0 :(得分:2)

在插入模式下使用单个普通模式命令。

为此,在插入模式下,键入

Ctrl+o

这告诉vim接受1个命令,就好像它是普通模式一样。然后按

dw

删除单词。

答案 1 :(得分:1)

将此添加到您的~/.vimrc(对于VIM或GVIM):

imap <C-D> X<Esc>lbce
;   1      2  3  4 5   ; just a comment for the further description

(在GVIM中,<C-Del>也有效。)

说明

  1. 在插入模式下在Ctrl+D上设置以下绑定。
  2. 添加一个虚拟字母以处理最初仅包含一个字符的单词。
  3. 退出插入模式。 (光标现在位于添加的字母上。)
  4. 移动到当前单词的开头。
  5. 将字符从当前位置删除到下一个单词结尾(即,从当前单词的第一个字符到其最后一个字符)。然后再次进入插入模式。

行为

  • 如果光标位于单词的某个字符上或紧接单词的最后一个字符之后(但不在当前行的末尾),则该单词将被删除。
  • 否则,如果左边有一个单词(在同一行上),那么它将被删除(没有任何空白字符)。
  • 否则(当没有下一个单词时)行为是不确定的。 (也可以随时更新答案以涵盖这些情况。)

如果单词被删除,则光标将与单词的第一个字符位于同一位置。

答案 2 :(得分:0)

接受的解决方案并不完全正确,对吧?它确实向后删除但不向前删除

在nvim中,这有效: imap <C-Del> X<Esc>ce

答案 3 :(得分:0)

您还可以将以下内容添加到您的.vimrc

inoremap <C-Del> <C-o>dw