Почему я могу не видеть изменения ключа stty, отраженные в «stty -a»

Почему я могу не видеть изменения ключа stty, отраженные в «stty -a»

Я пытаюсь изменить некоторые сочетания клавиш в моей консоли (Konsole). Если я сопоставляю intr с Ctrl-k, запустив

stty intr \^k

Я не вижу, чтобы изменения отражались в

stty -a
speed 38400 baud; rows 46; columns 172; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

Почему это так?

Обратите внимание, что Ctrl-K работает для отправки прерывания. Ctrl-C продолжает работать для отправки прерывания. Если я попробую отменить сопоставление Ctrl-C, запустив

stty intr ^-

или

stty intr undef

Он не становится неопределенным, и stty -a по-прежнему отображается точно так же, как и раньше, с "intr = ^C;"


Обновлять:Теперь я подозреваю, что это как-то связано с оболочкой, которую я запускаю (fish). В другой вкладке Konsole, где я использую другой профиль, чтобы использовать bash, я получаю ожидаемое поведение.

решение1

Это было сломано навсегда. Смотрите

https://github.com/fish-shell/fish-shell/issues/2315

https://github.com/fish-shell/fish-shell/issues/814

https://github.com/fish-shell/fish-shell/issues/1041

И несколько других. Обходной путь — использовать bash, zsh, ksh или sh для запуска sttyкоманды, а затем выполнить exec fish.

Связанный контент