如何在Bash中解除绑定并重新映射C-w?
我想在bash4.2中将Ctrl-w映射到如何在Bash中解除绑定并重新映射C-w?,bash,readline,Bash,Readline,我想在bash4.2中将Ctrl-w映射到kill区域。默认情况下,此键绑定到unix word rubout(向后删除word)。根据手册,应可使用带有选项的bind命令重新映射 -u函数 解除绑定到命名函数的所有键的绑定 -r键EQ 移除keyseq的所有当前绑定 我尝试了bind-r“\C-w”和bind-uunix单词rubout,但键没有取消设置,正如bind-p | grep unix单词rubout显示的那样,映射没有变化 我玩了一点bind,我可以解除其他内置键的绑定,但不能解除
kill区域。默认情况下,此键绑定到unix word rubout(向后删除word)。根据手册,应可使用带有选项的bind
命令重新映射
-u函数
解除绑定到命名函数的所有键的绑定
-r键EQ
移除keyseq的所有当前绑定
我尝试了bind-r“\C-w”
和bind-uunix单词rubout
,但键没有取消设置,正如bind-p | grep unix单词rubout
显示的那样,映射没有变化
我玩了一点bind
,我可以解除其他内置键的绑定,但不能解除Ctrl-w。Ctrl-w在stty
中绑定到werase
。你需要先把它解开
stty werase undef
bind '"\C-w":kill-region'
默认情况下,readline尝试将内核终端驱动程序专门处理的控制字符绑定到它们的readline等价物。(要查看终端的配置,请运行
stty -a
)您的终端可能已将Ctrl-w
设置为werase
,因此bash将其绑定到unix word rubout
。此绑定优先于在~/.inputrc
中指定的任何键绑定
为了避免这种映射,您需要在~/.inputrc
文件中将readline变量bind tty special chars
设置为off
set bind-tty-special-chars off