我想绑定C^w到 中的非默认操作bash
,但需要werase
在终端中禁用。不幸的是,这会影响 bash 启动的其他程序,尤其是我的 ssh 会话:当我在C^w那里输入时,它会回显^W
.
有没有办法仅在 bash 的交互模式下启用某些非默认终端设置,并在运行命令时自动禁用/恢复它?
答案1
有一个 readline 选项可以停止它占用当前的 stty 设置。添加到您的~/.inputrc
set bind-tty-special-chars Off
然后你就可以Control-w按照你的意愿绑定了。交互式地,您可以尝试:
$ bind 'set bind-tty-special-chars Off'
$ bind -ps | grep C-w
"\C-w": unix-word-rubout
$ bind -x '"\C-w": date'
然后输入该字符运行date
命令,但 stty 设置不受影响。