Bash

僅在 bash 的互動模式下禁用終端操作設置

  • June 29, 2021

我想綁定C^w到 中的非預設操作bash,但它需要werase在終端中禁用。不幸的是,這會影響 bash 啟動的其他程序,尤其是我的 ssh 會話:當我在那裡鍵入時C^w,它會 echoes ^W

有沒有辦法僅在 bash 的互動模式下啟用某些非預設終端設置,並在執行命令時自動禁用/恢復它?

有一個 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 設置不受影響。

引用自:https://unix.stackexchange.com/questions/656288