Frage

Normalerweise finde ich interessante ZSH -Schlüsselbindungseinstellungen (durch bindkey Befehl) rund um das Web. Meine Frage ist, wie ich interpretiere, worauf diese entkommenen Sequenzen zugeordnet sind. Zum Beispiel hier ist ein Ausschnitt von oh-my-zsh's Schlüsselbindungen.zsh

bindkey "^[[H" beginning-of-line
bindkey "^[[1~" beginning-of-line
bindkey "^[[F"  end-of-line
bindkey "^[[4~" end-of-line

Gibt es eine Referenz, wie diese Keymaps dargestellt werden? Ist es auch ZSH-spezifisch oder plattformspezifisch?

Ich bin mir bewusst, dass ich entweder verwenden kann cat oder Strg-V Um die entsprechende entkommene Sequenz für bestimmte Schlüssel zu finden. Angesichts der Tatsache, dass ich brutal gewürzt hatte, um die umgekehrte Übereinstimmung zu finden, würde dies jedoch nicht für die Tasten funktionieren, die nicht auf meiner Tastatur vorhanden sind (z. B. Home/Ende auf Mac -Laptops). Daher würde ich Methoden bevorzugen, die die Tasten unabhängig von der physischen Tastatur bestimmen könnten.

War es hilfreich?

Lösung

Wenn Sie von einem typischen Unix/Linux -Ereignisfluss sprechen, ist das Bild ungefähr das folgende.

Das Terminal -Emulator -Programm empfindet die X -Ereignisse wie SO und SO -Taste, eine weitere Taste, die freigegeben wird. Diese Ereignisse können mit verfolgt werden Xev Nützlichkeit zum Beispiel. Der Terminalemulator übersetzt diese Ereignisse dann in Fluchtsequenzen.

Diese Übersetzung ist nicht in Stein gemeißelt. Es kann konfiguriert werden. Verschiedene terminale Emulatoren sind unterschiedlich konfiguriert. Zum Beispiel Xterm Übersetzung kann in eingerichtet werden .Xdefaults so wie das:

XTerm*VT100*Translations:#override \
Ctrl<Key>Left:          string(0x1B) string(OD) \n\
Ctrl<Key>Right:          string(0x1B) string(OC) \n\

Anmerkung 0x1b, es ist esc. ESC wird auch als gedruckt als ^[.

Jetzt verwendet ZSH ZLE (und Bash verwendet die Readline -Bibliothek für denselben Zweck), das einige der Sequenzen interpretiert, um sich um die Eingangszeile zu bewegen und Bearbeitungsaktionen durchzuführen.

Die folgenden Texte sollten zusätzliche Details liefern.

ZSH -Zeilen -Editor Beschreibung

Wikipedia -Artikel über Escape -Sequenzen

und

Xterm -Kontrollsequenzen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top