15

我在 Mac OS X 终端中使用 Emacs,安装了 homebrew。

我的 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-xM-x或任何东西时的样子。我注意到 CMD-right,当我打开两个终端窗口时,会在两个终端窗口之间切换,所以我认为这可能会阻止任何自定义设置。但是,我尝试了:

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

.. CMD-9 仍然什么都不做,除了哔哔声告诉我我按错了。

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

(global-set-key (kbd "C-w") 'move-end-of-line)
4

3 回答 3

17

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

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

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

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

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

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

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

上一个和这个的区别是,上一个相当于CMD+right,这个相当于CMD,然后松开CMD,按右键。两者都适用于我系统上的 OS X。

另请查看以下帖子以将您的 CMD 设置为超级键,以防您的 Emacs 尚未将其注册为这样:

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

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

(setq mac-command-modifier 'super)
于 2013-02-15T23:39:31.943 回答
7

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

(global-set-key (kbd "A-r") 'my-command)
于 2015-09-23T15:59:08.300 回答
1

第 1 步:cx cf .emacs // 打开 .emacs 文件

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

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

第 3 步:保存 .emacs 文件

第 4 步:Mx eval-buffer //Mx = Alt-x // 这会评估 .emacs 缓冲区并重新加载 Emacs

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

第 6 步:CMD-e 仍然不起作用重新启动 Emacs。

享受使用 Emacs!

于 2013-02-16T05:17:03.160 回答