Ctrl + M отправляет тот же символ (RET), что и клавиша Enter на терминале. Программы не имеют возможности отличить их друг от друга, поэтому эти ключи нельзя настроить отдельно.
Ctrl + Q уже используется для XON по умолчанию, поэтому он не может быть использован Bash, но вы все равно сможете использовать его в tmux, потому что tmux использует режим необработанного ввода.
Программа с графическим интерфейсом могла прочитать с клавиатуры, что клавиша m была нажата с модификатором Ctrl и использовать Ctrl + m в качестве ярлыка, но оболочка или любая терминальная программа получает комбинации Ctrl + Key так же, как символы ascii от 0 до 26
Ctrl+@ = 0
Ctrl+A = 1
Ctrl+B = 2
и так далее. Вы можете попробовать это, чтобы увидеть значения
cat ctrlkeys <<EOF
^A^B^C^D^E^F
EOF
od -c ctrlkeys
0000000 001 002 003 004 005 006 \n
Чтобы ввести значения, нажмите Ctrl + v перед Ctrl + [af], чтобы получить их как необработанное значение.
Когда вы посмотрите на таблицу ascii (7), вы увидите контрольные коды в таблице с соответствующими символами @ .. Z слева. Например
015 13 0D CR '\r' (carriage ret) 115 77 4D M
или
011 9 09 HT '\t' (horizontal tab) 111 73 49 I
Следующий уровень, который интерпретирует управляющие коды перед bash, является изменением и распечаткой настроек терминала.
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;
см. stty (1) для значений lnext
или start
и stop
.
Также смотрите readline (3), так как bash и другие программы GNU cli используют эту библиотеку для управления строками ввода и, конечно же, bash (1) / READLINE, раздел readline на странице руководства bash.
Примечание: XYZ (NUM) означает страницу руководства XYZ из раздела NUM, поэтому результат man NUM XYZ
.
ALT + m
имхо еще удобнее.