Bash verschlingt Ch, Cj, Ck und Cl

Bash verschlingt Ch, Cj, Ck und Cl

Ich habe dieses Problem entdeckt, als ich versucht habe, Ch ... Cl zuzuordnen, um in Tmux zwischen Fenstern zu wechseln. Als ich die Tasten gedrückt habe, wurde nichts an Tmux übertragen.

Dies ist eine Ubuntu 14.04 VM mit Bash 4.3.11. Ich melde mich per SSH von meinem Mac OS Mojave an.

Ich kann diese Tasten auf meinem Mac verwenden. Wenn ich sie beispielsweise in cat eingebe, empfängt es die Tasten und gibt einen Text aus:

  ~/mac: cat
^H^K^L

Wenn ich cat über SSH auf meiner VM ausführe und dabei ein Terminal explizit zugewiesen habe, funktioniert es ebenfalls:

  ~/mac: ssh -t vm "cat"
^H^K^L

Aber wenn ich mich bei meiner VM anmelde und „cat“ ausführe, werden die Zeichen verschluckt, anstatt an „cat“ übergeben zu werden:

  ~/vm: cat


# hitting C-h, C-k, C-l...nothing happens

Wie das Experiment catzeigt, ist es nicht das Terminal auf meiner VM, das die Eingaben verschlingt. Meines Wissens geht die Eingabe vom Terminal über Bash an den in Bash laufenden Prozess, was darauf hindeutet, dass Bash die Eingaben verschlingt. Wie kann ich das weiter debuggen?

Antwort1

Haftungsausschluss: Ich würde dies als Kommentar aufschreiben, aber ich habe nicht genug Karma, also bitte gebt mir keine Downvotes.

Bash verwendet die GNU-Readline-Bibliothek zur Bearbeitung der Befehlszeile und für Tastenkombinationen.

Können Sie die Ausgabe dieses Befehls posten, damit wir sehen können, ob an „Control-hjkl“ etwas gebunden ist, das die Tastenfolge und das Durchkommen verhindern würde:

bind -p | grep -v "(not bound)"

verwandte Informationen