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

can*_*boy 14 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)
Run Code Online (Sandbox Code Playgroud)

我不认为CMD键被设置为超级正确的,因为我没有看到s-foo在小缓冲区,我想如果我输入了C-xM-x什么的.我注意到CMD-right,当我打开两个终端窗口时,在两个终端窗口之间切换,所以我认为这可能会阻止任何自定义设置.但是,我尝试过:

(global-set-key (kbd "s-9") 'move-end-of-line) 
Run Code Online (Sandbox Code Playgroud)

..和CMD-9仍然没有任何作用,除了嘟嘟声告诉我,我已经说错了.

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

(global-set-key (kbd "C-w") 'move-end-of-line)
Run Code Online (Sandbox Code Playgroud)

nic*_*o_c 14

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

(global-set-key (kbd "s-<right>") 'move-end-of-line)
Run Code Online (Sandbox Code Playgroud)

"s"是对命令键的引用.

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

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

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

(global-set-key (kbd "\s <right>") 'move-end-of-line)
Run Code Online (Sandbox Code Playgroud)

上面和上面这个之间的区别在于上面等于CMD + right,这个等于CMD,然后释放CMD并点击右键.两者都适用于我的系统上的OS X.

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

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

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

(setq mac-command-modifier 'super)
Run Code Online (Sandbox Code Playgroud)


mag*_*rth 6

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

(global-set-key (kbd "A-r") 'my-command)
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢.这就是我在寻找我的Aquamacs :) (2认同)