C^wTerminal 에서 기본이 아닌 작업에 바인딩하고 싶지만 Terminal에서 비활성화 bash
해야 합니다 . werase
불행하게도 이는 bash가 시작한 다른 프로그램, 특히 내 SSH 세션에 영향을 미칩니다. C^w거기에 입력하면 echo가 발생합니다 ^W
.
bash의 대화형 모드에서만 기본이 아닌 특정 터미널 설정을 활성화하고 명령을 실행할 때 자동으로 비활성화/복원하는 방법이 있습니까?
답변1
현재 stty 설정을 사용하지 못하도록 하는 readline 옵션이 있습니다. 당신의~/.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 설정은 영향을 받지 않습니다.