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

ray*_*ray 6 emacs key-bindings

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

如果我直接与 Emacs 交互,我可以输入“Mx,global-set-key,M-,next-buffer”,它工作得很好。但我不知道如何将其输入到我的 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)
Run Code Online (Sandbox Code Playgroud)

ETC。

更多信息:

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

这就是为什么我很困惑并且无法将其粘贴到 kbd 中。这就是为什么我认为它不会被另一种模式所超越。

Dre*_*rew 6

指定键绑定的最简单方法始终是使用kbd.

(global-set-key (kbd "<M-right>") 'next-buffer)
Run Code Online (Sandbox Code Playgroud)

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

使用C-h k,按住 Meta(例如 Alt)键,然后点击向右箭头键。Buffer*Help*告诉你这个按键序列被写入了"<M-right>"。这就是您传递给的内容kbd