如何在插入模式下在 Vim 中执行 Ctrl+Del?
How to perform Ctrl+Del in Vim while in insert mode?
有谁知道如何在 Vim 的插入模式下删除光标前面的单词?大多数系统使用 Ctrl+Del
来执行此操作。
我知道在插入模式下删除Vim中光标后面的单词是Ctrl+w
,但我不知道如何向前删除。
将此添加到您的 ~/.vimrc
(对于 VIM 或 GVIM):
imap <C-D> X<Esc>lbce
; 1 2 3 4 5 ; just a comment for the further description
(在 GVIM 中,<C-Del>
也有效。)
描述
- 在插入模式下对
Ctrl+D
设置以下绑定。
- 添加一个虚拟字母来处理最初只包含一个字符的单词。
- 退出插入模式。 (光标现在在添加的字母上。)
- 移动到当前单词的开头。
- 从当前位置删除字符到下一个词尾(即从当前词的第一个字符到最后一个字符)。然后再次进入插入模式
行为
- 如果光标在单词的一个字符上或紧跟在单词的最后一个字符之后(但不在当前行的末尾),则该单词将被删除。
- 否则,如果左边有一个词(在同一行),那么它将被删除(没有任何空白字符)。
- 否则(当没有下一个词时)行为未定义。 (随时更新答案以涵盖这些案例。)
如果删除了一个词,则光标将位于与该词的第一个字符相同的位置。
在插入模式下使用单个普通模式命令。
为此,在插入模式下,键入
Ctrl+o
这告诉 vim 只接受 1 个命令,就好像它是正常模式一样。然后按
dw
删除单词。
接受的解决方案并不完全正确,对吧?它确实向后删除但不向前删除
在 nvim 中这有效:
imap <C-Del> X<Esc>ce
您还可以将以下内容添加到您的 .vimrc
inoremap <C-Del> <C-o>dw
有谁知道如何在 Vim 的插入模式下删除光标前面的单词?大多数系统使用 Ctrl+Del
来执行此操作。
我知道在插入模式下删除Vim中光标后面的单词是Ctrl+w
,但我不知道如何向前删除。
将此添加到您的 ~/.vimrc
(对于 VIM 或 GVIM):
imap <C-D> X<Esc>lbce
; 1 2 3 4 5 ; just a comment for the further description
(在 GVIM 中,<C-Del>
也有效。)
描述
- 在插入模式下对
Ctrl+D
设置以下绑定。 - 添加一个虚拟字母来处理最初只包含一个字符的单词。
- 退出插入模式。 (光标现在在添加的字母上。)
- 移动到当前单词的开头。
- 从当前位置删除字符到下一个词尾(即从当前词的第一个字符到最后一个字符)。然后再次进入插入模式
行为
- 如果光标在单词的一个字符上或紧跟在单词的最后一个字符之后(但不在当前行的末尾),则该单词将被删除。
- 否则,如果左边有一个词(在同一行),那么它将被删除(没有任何空白字符)。
- 否则(当没有下一个词时)行为未定义。 (随时更新答案以涵盖这些案例。)
如果删除了一个词,则光标将位于与该词的第一个字符相同的位置。
在插入模式下使用单个普通模式命令。
为此,在插入模式下,键入
Ctrl+o
这告诉 vim 只接受 1 个命令,就好像它是正常模式一样。然后按
dw
删除单词。
接受的解决方案并不完全正确,对吧?它确实向后删除但不向前删除
在 nvim 中这有效:
imap <C-Del> X<Esc>ce
您还可以将以下内容添加到您的 .vimrc
inoremap <C-Del> <C-o>dw