OSX + Terminal.app + Emacs + make命令键作为meta运行

时间:2012-04-13 07:23:42

标签: macos emacs terminal command meta

我在OSX Lion上

我在Terminal.app

中运行emacs

我希望command-x导致M-x(通常,命令 - > M)

我尝试了以下解决方案,但这不是我想要的:

我想要的,只是在Terminal.app内部(或仅在emacs内部),将命令键绑定到meta。我如何实现这一目标?

5 个答案:

答案 0 :(得分:9)

fwiw - iterm2需要额外注意才能将cmd映射到meta并与其他应用程序一起使用。 (cmd-tab行为,cmd-space(quicksilver)等)这是我的配置,偏向于左手cmd-tab操作等。

在iterm2中

  • (首选项>>键标签)左cmd需要重新映射到left-option
  • 全局快捷键将以下内容设置为“不重映射修改器”
    • cmd-space(使水银正常工作)
    • ctl-cmd-space(使我的omnifocus绑定工作)
    • cmd -` - 循环窗口
    • cmd- - > (右箭头)使标签循环正常工作
  • (首选项>>>>个人资料标签>>键子标签)我将左侧的选项键映射到要转义。这为大多数期望shell应用程序提供了预期的行为

这导致对某些本地iterm任务使用right-cmd,但在具有不同键绑定等的应用程序之间切换,通常的左手操作事项和重新训练我的肌肉记忆被最小化。

答案 1 :(得分:4)

首先,在终端的首选项中,在“设置”选项卡上的“键盘”子选项卡上,有一个复选框“使用选项作为元键”。这不是你要求的,但它是内置的。

我认为Cocoa Key Bindings系统可能在这里有所帮助,但根据我的搜索,它故意不允许重新映射Command。 This page有很多关于Cocoa的键绑定和文本默认值的可定制性的信息。

答案 2 :(得分:3)

我使用cmd-key-happyhttps://github.com/aim-stuff/cmd-key-happy),它允许您为特定应用交换altcommmand个键。

因此,在Terminal.app中,您可以按预期使用所有元修饰符,而特定于Mac的命令(复制,粘贴,关闭,新)可以使用alt

答案 3 :(得分:3)

FWIW:我找到了另一种方法来实现这一点对我来说更好(这是在iTerm2中)。

我希望emacs在终端中的行为与在窗口中的行为相同。我将emacs设置为通过以下代码段使用命令键作为元键:

;;osx keys
(setq mac-option-key-is-meta nil)
(setq mac-command-key-is-meta t)
(setq mac-command-modifier 'meta)
(setq mac-option-modifier 'alt)

因此,为了使我的命令键在iTerm2中表现得像元键,我转到首选项 - > gt; profiles-> - >键并添加了新键。唯一的问题是你必须分别对每个键进行操作,但你可以说,例如,

keyboard shortcut: <type command-p>
action: send escape sequence
Esc+: p

所以我为我最常用的元+键做了那个。如果有另一组单选按钮就像选项/ alt那样很好,你可以说“命令键就像Esc +”。

答案 4 :(得分:-1)

为什么你坚持使用Terminal.app?只需安装iterm2并继续生活。

相关问题