19 votes

Remappage des touches dans iterm2

J'essaie de remapper certaines des combinaisons de touches par défaut dans iTerm2, et j'aimerais comprendre ce qui se passe lorsque je lie les touches à "Envoyer des codes hexadécimaux".

Un post précédent m'a aidé à commencer à remapper les combinaisons de touches ctrl-a et ctrl-e en cmd-gauche et cmd-droite, respectivement, mais je voudrais remapper d'autres combinaisons de touches également. ( Lien vers l'article précédent de Stackoverflow ).

J'ai vaguement compris qu'il s'agit de codes hexagonaux, mais je n'arrive pas à savoir où aller pour comprendre ce qui se passe ou ce qu'il faut faire.

0 votes

N'a rien à voir avec bash. Suppression de la balise.

21voto

Ces codes hexadécimaux ne sont que des séquences d'octets. Par exemple, le mappage d'une combinaison de touches en 0x66 0x6f 0x6f le ferait insérer foo . 0xc3 0xa4 insérerait ä si vous utilisez UTF-8. 0x1b 0x1b 0x5b 0x43 signifie escape escape [ C .

Certaines séquences d'octets comme Séquences d'échappement ANSI et même les octets uniques comme les caractères de contrôle ASCII ont une signification particulière dans les terminaux.

Pour faire et aller au début et à la fin de la ligne, vous pouvez les assigner à 0x01 (^A en notation caret) et 0x05 (^E en notation caret) :

  • : Envoyer Codes Hex : 0x01
  • : Envoyer Codes Hex : 0x05

Vous pouvez faire en sorte que la suppression d'un mot soit avancée en l'attribuant à \ed :

  • : Envoyer ^[ d

Changement et \eb y \ef dans les préférences d'iTerm les modifierait également dans les programmes qui ne prennent pas en charge les raccourcis clavier de type readline ou emacs. Une autre option est d'ajouter ceci à ~/.inputrc :

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

Vous pouvez exécuter read et appuyez sur des combinaisons de touches pour voir quels caractères ils insèrent. Par exemple, il insère ^[^[[D par défaut, où ^[ est l'évasion dans notation du caret .

Voir aussi http://code.google.com/p/iterm2/wiki/Keybindings .

0 votes

Merci. Je suis tombé sur cette réponse lorsque j'ai cherché une solution à ma question ici . Comment puis-je obtenir le code hexadécimal d'une combinaison de touches spécifique ? (dans mon cas, je suis intéressé par les combinaisons Ctrl+Alt+<char> avec <char> être i , j , k , l y u )

9voto

patrick Points 282

Je suggère d'installer Codes clés (0 $) par Many Tricks et découvrez les raccourcis par vous-même.

Par exemple, si vous voulez remapper le raccourci par défaut pour supprimer (vers l'avant) un personnage - qui est Ctrl-D ( D ) - pour être aussi simple que d'appuyer sur la touche de suppression avant ( ), vous

  1. Ouvrez l'application et appuyez sur Ctrl-D

    Key Codes Example

  2. De retour dans iTerm 2, ajoutez le raccourci Unicode dans iTerm > Préférences > Clés

    iTerm Send Hex Codes

Note : Ne faites pas de copier-coller, tapez simplement l'Unicode sans espace.

1 votes

La valeur de l'action que vous avez saisie doit être 0x4 , pas 4/0x4

3voto

ExistMe Points 131

La meilleure façon que j'ai trouvée était soit d'envoyer des codes de touches (comme décrit par @pattulus) ou d'utiliser les liaisons de touches de vim.

Note sur les codes clés : En fait, vous ne pouvez pas le faire fonctionner en envoyant la chaîne unicode comme décrit ci-dessus, vous devez envoyer à la fois le modificateur et la clé en cas de Control + D vous devez envoyer ceci comme code : 0x840101 0x4 donde 0x840101 est le modificateur de la touche de contrôle et peut être obtenu par le biais de Code clé .

Note sur l'envoi en tant que séquence vim : Comme décrit dans iTerm2 documentation vous pouvez envoyer un code de clé au format vim-bindings, comme suit \<C-d> pour l'envoi Control + D (notez que \ est important).

Je préfère personnellement le key binding de vim car il est plus lisible et vous comprendrez plus tard ce que vous avez fait.

2voto

Bratch Points 1531

Vérifiez Mousqueton .

Dans cet outil, vous pouvez créer des mappages personnalisés clés qui sont spécifiques aux applications. Il est fourni avec quelques outils pour vous aider.

0voto

neaumusic Points 317

Preferences Profile Keys ajoutez les raccourcis suivants :


Envoyer la séquence d'échappement Esc+ b

Envoyer la séquence d'échappement Esc+ f

Envoyer la séquence d'échappement Esc+ [H

Envoyer une séquence d'échappement Esc+ [F

Delete Envoyer Code Hex 0x18 0x7f (ajouter bindkey "^X\\x7f" backward-kill-line à .zshrc )

Delete Envoyer le code hexadécimal 0x1B 0x08

Del Envoyer le code hexadécimal 0x0b

Del Envoyer la séquence d'échappement d

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X