Tasten in iterm2 neu zuordnen

14

Ich versuche, einige der Standardschlüsselkombinationen in iTerm2 neu zuzuordnen, und möchte verstehen, was passiert, wenn ich Schlüssel an "Hex-Codes senden" binde.

Ein vorheriger Beitrag hat mir geholfen, die Tastenkombinationen Strg-A und Strg-E den Tastenkombinationen Cmd-Links und Cmd-Rechts zuzuordnen. Ich möchte jedoch auch andere Tastenkombinationen neu zuordnen. ( Link zum vorherigen Stackoverflow-Beitrag ).

Ich habe eine vage Vorstellung davon, dass es sich um Hex-Codes handelt, aber ich bin an einem Punkt angelangt, an dem ich nicht herausfinden kann, wohin ich als nächstes gehen soll, um zu verstehen, was los ist oder was zu tun ist.

Gemeinschaft
quelle
Hat nichts mit Bash zu tun. Tag entfernt.

Antworten:

16

Diese Hex-Codes sind nur Folgen von Bytes. Wenn Sie beispielsweise eine Tastenkombination zuordnen 0x66 0x6f 0x6f, wird sie eingefügt foo. 0xc3 0xa4würde ä einfügen, wenn Sie UTF-8 verwenden. 0x1b 0x1b 0x5b 0x43bedeutet escape escape [ C.

Einige Sequenzen von Bytes wie ANSI-Escape-Sequenzen und sogar einzelne Bytes wie ASCII-Steuerzeichen haben in Terminals eine spezielle Bedeutung.

Um ⌘ ← und ⌘ → an den Anfang und das Ende der Zeile zu setzen, können Sie sie 0x01 (^ A in der Caret-Notation) und 0x05 (^ E in der Caret-Notation) zuweisen:

  • ⌘ ←: Hex-Codes senden: 0x01
  • ⌘ →: Hex-Codes senden: 0x05

Sie können ein Wort vorwärts löschen lassen, indem Sie es zuweisen \ed:

  • ⌥⌦: Senden ^ [d

Durch Ändern von ⌥ ← und ⌥ → zu \ebund \efin den iTerm-Einstellungen werden diese auch in Programmen geändert, die keine Readline- oder Emacs-Tastaturbelegung unterstützen. Eine andere Möglichkeit ist, dies zu ~ / .inputrc hinzuzufügen :

"\e\e[D": backward-word
"\e\e[C": forward-word

Sie können readTastenkombinationen ausführen und drücken, um zu sehen, welche Zeichen sie einfügen. Beispiel: ⌥ ← fügt ^[^[[Dstandardmäßig ein, wobei ^[in der Caret-Notation ein Escapezeichen angezeigt wird .

Siehe auch http://code.google.com/p/iterm2/wiki/Keybindings .

Lri
quelle
Vielen Dank. Auf diese Antwort stoße ich, wenn ich hier nach einer Lösung für meine Frage suche . Wie kann ich den Hex-Code für eine bestimmte Schlüsselkombination nachschlagen? (in meinem Fall bin ich in den Kombinationen interessiert Ctrl+Alt+<char>mit zu <char>sein i, j, k, lund u)
Amelio Vazquez-Reina
6

Ich würde vorschlagen, Key Codes ($ 0) mit Many Tricks zu installieren und die Verknüpfungen selbst herauszufinden.

Wenn Sie zum Beispiel die Standardverknüpfung für das (Weiter-) Löschen eines Zeichens neu zuordnen möchten - dies ist Strg-D ( ⌃D) -, um so einfach wie das Drücken der Weiter-Entf-Taste ( ) zu sein, würden Sie…

  1. Öffnen Sie die App und drücken Sie Ctrl-D

    Beispiel für Tastencodes

  2. Fügen Sie in iTerm 2 die Unicode-Verknüpfung unter iTerm> Einstellungen> Tasten hinzu

    iTerm Senden Sie Hex-Codes

Hinweis: Kopieren Sie es nicht und fügen Sie es nicht ein, sondern geben Sie den Unicode ohne Leerzeichen ein.

Patrick
quelle
2

Der beste Weg, den ich gefunden habe, war entweder das Senden von Schlüsselcodes (wie von @pattulus beschrieben) oder die Verwendung von vim-Schlüsselbindungen.

Hinweis auf Tastencodes: Eigentlich kann man es nicht durch Senden des Unicode - String funktioniert , wie oben beschrieben, müssen Sie sowohl den Modifikator und den Schlüssel zu sammen , falls senden von Control+ DSie dies als Code senden müssen: 0x840101 0x4wo 0x840101ist die Steuerungstaste Modifikator und kann über den Schlüsselcode bezogen werden .

Hinweis zum Senden als VIM-Sequenz : Wie in der iTerm2- Dokumentation beschrieben , können Sie einen Schlüsselcode im VIM-Bindings-Format \<C-d>senden, z. B. zum Senden von Control+ D(dies \ist wichtig).

Ich persönlich bevorzuge die VIM-Schlüsselbindung, da sie besser lesbar ist und Sie später verstehen, was Sie getan haben.

ExistMe
quelle
1

Check out Karabiner .

Mit diesem Tool können Sie wichtige benutzerdefinierte Zuordnungen für bestimmte Anwendungen erstellen. Es wird mit einigen Tools geliefert, die dabei helfen.

bdecaf
quelle