终端元箭头键绑定中的emacs

Zac*_*ach 8 macos emacs terminal

我刚刚使用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.不愿为类似问题创建另一个问题.

Cas*_*per 11

解决方案1

根据您提供的信息,您可以尝试一件事.您告诉emacs将这些转义序列映射到正确的键序列:

(add-hook 'term-setup-hook
  '(lambda ()
     (define-key function-key-map "\e[1;9A" [M-up])
     (define-key function-key-map "\e[1;9B" [M-down])
     (define-key function-key-map "\e[1;9C" [M-right])
     (define-key function-key-map "\e[1;9D" [M-left])))
Run Code Online (Sandbox Code Playgroud)

解决方案2

我还发现了另一种可能的解决方案,只需谷歌搜索:重新定义iTerm绑定,以匹配emacs正在寻找的内容.

http://offbytwo.com/2012/01/15/emacs-plus-paredit-under-terminal.html

从上面的引用:

返回iTerm2下的配置文件键绑定并为以下内容添加绑定:

M-up      : Esc-[1;4A
M-down    : Esc-[1;4B
M-right   : Esc-[1;4C
M-left    : Esc-[1;4D
Run Code Online (Sandbox Code Playgroud)