Les touches de fonction et de curseur avec modificateurs envoient généralement séquences d'échappement qui consistent en caractère d'échappement suivi de quelques caractères ASCII imprimables.
Pour voir quelle séquence d'échappement une touche ou un accord de touches envoie, appuyez sur Ctrl+V et ensuite cette clé (accord). Ctrl+V supprime la signification spéciale du caractère suivant, de sorte que le caractère d'échappement au début de la séquence d'échappement est inséré comme tel. Par exemple :
mymac% ^V^\[\[D
El Left envoie la séquence de trois caractères : échappement, crochet gauche, D majuscule. ^[
part est un caractère unique non imprimable qui est représenté visuellement comme deux caractères, et que zsh affiche en vidéo inverse. Toutes les séquences d'échappement standard commencent par escape puis par une parenthèse gauche ou un O majuscule.
Alternativement, exécutez cat
puis appuyez sur la touche .
mymac% cat
^\[\[D
Avec le Alt il y a une difficulté supplémentaire : il est généralement codé comme le caractère d'échappement suivi de ce que la touche non modifiée envoie. Par exemple, Alt+1 envoie l'évasion, chiffre 1. Pour les touches qui envoient elles-mêmes une séquence d'échappement, le comportement dépend du terminal : certains envoient une séquence d'échappement différente, d'autres envoient la même séquence d'échappement, d'autres encore suivent la règle générale et finissent donc par envoyer deux caractères d'échappement suivis d'un caractère imprimable. Dans ce dernier cas, avec la touche Ctrl+V seul le premier caractère d'échappement est inséré littéralement, et la touche a ensuite son effet normal. Avec la méthode cat
vous verrez quelque chose commençant par ^[^[
.
De nombreux terminaux envoient la même séquence d'échappement pour une touche donnée avec un large éventail de modificateurs. Les bons terminaux vous permettent de configurer les séquences d'échappement. Ceci est possible à la fois avec Terminal et avec iTerm (dans les deux cas, à partir de l'onglet "Touches" ou "Clavier" de chaque profil).