Ctrl + M invia lo stesso carattere (RET) del tasto Invio nel terminale. I programmi non hanno modo di distinguerli, quindi questi tasti non possono essere configurati separatamente.
Ctrl + Q è già utilizzato per XON per impostazione predefinita, quindi non può essere utilizzato da Bash, ma dovresti comunque essere in grado di usarlo in tmux, perché tmux utilizza la modalità di input non elaborata.
Un programma GUI potrebbe leggere dalla tastiera, che il tasto m è stato premuto con il modificatore Ctrl e usare Ctrl + m come scorciatoia, ma una shell o qualsiasi programma terminale riceve le combinazioni Ctrl + tasto proprio come caratteri ASCII da 0 a 26
Ctrl+@ = 0
Ctrl+A = 1
Ctrl+B = 2
e così via. Puoi provare questo per vedere i valori
cat ctrlkeys <<EOF
^A^B^C^D^E^F
EOF
od -c ctrlkeys
0000000 001 002 003 004 005 006 \n
Per inserire i valori premere Ctrl + v prima di Ctrl + [af] per non interpretarli come valore non elaborato.
Quando guardi la tabella ascii (7) puoi vedere i codici di controllo in una tabella con i corrispondenti caratteri @ .. Z a sinistra. Per esempio
015 13 0D CR '\r' (carriage ret) 115 77 4D M
o
011 9 09 HT '\t' (horizontal tab) 111 73 49 I
Il livello successivo che interpreta i codici di controllo prima di bash è stty (modifica e stampa le impostazioni del terminale)
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;
vedi stty (1) per i significati di lnext
o start
e stop
.
Vedi anche readline (3) come bash e altri programmi cli GNU usano quella libreria per controllare le linee di input e ovviamente bash (1) / READLINE, la sezione readline della pagina del manuale di bash.
Nota: XYZ (NUM) indica la pagina manuale XYZ della sezione NUM, quindi il risultato di man NUM XYZ
.
ALT + m
è un imho ancora più conveniente.