我怎么能拆散和重新映射猛砸CW?(How can I unbind and remap C-w in

2019-07-29 20:03发布

我想映射按Ctrl - wkill-region中的Bash 4.2。 此密钥被绑定到unix-word-rubout (删除字向后)默认情况下。 根据手册,重新映射应尽可能与bind其具有选项命令

-u取消绑定功能绑定到命名函数的所有键。

-r keyseq删除所有当前绑定的keyseq。

我试图bind -r "\Cw" ,并bind -u unix-word-rubout ,但关键是不要取消设置,并为bind -P | grep unix-word-rubout bind -P | grep unix-word-rubout显示,有一个在映射没有变化。

我打bind了一点,我能解除绑定其他内置密钥而不是按Ctrl - W上

Answer 1:

按Ctrl - W的必然sttywerase 。 你需要有先解除它。

stty werase undef
bind '"\C-w":kill-region'


Answer 2:

默认情况下,readline的尝试绑定通过内核的终端驱动特殊处理以它们的readline当量的控制字符。 (要查看您的终端是如何配置的,运行

stty -a

。)你的终端大概有Ctrl-w设置为werase ,所以庆典它绑定到unix-word-rubout 。 这种结合将优先于你指定的任何按键组合~/.inputrc

为了避免这种映射,你需要设置的readline变量bind-tty-special-charsoff在你的~/.inputrc文件:

set bind-tty-special-chars off


文章来源: How can I unbind and remap C-w in Bash?
标签: bash readline