如何在emacs init.el中引用元和箭头键组合?

时间:2016-07-18 17:42:32

标签: emacs key-bindings

我试图在我的emacs配置中覆盖Meta +左/右箭头键,但无法弄清楚如何引用键序列。

如果我直接与Emacs交互,我可以输入 “M-x,全局设置键,M-,下一个缓冲区”,它工作正常。但我无法弄清楚如何在我的init.el文件中键入它。这些是我尝试过的一些事情:

(global-set-key "\M right" 'next-buffer)
(global-set-key "\M <right>" 'next-buffer)
(global-set-key [\M right] 'next-buffer)
(global-set-key [M right] 'next-buffer)
(global-set-key [M-right] 'next-buffer)
(global-set-key (kbd M-<right>) 'next-buffer)
(global-set-key [M (kbd <right>)] 'next-buffer)

更多信息:

好的,这本身可以正常工作:(global-set-key [M-right] 'next-buffer)(谢谢) - 它不适用于虚拟机中的iTerm2(小细节:) 对于该环境:M-x describe-key无法打开帮助,但在*Messages*打印:ESC <right> (translated from ESC M-[ C) is undefined

这就是为什么我感到困惑,并且无法将其粘贴到kbd中。 这就是为什么我不认为它被另一种模式所压倒。

2 个答案:

答案 0 :(得分:4)

指定密钥绑定的最简单方法是始终使用 kbd

(global-set-key (kbd "<M-right>") 'next-buffer)

kbd将外部键描述作为参数,即当您使用C-h k时Emacs告诉您的内容。

使用C-h k,按住Meta(例如Alt)键,然后按右箭头键。缓冲区*Help*告诉您此密钥序列已写入"<M-right>"。这就是你传递给kbd的内容。

答案 1 :(得分:0)

解决:(global-set-key (kbd "ESC <right>") 'next-buffer)

谢谢 - 我需要kbd的组合以及传递它的内容。