【问题标题】:Custom emacs-like key bindings on os x: DefaultKeyBinding.dict not working as expectedos x 上类似 emacs 的自定义键绑定:DefaultKeyBinding.dict 未按预期工作
【发布时间】:2014-02-21 14:25:00
【问题描述】:

我正在尝试在 OS X 10.7.5 中添加类似 emacs 的键绑定。特别是,在默认键绑定中,alt-d 和 alt-b 插入特殊字符,而我希望它们删除一个单词并移回一个单词。我创建了一个文件~\Library\KeyBindings\DefaultKeyBinding.dict,内容如下:

{
    "~d" = "deleteWordForward:";
}

(如this question 的答案中所建议的那样) 并打开了一个新的终端窗口(我也尝试过重新启动),但现在 alt-d 组合只是对我发出哔哔声,没有其他任何作用。有什么线索吗?

【问题讨论】:

  • 你能帮我理解为什么标准的 Emacs 键绑定不适合你吗?例如,将这些放在主目录的.emacs 文件中似乎效果很好:(global-set-key (kbd "M-b") 'backward-kill-word)(global-set-key (kbd "M-d") 'kill-word)。我从来没有玩过~\Library\KeyBindings\DefaultKeyBinding.dict,而且我已经在 OSX 上使用 Emacs 大约一年了。
  • 我想使用 emacs 的 GUI 版本的 emacs 键绑定 outside,例如在终端窗口中。但具体来说,通常的 emacs 键绑定在 emacs 的 console / terminal emacsclient/server 版本中不起作用。我经常使用这个版本,因为它会立即启动,并且该功能对于快速编辑任务以及编辑“git”提交消息和变基脚本很有用。
  • 感谢您提供有关此问题的信息。
  • 请注意,DefaultKeyBinding.dict 适用于标准 OS X 文本字段中的映射(例如,在 TextEdit、网页文本框、地址栏等)中,而不是在终端中。

标签: macos emacs key-bindings


【解决方案1】:

这应该可以解决问题 - 在 Terminal.app Keyboard 设置中,选中 Use option as meta key 框。 [我验证了该解决方案适用于 OSX Snow Leopard 10.6.8。] 从这里获得的解决方案:http://iancwill.com/blog/?p=116

【讨论】:

  • 宾果游戏!我欠你一杯啤酒。
猜你喜欢
  • 2018-03-09
  • 2010-09-14
  • 2017-01-01
  • 2020-12-23
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 2021-10-22
相关资源
最近更新 更多