Was ist das „^[b“-Rückwärtswort“ beim Versuch, ZSH zu konfigurieren?

Was ist das „^[b“-Rückwärtswort“ beim Versuch, ZSH zu konfigurieren?

Ich verwende einen MAC und versuche, Verknüpfungen für mein auf Iterm2 laufendes ZSH zu finden.

Wenn ich bindkey in die Shell eingebe, sehe ich (neben anderen Zuordnungen) Folgendes:

"^[b" backward-word
"^[f" forward-word

Ich weiß, dass ^ die Strg-Taste ist. Aber was, wenn ich Strg + [ + f drücke, geht es kein Wort weiter.

Was vermisse ich?

Antwort1

^ist normalerweise Strg, ^[bedeutet aber eigentlich Escape oder Alt (oder Meta, wenn Sie Emacs mögen).

Sie können für diese Tastenkombinationen also Escboder drücken.Escf

Standardmäßig funktioniert Alt auf Mac-Terminals nicht, aber iTerm2 hat eine Einstellung: „Option fungiert als [ ] Normal [ ] Meta [ ] +Esc“. Sie möchten +Esc.

Screenshot der Optionstasteneinstellungen von iTerm2.

Antwort2

Eigentlich ^[ist es die Alt-Taste. In Ihrem Fall verwendet das Terminal (Iterm2) also Alt + b und Alt + f, um ein Wort vor- und zurückzublättern. Dies wird von Ihrem Terminal gesteuert und hat nichts mit zsh zu tun.

Antwort3

ErweiternmrbAntwort:

Tatsächlich ^[bist es ESC+ boder ( Meta/Alt+ b). Sie können Zeichen wörtlich anzeigen, indem Sie ihnen Ctrl+ voranstellen v. In diesem Fall finden Sie Folgendes:

  • Ctrl+ v Ctrl+b

    ^B

  • Ctrl+ v Meta+b

    ^[b

  • Ctrl+v ESC b

    ^[b

Darüber hinaus finden Sie im zsh-Handbuch:

backward-word (ESC-B ESC-b) (unbound) (unbound)
    Move to the beginning of the previous word.

und ähnlich für forward-word:

forward-word (ESC-F ESC-f) (unbound) (unbound)
              Move to the beginning of the next word.

Antwort4

Die ^Notation wird in der GNU-Welt häufig für Steuerzeichen verwendet, wobei ^aStrg-A (ASCII 1, wobei A ASCII 65 ist) ist. Mit anderen Worten ist es eine Abkürzung für „Verwende das Zeichen 64 Plätze davor“.

Der ESCSchlüssel ist ASCII 27, also 64 Schritte vor [, ^[und ist daher die Abkürzung für ESC.

Im GNU Emacs-Editor wurden mehrere Modifikatortasten verwendet, STRG, META und andere. Beispielsweise bewegt STRG-f den Cursor ein Zeichen vorwärts und META-f bewegt den Cursor ein Wort vorwärts.

Um den vielen Tastaturen ohne META-Taste gerecht zu werden, gibt es die Konvention „ESC bedeutet, dass das nächste Zeichen als mit der META-Taste gedrückt gilt“. Daher bewegt sich in GNU Emacs der Cursor durch Drücken von ESC-f ein Wort vorwärts.

Beachten Sie, dass es heutzutage sehr selten vorkommt, dass Ctrl-[ein ESC-Zeichen ausgegeben wird, es kann aber in einer anderen Strg-Kombination lauern. Beispielsweise wird es ^^in Telnet-Sitzungen immer noch verwendet, um in den Befehlsmodus zu wechseln, daher ist es nützlich, es finden zu können.

verwandte Informationen