如何在Emacs中设置CMD密钥绑定?

时间:2013-02-15 23:36:05

标签: macos emacs homebrew

我在Mac OS X终端中使用Emacs,与自制软件一起安装。

我的CTRL键是我的C键,ALT键是Meta。

如何为CMD组合键定义键绑定?

例如,我想设置CMD-(右箭头)到行尾。


修改

我在下面尝试了@ nickcarlo的建议

(setq mac-command-modifier 'super)
(global-set-key (kbd "s-<right>") 'move-end-of-line)

我不认为CMD密钥被设置为超级正常,因为我没有在迷你缓冲区中看到s-foo,就像我输入C-x或{{1}一样或任何东西。我注意到CMD-right,当我打开两个终端窗口时,在两个终端窗口之间切换,所以我认为这可能会阻止任何自定义设置。但是,我试过了:

M-x

..而且CMD-9仍然什么也没做,只是发出嘟嘟声告诉我,我已经说错了。

设置非CMD键组合似乎工作正常,如:

(global-set-key (kbd "s-9") 'move-end-of-line) 

3 个答案:

答案 0 :(得分:13)

您可以使用以下内容进行设置:

(global-set-key (kbd "s-<right>") 'move-end-of-line)

“s”是对命令键的引用。

PS:我现在不在我的Mac上,所以我不确定你需要写什么才能将它设置为你提到的特定键,将它移动到行尾但是命令由s表示在emacs。

修改 刚刚在我的Mac上测试了这个。这是您编写的确切代码(如果您想全局设置)绑定命令键+右箭头键将光标移动到行尾。

如果上述方法不起作用,您也可以尝试

(global-set-key (kbd "\s <right>") 'move-end-of-line)

上述和上一个之间的区别在于,上述等同于CMD +右,这一个等同于CMD,然后释放CMD并点击右键。两者都在我的系统上运行OS X.

另外,请查看以下帖子,将您的CMD设置为超级密钥,以防您的Emacs尚未注册:

http://ergoemacs.org/emacs/emacs_hyper_super_keys.html

具体来说,您可以使用以下代码将您的CMD密钥设置为超级:

(setq mac-command-modifier 'super)

答案 1 :(得分:6)

在Aquamacs中,对我有用的是以下

(global-set-key (kbd "A-r") 'my-command)

答案 2 :(得分:1)

步骤1:c-x c-f .emacs //打开.emacs文件

步骤2:在.emacs文件末尾添加以下行

    ;; changing the command to control
    (setq mac-command-modifier 'control)

第3步:保存.emacs文件

步骤4:M-x eval-buffer // M-x = Alt-x //这会计算.emacs缓冲区并重新加载Emacs

步骤5:尝试CMD-e转到行尾。 //现在CMD就像控件一样

步骤6:仍然CMD-e无法重启Emacs。

享受使用Emacs!