当我按下该组合键时,我会听到铃声并看到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])
在 shell 中使用cat -v
或来查看转义序列。C-v