Estou tentando alterar algumas combinações de teclas no meu console (Konsole). Se eu mapear intr para Ctrl-k, executando
stty intr \^k
Não vejo a mudança refletida
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
Por que isso aconteceria?
Observe que Ctrl-K ESTÁ funcionando para enviar uma interrupção. Ctrl-C continua funcionando para enviar uma interrupção. Se eu tentar desmapear Ctrl-C executando
stty intr ^-
ou
stty intr undef
Ele não fica indefinido e stty -a ainda aparece exatamente como antes, com "intr = ^C;"
Atualizar:Agora suspeito que tenha algo a ver com o shell que estou executando (peixe). Em outra aba do Konsole onde estou usando um perfil diferente para usar o bash, estou obtendo o comportamento esperado.
Responder1
Isso foi quebrado para sempre. Ver
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
E vários outros. A solução alternativa é usar bash, zsh, ksh ou sh para executar o stty
comando e depois fazer exec fish
.