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 des clés à "Envoyer des codes hexadécimaux".
Un article 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 également remapper d'autres combinaisons de touches. ( Lien vers le post précédent de Stackoverflow ).
J'ai une vague compréhension qu'il y a des codes hexadécimaux impliqués, mais je suis à un point où je ne peux pas comprendre où aller ensuite pour comprendre ce qui se passe ou quoi faire.
Réponses:
Ces codes hexadécimaux ne sont que des séquences d'octets. Par exemple, mapper une combinaison de touches pour la
0x66 0x6f 0x6f
faire insérerfoo
.0xc3 0xa4
insérerait ä si vous utilisez UTF-8.0x1b 0x1b 0x5b 0x43
signifieescape escape [ C
.Certaines séquences d'octets comme les séquences d'échappement ANSI et même les octets uniques comme les caractères de contrôle ASCII ont des significations spéciales dans les terminaux.
Pour faire passer ⌘ ← et ⌘ → au début et à la fin de la ligne, vous pouvez les affecter à 0x01 (^ A en notation caret) et 0x05 (^ E en notation caret):
Vous pouvez faire ⌥⌦ supprimer un mot en avant en l'attribuant à
\ed
:Changer ⌥ ← et ⌥ → vers
\eb
et\ef
dans les préférences d'iTerm les changerait également dans les programmes qui ne prennent pas en charge les raccourcis clavier readline ou emacs. Une autre option consiste à ajouter ceci à ~ / .inputrc :Vous pouvez exécuter
read
et appuyer sur des combinaisons de touches pour voir quels caractères ils insèrent. Par exemple, ⌥ ← insère^[^[[D
par défaut, où^[
est escape en notation caret .Voir également http://code.google.com/p/iterm2/wiki/Keybindings .
la source
Ctrl+Alt+<char>
avec<char>
êtrei
,j
,k
,l
etu
)Je vous suggère d'installer des codes clés (0 $) par Many Tricks et de découvrir les raccourcis par vous-même.
Par exemple, si vous souhaitez remapper le raccourci par défaut pour (en avant) supprimer un caractère - qui est Ctrl-D (
⌃D
) - pour être aussi simple que d'appuyer sur la touche de suppression en avant (⌦
), vous feriez ...Ouvrez l'application et appuyez sur
Ctrl-D
De retour dans iTerm 2, ajoutez le raccourci Unicode dans iTerm> Préférences> Clés
Remarque: ne le copiez pas et ne le collez pas, saisissez simplement l'Unicode sans espaces.
la source
La meilleure façon que j'ai trouvée était soit d'envoyer des codes clés (comme décrit par @pattulus ou d'utiliser des raccourcis clavier vim.
Remarque 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+ Dvous devez envoyer cela comme code:
0x840101 0x4
où0x840101
est le modificateur de la touche de contrôle et peut être obtenu via Key Code .Remarque sur l'envoi en tant que séquence vim : Comme décrit dans la documentation iTerm2 , vous pouvez envoyer un code clé au format vim-bindings tel que
\<C-d>
pour l'envoi Control+ D(notez que\
c'est important).Personnellement, je préfère la liaison de clés vim car elle est plus lisible et vous comprendrez plus tard ce que vous avez fait.
la source
Découvrez Karabiner .
Dans cet outil, vous pouvez créer des mappages personnalisés clés spécifiques aux applications. Il est livré avec quelques outils pour vous aider.
la source