Когда я нажимаю эту комбинацию клавиш, я слышу звонок и вижу, 0D
как символы печатаются в буфере вместо выполнения команды, привязанной к этой комбинации клавиш (в данном случае org-table-delete-column). M-<left-arrow>
Однако работает нормально.
Покопавшись, я думаю, что M-<any-arrow>
это работает только потому, что iTerm настроен на отправку определенных шестнадцатеричных последовательностей на терминал для этих клавиш. Когда я создал новый профиль без этих привязок, все клавиши M-<arrow>
вызвали звонки и символы, которые были напечатаны.
Итак, у меня есть несколько вопросов. Во-первых, что это за шестнадцатеричные последовательности? Какие последовательности мне нужно получить, чтобы они M-S-<left-arrow>
были выданы правильно? Почему в iTerm все это не определено заранее? И, наконец, зачем они вообще нужны? Почему iTerm не может просто отправлять клавиши по мере их нажатия на терминал и заставлять их работать так, как им положено, за исключением тех сочетаний клавиш, которые требуются в iTerm и Mac OS X.
решение1
Попробуйте добавить эти строки в ~/.emacs
:
(define-key input-decode-map "\e[1;10A" [S-M-up])
(define-key input-decode-map "\e[1;10B" [S-M-down])
(define-key input-decode-map "\e[1;10C" [S-M-right])
(define-key input-decode-map "\e[1;10D" [S-M-left])
Используйте cat -v
или C-v
в оболочке, чтобы увидеть управляющие последовательности.