2016-01-21 77 views
1

我最喜欢的emacs插件之一是扩展区域。emacs:扩展区域的键绑定

它以智能的方式选择块代码。他们准备推荐绑定 关键C- =扩展区域。但是,在Mac OS终端中,C- =不由操作系统传递给应用程序。

那么我可以在OS X上使用两种组合键? (它必须快速按下,因为我几乎每分钟都使用扩展区域)

+1

我会建议一个功能键(例如F9):http://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html。您可以通过'C-h k'确定给定的键是什么,并决定是否要覆盖它。许多在GUI中不同的密钥在终端中被别名为相同的密钥,但根本没有办法解决这个问题,并且每个用户都决定哪些默认值不够重要。 – jpkotta

回答

1

您无法使用C- =的原因是因为您有一个使用该键绑定的OS X快捷方式。您可以禁用该快捷方式或将其移至另一个键绑定,这将允许您在emacs中使用C- =。

我在OS X(El Capitan)的GUI窗口中运行Emacs,并将C =绑定到展开区域。

如果您在终端中运行,终端可能也在窃取该键绑定,因此如果您在首选项 - >键盘 - >快捷键中找不到任何匹配项,请查看您的键盘首选项。

在一般情况下,他们的方式我觉得要在Emacs绑定可用键是做到以下几点与C-H B

  1. 列出当前的键绑定,并期待看到什么已被使用,并确定可用的绑定。

  2. 使用C-h k验证密钥未被绑定并验证操作系统是否会通过它。如果没有任何事情发生,他们的密钥被操作系统或终端窃取,在这种情况下,您可以选择另一个密钥或禁用OS /终端层的绑定。

  3. 确定要使用的密钥绑定后,可以使用global-set-key来全局定义它,也可以使用本地密钥映射和定义密钥来在特定模式下对其进行定义。

我倾向于在OSX下使用emacs,因此禁用了许多OSX快捷方式,以便可以使用emacs中的密钥。因为我在Linux和OS X上工作,所以我喜欢尝试在两个平台上保留与emacs相同的密钥绑定。