Warum werden Änderungen am Stty-Schlüssel in „stty -a“ möglicherweise nicht angezeigt?

Warum werden Änderungen am Stty-Schlüssel in „stty -a“ möglicherweise nicht angezeigt?

Ich versuche, einige Tastenkombinationen in meiner Konsole (Konsole) zu ändern. Wenn ich intr auf Strg-k zuordne, indem ich

stty intr \^k

Ich sehe die Änderung nicht in

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

Warum sollte das so sein?

Beachten Sie, dass Strg-K funktioniert, um einen Interrupt zu senden. Strg-C funktioniert weiterhin, um einen Interrupt zu senden. Wenn ich versuche, Strg-C durch Ausführen von aufzuheben

stty intr ^-

oder

stty intr undef

Es wird nicht undefiniert, und stty -a wird immer noch genauso angezeigt wie zuvor, mit „intr = ^C;“.


Aktualisieren:Ich vermute jetzt, dass es etwas mit der Shell zu tun hat, die ich ausführe (Fish). In einer anderen Konsolen-Registerkarte, in der ich ein anderes Profil verwende, sodass ich Bash verwende, erhalte ich das erwartete Verhalten.

Antwort1

Das ist schon immer kaputt gewesen. Siehe

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

sttyUnd einige andere. Die Problemumgehung besteht darin, den Befehl mit bash, zsh, ksh oder sh auszuführen und dann Folgendes auszuführen exec fish:

verwandte Informationen