Ctrl + M envoie le même caractère (RET) que la touche Entrée du terminal. Les programmes n'ont aucun moyen de les différencier, ces touches ne peuvent donc pas être configurées séparément.
Ctrl + Q est déjà utilisé par défaut pour XON , donc il ne peut pas être utilisé par Bash, mais vous devriez toujours pouvoir l'utiliser dans tmux, car tmux utilise le mode d'entrée brut.
Un programme GUI pourrait lire à partir du clavier, que la touche m a été enfoncée avec le modificateur Ctrl et utiliser Ctrl + m comme raccourci, mais un shell ou tout autre programme terminal reçoit les combinaisons Ctrl + Touche comme des caractères ascii de 0 à 26
Ctrl+@ = 0
Ctrl+A = 1
Ctrl+B = 2
etc. Vous pouvez essayer ceci pour voir les valeurs
cat ctrlkeys <<EOF
^A^B^C^D^E^F
EOF
od -c ctrlkeys
0000000 001 002 003 004 005 006 \n
Pour entrer les valeurs, appuyez sur Ctrl + v avant Ctrl + [af] pour qu'elles ne soient pas interprétées comme une valeur brute.
Lorsque vous regardez le tableau ascii (7), vous pouvez voir les codes de contrôle dans un tableau avec les caractères correspondants @ .. Z sur la gauche. Par exemple
015 13 0D CR '\r' (carriage ret) 115 77 4D M
ou
011 9 09 HT '\t' (horizontal tab) 111 73 49 I
La couche suivante qui interprète les codes de contrôle avant bash est stty (modifiez et imprimez les paramètres du terminal)
stty -a
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
voir stty (1) pour les significations de lnext
ou start
et stop
.
Voir aussi readline (3) car bash et d'autres programmes GNU cli utilisent cette bibliothèque pour contrôler les lignes d'entrée et bien sûr bash (1) / READLINE, la section readline de la page de manuel bash.
Remarque: XYZ (NUM) signifie la page de manuel XYZ de la section NUM, donc le résultat de man NUM XYZ
.
ALT + m
est encore plus pratique à mon humble avis.