禁用默认选项键绑定

Kau*_*eya 7 mac keyboard keyboard-shortcuts emacs macos

在任何文本编辑器中,当我键入
? p它时,它会?在光标处
? w插入?
因此它会在光标处插入因此每个键在按下选项时都会? 插入一些特殊字符。

我怎样才能禁用它?

为什么我要禁用此功能?

  1. 我几乎不使用这些符号
  2. 我是一个铁杆 emacs 用户,因此我总是喜欢这样的快捷方式
    • ^ A 将光标移动到开头,而不是 Home
    • ^ n 到下一行,而不是 ?
    • ^ K杀死线
      因此我总是Control + Key用于文本中的每个导航。
      但是由于 mac 有一些其他功能,因为Option + Key我不能使用诸如 ? w复制区域之 类的东西

注意: - 除了 Crispy UI 之外,我喜欢 Mac 而非 Linux 的原因是它对 emacs 快捷方式的原生支持。如果带有option修饰符的快捷方式运行良好,那么每个文本编辑器对我来说都是 emacs。

grg*_*grg 9

将以下内容保存到~/Library/KeyBindings/DefaultKeyBinding.dict(必要时创建)。

{ "~a" = (); "~b" = (); "~c" = (); "~d" = (); "~e" = (); "~f" = (); "~g" = (); "~h" = (); "~i" = (); "~j" = (); "~k" = (); "~l" = (); "~m" = (); "~n" = (); "~o" = (); "~p" = (); "~q" = (); "~r" = (); "~s" = (); "~t" = (); "~u" = (); "~v" = (); "~w" = (); "~x" = (); "~y" = (); "~z" = (); }
Run Code Online (Sandbox Code Playgroud)

这将禁用所有 ?<letter> 组合。重启应用即可生效。

上面的 DefaultKeyBinding.dict 是一个旧式的属性列表1,使用语法定义键值对。在这种情况下,键是激活值中方法的组合键。{ key = value }

使用标准字典键符号:~ alt、^ control、$ shift、@ command。
因此~a意味着 ?A (alt-A) 并且^$1将是 ??1 (control-shift-1)。

每个键的值都设置为()- 没有方法的空括号。由于 DefaultKeyBinding.dict 覆盖/S*/L*/Fr*/AppKit.*/R*/StandardKeyBinding.dict,快捷方式被定义为没有方法,因此什么都不做。最好像这样创建自己的键绑定文件,而不是编辑系统文件。

1如果您愿意,可以随意使用新的 XML 属性列表样式——它的工作原理相同。

  • 这对 MacO 上的任何人都有效吗?(塞拉?)对我没有影响.. (2认同)