Ändern des „Meta“-Schlüssels für die Readline-Bibliothek

Ändern des „Meta“-Schlüssels für die Readline-Bibliothek

Ich bin daran interessiert, den metaSchlüssel für dieZeile lesenBibliothek (Befehlszeilenbearbeitung in beispielsweise Bash) von der Alt-Taste auf eine andere beliebige Taste (wie die Feststelltaste).

Zum Kontext: Ich verwende bereits den Fenstermanager XMonad und habe die Alt-Taste an eine Reihe von benutzerdefinierten Funktionen gebunden, die Vorrang vor den Tastenkombinationen des Terminals haben.

Ich habe versucht, mithilfe von xmodmap eine Taste der Escape-Taste zuzuordnen, aber dadurch ist es nicht möglich, die Taste gedrückt zu halten und mehrere Bewegungstastenanschläge hintereinander auszuführen.

Ist es möglich, dass Readline einen anderen ModModifikator als Metaschlüssel behandelt?

Danke!

Antwort1

Readline erkennt eine Meta-Tastenkombination, indem es prüft, ob in dem Zeichen, das es vom Terminal empfängt, ein bestimmtes Bit gesetzt ist, oder, aufgrund der Art und Weise, wie dies für Meta funktioniert, ob das Zeichen in einen bestimmten Wertebereich am Anfang der in einem 8-Bit-Byte gespeicherten Werte fällt. Siehechardefs.hfür die beteiligten Dienstprogrammmakros.

Sie können den Sinn für Meta-Eigenschaften anpassen, indem Sie die Bibliothek so ändern, dass Metazeichen auf andere Weise erkannt werden, indem Sie diese Makros neu definieren und dann Ihre Shell mit dieser angepassten Readline neu verknüpfen. Ein weniger invasiver Ansatz wäre, Ihr Terminal so zu konfigurieren, dass es eine andere Taste als Setzen des Metabits versteht, oder eine Art Eingabemanager auf Systemebene zu verwenden, der dasselbe kann.

Antwort2

Die Readline-Bibliothek weiß absolut nichts über den in Ihrem Terminal verwendeten Modifikator, der sich wie eine Metataste verhält. Also nein: Was Sie verlangen, ist nicht möglich.

verwandte Informationen