如何在emacs中设置左右ALT的快捷方式?

如何在emacs中设置左右ALT的快捷方式?,emacs,configuration,Emacs,Configuration,我想将Alt_L+j设置为'backward char',并将Alt_R+j设置为'windmove left'。 下列的 我尝试了以下配置。但它不起作用 (setq ns-right-alternate-modifier nil) (global-set-key (kbd "M-j") 'backward-char) ;; it works (global-set-key (kbd "Alt_R-j") 'windmove-left) ;; it does not work (global-s

我想将Alt_L+j设置为'backward char',并将Alt_R+j设置为'windmove left'。 下列的 我尝试了以下配置。但它不起作用

(setq ns-right-alternate-modifier nil)
(global-set-key (kbd "M-j") 'backward-char) ;; it works
(global-set-key (kbd "Alt_R-j") 'windmove-left) ;; it does not work
(global-set-key (kbd "M_R-j") 'windmove-left) ;; it does not work
(global-set-key (kbd "Meta_R-j") 'windmove-left) ;; it does not work
打开我的emacs时,会出现以下错误: 错误:密钥序列A l t R-j以非前缀密钥A开头。 似乎Alt\u R、M\u R、Meta\R都是非法的。我不知道应该是什么。 如有任何建议,我们将不胜感激

My.emacs除了上面的语句外没有其他内容。这是版本。 GNU Emacs 23.1.1(i486 pc linux GNU,GTK+版本2.20.1)
2012年5月18日在roseapple上发布,由Debian修改。

只要问问Emacs就知道了。如果识别出键序列,则在其前面加上C-hk将始终为您提供插入
kbd
的语法

编辑:

你读错了

第一行告诉您“(键序列)运行命令…”

这会告诉你刚才键入的序列。(同一命令也可能绑定到其他键这一事实并不是您想要的。)

您所做的是将命令绑定到Ctrl+Meta+j(我确信如果您键入该命令,它将工作)


然而,从您所说的很明显,实际报告的键序列是M-j,这意味着您的右alt键充当元修饰符(很可能就像您的左alt键一样),因此很可能您在让操作系统区别对待它们的第一步中没有成功。

alt\R和alt\L是键,不是修饰语。这些键与修饰符相关联(例如通过xmodmap),但如果您想区分它们,则需要将它们与不同的修饰符相关联(例如,一个与“meta”修饰符相关联,另一个与“alt”修饰符相关联)。Emacs依赖于窗口系统来进行分类,因此您必须通过xmodmap进行分类


完成后,您将能够为其中一个绑定到
[?\A-j]
,为另一个绑定到
[?\M-j]

输入C-hk,右alt+j,有消息:“它绑定到M-jc-M-j”。我尝试了以下配置:(全局设置键(kbd“C-M-j”)‘windmove left);;不行,我误解了你说的话。我的意图是使用右alt+j,而不是Ctrl+alt+j。这正是“不工作”的意思。