Answers:
请注意,这将在终端和默认emacs模式下工作(如果Ctrl+ W会为您删除前一个单词,则使用该模式)。它不会在bash的vi模式下工作,也不会影响vi / vim本身。因此,这只是部分答案,但这是emacs用户可以提供的最佳答案。
此类事情由readline
可通过行为控制的库管理~/.inputrc
。编辑(或创建,如果不存在)~/.inputrc
并添加以下行:
"\C-H":"\C-W"
现在,打开一个新终端,它应该可以正常工作。
该\C-H
实际上是Control+ BackSpace。您可以按Ctrl+,V然后按所需的键来查看键码。您将看到BackSpace返回^H
。
现在,应该可以将Control+ 绑定BackSpace到bash函数,该函数通过使用删除前一个单词(backward-kill-word
或unix-word-rubout
)"\C-H": backward-kill-word
。但是,我无法正常工作。它可以与不同的键完美配合("\C-E": backward-kill-word
例如,使Ctrl+ E删除前一个单词),但是由于某种原因,我无法使用它BackSpace。
因此,作为解决方法,我们只将Ctrl+ 映射到+ Backspace,而Ctrl+ W已经映射到backward-kill-word
。因此,当您按Ctrl+ Backspace时,它将被转换为Ctrl+ W,然后将发送backward-kill-word
。我从SU的这个帖子中得到了解决此问题的想法。
直到最近,gnome-terminal在Backspace和Ctrl+ 上发出了相同的代码Backspace,因此您无法在应用程序中区分两者。
此问题已在vte-0.42中修复,该文件是今年秋天发布的Gnome 3.18的一部分。
如果您使用的是Wily,则可以在Gnome3 Staging中找到更新的软件包。
请改用Alt+ Backspace:它的作用与Ctrl+相同Backspace,并且不需要任何配置。
它可以在我的机器上工作。只需确保您使用master的tmux和linuxbrew的nvim,并且control + backspace也可以在bash和vim中使用!
(也从linuxbrew获取bash)