我刚刚使用iterm2作为终端模拟器,在终端模式下使用Emacs.app切换到emacs服务器和emacsclient . 我在使用一些键绑定时遇到了一些麻烦 . 特别是M左箭头打印字符D,M-右箭头打印C,M-向上箭头打印A和M向下箭头打印B.M-ret似乎工作,至少对于组织模式 . 我在iterm2中使用xterm默认值,并将左右选项键绑定到Esc . 我可以在org-mode中使用Esc-left或Esc-right获得M-left功能 . 这在org-mode中特别烦人 . 我是否只需重新绑定我的.emacs中的密钥?我该怎么做呢?
我看过这个http://orgmode.org/manual/TTY-keys.html#TTY-keys,但我不明白为什么终端里的箭头键不可用 .
编辑:
Cat meta-up: ^[[1;9A
Cat meta-down: ^[[1;9B
Cat meta-right: ^[[1;9C
Cat meta-left: ^[[1;9D
主要问题解决了,但我现在遇到了问题 shift-up
. "<select> undefined"
. 我尝试使用 cat
: ^[[1;2A
获得的转义序列进行类似的映射 . 不愿为类似问题创建另一个问题 .
2 回答
Solution 1
根据您提供的信息,您可以尝试一件事 . 您告诉emacs将这些转义序列映射到正确的键序列:
Solution 2
我还发现了另一种可能的解决方案,只需谷歌搜索:重新定义iTerm绑定,以匹配emacs正在寻找的内容 .
http://offbytwo.com/2012/01/15/emacs-plus-paredit-under-terminal.html
从上面的引用:
我正在回答您的'主要问题已解决,但新问题'编辑 .
我在这个问题上找到了这个人的博文: - http://webframp.com/emacs/2013/02/22/fixing-emacs-bindings-on-the-in-iterm2/
基本上,您可以使用“运行猫”和按钮技巧来查看系统/终端发送的转义码,然后添加“define-key”行来定义M- {上,下,右,左}和也是MS- {上,下,右,左} .