仅在 bash 交互模式下禁用终端 Werase 设置

仅在 bash 交互模式下禁用终端 Werase 设置

我想绑定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 设置不受影响。

相关内容