我在OSX Lion上
我在Terminal.app
中运行emacs我希望command-x导致M-x(通常,命令 - > M)
我尝试了以下解决方案,但这不是我想要的:
在系统首选项中将命令映射到Meta全局
仅在Terminal.app中将选项映射到Meta
我想要的,只是在Terminal.app内部(或仅在emacs内部),将命令键绑定到meta。我如何实现这一目标?
答案 0 :(得分:9)
fwiw - iterm2需要额外注意才能将cmd映射到meta并与其他应用程序一起使用。 (cmd-tab行为,cmd-space(quicksilver)等)这是我的配置,偏向于左手cmd-tab操作等。
在iterm2中
这导致对某些本地iterm任务使用right-cmd,但在具有不同键绑定等的应用程序之间切换,通常的左手操作事项和重新训练我的肌肉记忆被最小化。
答案 1 :(得分:4)
首先,在终端的首选项中,在“设置”选项卡上的“键盘”子选项卡上,有一个复选框“使用选项作为元键”。这不是你要求的,但它是内置的。
我认为Cocoa Key Bindings系统可能在这里有所帮助,但根据我的搜索,它故意不允许重新映射Command。 This page有很多关于Cocoa的键绑定和文本默认值的可定制性的信息。
答案 2 :(得分:3)
我使用cmd-key-happy
(https://github.com/aim-stuff/cmd-key-happy),它允许您为特定应用交换alt
和commmand
个键。
因此,在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并继续生活。