Shell gibt manchmal die Ausgabe von ESC ^ [Zeichen vor der Escape-Sequenz aus

469
Accumulator

Beim Drücken einer Pfeiltaste (normalerweise nach oben) innerhalb einer Shell kann es vorkommen, dass das Terminal oder die Shell ESCvor der Escape-Sequenz kein Zeichen ausgibt. Wenn ich also den Aufwärtspfeil drücke, um den letzten Befehl zu sehen, wird er [Aauf bash und ausgegeben OAauf zsh anstelle des letzten Befehls. Es funktioniert korrekt, wenn ich das nächste Mal die Pfeiltaste drücke.

Dies geschieht unabhängig vom verwendeten Terminal-Emulator oder der verwendeten Shell (wird jedoch OAanstelle von [Azsh verwendet).

Ich kann die genauen Umstände nicht erkennen, in denen dies vorkommt, es scheint etwas zufällig, aber es passiert normalerweise das nächste Mal, wenn ich nach dem Fensterwechsel mit meinem Fenstermanager (i3) einen Pfeil drücke.

Das liegt nicht daran, dass ich nach dem Wechseln der Fenster zu schnell die Taste gedrückt habe, weil ich Fenster wechseln kann, Text in die Shell eingeben kann und danach eine Pfeiltaste drückt, und es wird immer noch [A/ ausgegeben OA.

Es könnte damit zusammenhängen, dass ich als Fenstermanager i3 verwende.

Kann ich irgendetwas tun, um dieses Problem zu beheben oder zu debuggen?

2
Ich gehe davon aus, dass Sie die Taste "ESC" gedrückt haben, bevor dieses Problem auftritt. Es ist nicht so, dass der Eröffnungs-ESC der Sequenz verschluckt wird; es wird stattdessen mit dem zuvor gepufferten kombiniert (die zwei ESC-Bytes bilden etwas), und dann werden die folgenden Zeichen "OA" oder "[A" als einfache String-Literale behandelt. egmont vor 6 Jahren 0
Wenn ich vor der Ausgabe eine ESC-Taste drücke, befindet sich diese in einem anderen Terminal. Das Drücken der Taste "ESC" in einem anderen Terminal (normalerweise innerhalb von vim) und dann das Wechseln der Terminals * verursacht * manchmal das Problem, ist jedoch nicht konsistent reproduzierbar. Accumulator vor 6 Jahren 0
Wie wechselt ihr Fenster? Ist ein Tastendruck wie Alt + Tab beteiligt? Was ist es genau? Versuchen Sie zu testen und zu berichten, wenn eine Korrelation besteht: Wechseln Sie vom Terminal zu einem anderen Fenster, wechseln Sie dann zurück und drücken Sie einen Pfeil. Probieren Sie alle Kombinationen aus (0. Tastenanschlag vorwärts, Tastenanschlag zurück; 1. Tastenanschlag nach vorne, Mausklick zurück; 2. Klicken Sie nach vorne, Tastenanschlag zurück; 3. Klicken Sie nach vorne, klicken Sie zurück). Kamil Maciorowski vor 6 Jahren 0
Ich wechsle immer Fenster mit `alt + hjkl` (alt ist die Mod-Taste) Accumulator vor 6 Jahren 0

1 Antwort auf die Frage

0
DGoiko

Ich habe nicht genug Ruf, um Kommentare zu posten. Bitte stimmen Sie mich nicht ab, sondern verschieben Sie meine Antwort in die Kommentare, wenn Sie das Gefühl haben, es sei sehr dumm:

Ich sehe vier mögliche Szenarien (sehr allgemein aufgrund fehlender Details zu Treiber, Kernel, Distribution, Tastaturmodell ...):

  1. Defekte Tastatur
  2. Problem mit dem Fenstermanager
  3. Treiber / Kernel Problem.
  4. Gebietsschema Problem.

Mögliche Lösungen:

  1. Ich habe zerbrochene Tastaturen gesehen, die sich auf ähnliche Weise verhalten und seltsame Tastensignale zu zufälligen Zeitpunkten gesendet haben, insbesondere (aber nicht nur), nachdem Sie andere spezifische Tasten gedrückt haben (Sie sagten, dass Sie auch über die Tastatur Fenster wechseln). Probieren Sie eine andere Tastatur aus, um zu sehen, ob es immer noch passiert. Ich habe dies auf drahtlosen Tastaturen eher gesehen, aber ich hatte auch ein paar seltsame Dinge auf kabelgebundenen Tastaturen. Überprüfen Sie, ob dies manchmal im Konsolenmodus geschieht, ohne dass der Fenstermanager geöffnet ist.
  2. Mit i3 ist möglicherweise etwas nicht in Ordnung (ohne weitere Details kann ich keine tiefere Antwort geben). Aktualisieren Sie i3, oder installieren Sie einen anderen Fenstermanager, und überprüfen Sie, ob der Fehler erneut auftritt.
  3. Wenn Sie mit der Tastatur zwischen den Fenstern wechseln, kann es sein, dass die Tastaturpuffer sie nicht richtig lesen. Aktualisieren Sie den Kernel, um zu sehen, ob er das Que-Problem löst. Wenn Sie eine Virtualisierungssoftware installiert haben, ist möglicherweise der Treiber bei der Installation der Tastatur-Hooks kaputt gegangen ...
  4. In Ihren Tastatur-Gebietsschemas kann etwas merkwürdig sein. Obwohl dies sehr unwahrscheinlich ist, können Sie versuchen, eine neue Datei mit dem Namen locales abzurufen oder zu generieren.
1. Es passiert immer noch, definitiv nicht die Tastatur. 2. Verwenden Sie jetzt bspwm, keinen Unterschied. 3. Ich werde das bald versuchen. 4. Versuchen Sie es jetzt. Accumulator vor 6 Jahren 0