如何执行Ctrl+;插入模式下Vim中的Del?
有人知道如何在Vim的插入模式下删除光标前面的单词吗?大多数系统使用如何执行Ctrl+;插入模式下Vim中的Del?,vim,command,editor,keyboard-shortcuts,Vim,Command,Editor,Keyboard Shortcuts,有人知道如何在Vim的插入模式下删除光标前面的单词吗?大多数系统使用Ctrl+Del来执行此操作 我知道在插入模式下删除Vim中光标后面的单词是Ctrl+w,但我不知道如何向前删除 将其添加到您的~/.vimrc(对于VIM或GVIM): imap Xlbce ; 1 2 3 4 5 ; 只是一个评论,以便进一步描述 (在GVIM中,也起作用。) 描述 在插入模式下,在Ctrl+D上设置以下绑定 添加虚拟字母以处理最初仅包含一个字符的单词 离开插入模式。(光标现在位于添加
Ctrl+Del
来执行此操作
我知道在插入模式下删除Vim中光标后面的单词是
Ctrl+w
,但我不知道如何向前删除 将其添加到您的~/.vimrc
(对于VIM或GVIM):
imap Xlbce
; 1 2 3 4 5 ; 只是一个评论,以便进一步描述
(在GVIM中,
也起作用。)
描述
Ctrl+D
上设置以下绑定- 如果光标位于单词的某个字符上或紧跟在单词的最后一个字符之后(但不在当前行的末尾),则该单词将被删除
- 否则,如果左边有一个单词(在同一行上),那么它将被删除(没有任何空白字符)
- 否则(当没有下一个词时)行为是未定义的。(请随时更新答案以涵盖这些情况。)
如果删除了某个单词,则光标将与该单词的第一个字符位于相同的位置。将其添加到
~/.vimrc
(对于VIM或GVIM):
imap Xlbce
; 1 2 3 4 5 ; 只是一个评论,以便进一步描述
(在GVIM中,
也起作用。)
描述
Ctrl+D
上设置以下绑定- 如果光标位于单词的某个字符上或紧跟在单词的最后一个字符之后(但不在当前行的末尾),则该单词将被删除
- 否则,如果左边有一个单词(在同一行上),那么它将被删除(没有任何空白字符)
- 否则(当没有下一个词时)行为是未定义的。(请随时更新答案以涵盖这些情况。)
如果删除了某个单词,则光标将与该单词的第一个字符所在的位置相同。在插入模式下使用单个正常模式命令。 要在插入模式下执行此操作,请键入
Ctrl+o
这会告诉vim接受1个命令,就像它是正常模式一样。然后按
dw
删除一个单词。在插入模式下,使用单个正常模式命令。 要在插入模式下执行此操作,请键入
Ctrl+o
这会告诉vim接受1个命令,就像它是正常模式一样。然后按
dw
删除一个单词。接受的解决方案不完全正确,对吗?它确实向后删除,但不向前删除 在nvim中,这项工作:
imap Xce
接受的解决方案并不完全正确,对吗?它确实向后删除,但不向前删除
在nvim中,这项工作:
imap Xce
您也可以将下面的内容添加到您的.vimrc
inoremap <C-Del> <C-o>dw
inoremap-dw
您也可以将以下内容添加到您的.vimrc
inoremap <C-Del> <C-o>dw
inoremap-dw
@jmargolisv链接的解决方案一次只删除一个单词的一个字符,我希望用一个键盘命令删除整个单词。谢谢您的建议。@jmargolisv链接的解决方案一次只删除一个单词的一个字符,我希望用一个键盘命令删除整个单词。谢谢你的建议。出于某种原因,当我将它映射到“”时,但当我将它映射到“
”时,你知道为什么会这样吗?@YoursTruly我使用了gvim
,所以我在那里测试了绑定。在vim
的xterm(1)
和terminator(1)
下,
确实不起作用,尽管Ctrl+Delete
在terminator
的配置/文档中没有列为绑定(并且Ctrl+Delete
在Unix上不是标准的组合键)。根据:help:map特殊键
和man termcap
,类似于imap
(但不完全是这样)的功能可能会起作用。对于行首的单字符单词失败,在这种情况下,它将删除以下单词,因为esc
不会将光标向后拉到左侧一个位置,意思是e
将移动到下一个单词的末尾(即使它在下一行)。用l
将光标向右移动一步可能会解决这个问题,因为您将无法移动到EOL之外,而esc
将再次将光标移回…@Jangari感谢您的观察。我已经根据你的建议更新了答案。但是请注意(关于“您将无法超越EOL”),如果某个命令(如l
)失败,那么将不会执行绑定的进一步命令,这将在当前解决方案中留下一些未定义的行为。就我个人而言,我对这个功能不感兴趣(我有时在非VIM编辑器中使用Ctrl+Backspace
,但在阅读这个问题之前,我甚至不知道Ctrl+Delete
),所以欢迎对进一步的发现进行编辑。请告诉我们,当我