我在 OSX Lion
我在 Terminal.app 内运行 emacs
我希望 command-x 产生 Mx(通常是 command -> M)
我尝试了以下解决方案,但它们不是我想要的:
在系统首选项中将命令全局映射到 Meta
仅在 Terminal.app 中将选项映射到 Meta
我想要的只是在 Terminal.app 内部(或仅在 emacs 内部),将命令键绑定到 meta。我如何实现这一目标?
fwiw - iterm2 需要额外注意才能使 cmd 映射到 meta 并与其他应用程序很好地配合。(cmd-tab 行为、cmd-space(quicksilver)等)这是我的配置,它偏向于左手 cmd-tab 操作等。
在 iterm2 内
这导致对某些本地 iterm 任务使用 right-cmd,但在具有不同键绑定的应用程序之间切换等,通常的左手操作操作和重新训练我的肌肉记忆被最小化。
首先,在终端的首选项中,在设置选项卡上,在键盘子选项卡上,有一个复选框“使用选项作为元键”。这不完全是您所要求的,但它是内置的。
我在想 Cocoa Key Bindings 系统在这里可能会有所帮助,但根据我的搜索,它故意不允许重新映射命令。这个页面有很多关于 Cocoa 的键绑定和文本默认值的可定制性的信息。
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 中的元键,我去了首选项->配置文件->->键并添加了新键。唯一的问题是您必须分别为每个键执行此操作,但您可以说,例如,
keyboard shortcut: <type command-p>
action: send escape sequence
Esc+: p
所以我为我最常用的元+键做了这个。如果有另一组单选按钮(例如 option/alt 的单选按钮)就好了,您可以在其中说“命令键的作用类似于 Esc+”。
我使用cmd-key-happy
(https://github.com/aim-stuff/cmd-key-happy),它允许您交换特定应用程序alt
的commmand
密钥。
因此,在 Terminal.app 中,您可以按预期使用所有元修饰符,而 Mac 特定的命令(复制、粘贴、关闭、新建)则可以使用alt
。
你为什么坚持使用 Terminal.app?只需安装 iterm2 并继续生活。