10

我在 OSX Lion

我在 Terminal.app 内运行 emacs

我希望 command-x 产生 Mx(通常是 command -> M)

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

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

4

5 回答 5

9

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

在 iterm2 内

  • (首选项>>键选项卡)左cmd需要重新映射到左选项
  • 全局快捷键将以下设置为“不重新映射修饰符”
    • cmd-space(使 quicksilver 正常工作)
    • ctl-cmd-space(使我的全焦点绑定工作)
    • cmd-` - 循环窗口
    • cmd-->(右箭头)使标签循环正常工作
  • (首选项>>配置文件选项卡>>键子选项卡)我将左选项键映射到转义。这为大多数期望元的 shell 应用程序提供了预期的行为

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

于 2012-04-14T23:03:34.233 回答
4

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

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

于 2012-04-13T11:07:21.077 回答
4

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+”。

于 2012-11-07T01:02:34.470 回答
3

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

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

于 2012-04-13T12:47:54.470 回答
-2

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

于 2012-04-13T11:55:29.290 回答