2010-08-21 100 views
3

在Mac OS X GNU Emacs的,默认情况下,使用控制CTRL命令META。这让我发疯,因为我的MacBook Pro在左侧只包含一个控制键,而我习惯于在键盘两侧有控制键如何修改IntelliJ的Emacs键盘映射中的控制/选项/命令键映射?

随着我的GNU Emacs的安装,我能够修改变量mac-control-modifiermac-command-modifiermac-option-modifier使命令作为CTRL选项作为META

我该如何在IntelliJ IDEA中完成同样的事情?很容易选择“Emacs”作为键盘映射,但我看不到任何方式进行类似的CTRLMETA的重新映射。我知道我可以在操作系统中重新映射这些密钥,但我不想这样做。我也知道我可以接受每一个动作并单独修改它们,但这似乎是一个糟糕的解决方案。

回答

9

这可能不是最简单的解决方案,但可以打开resources.jar(MacOS上的/Applications/IntelliJIdea.app/lib/resources.jar)文件,找到Keymap_Emacs.xml(位于idea目录中)复制和修改它。

然后,您可以在IntelliJ中创建一个新的键盘映射,以便使用新内容(MacOS上的〜/ Library/Preferences/IntelliJIdea90/keymaps)对其进行更新。

这样,您可以更改所有键盘映射,而无需单独更改每个操作。

+0

感谢科林,这工作得很好(而且很容易)。我唯一加入你的答案的是放置(打包的)'Keymap_Emacs.xml'的直接副本不起作用;启动时,Idea 9.0会引发键盘映射错误。相反,我最终要做的是在Idea的设置中打开Keymap部分,选择Emacs键盘映射,单击* Copy *,然后进行一次修改,然后应用更改。然后我在'〜/ Library/Preferences/IntelliJIdea90/keymaps'中打开生成的键盘映射xml,并执行我的搜索,并用** meta **替换** control **并保存。一切都很完美。 – rcampbell 2010-09-11 12:45:15

+0

用户键盘映射的格式已更改。在IntelliJ 14中,而不是原来的副本,它现在是最小的,在根元素上有一个父属性。将出现在内部的唯一是被用户覆盖的。因此,现在在IntelliJ中创建自定义键盘映射后,您将操作元素从打包的Keymap_Emacs.xml中复制到自定义键盘映射中。之后,它很好地工作。 – jgibson 2015-09-04 20:14:27