禁用默认选项键绑定

禁用默认选项键绑定

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

问题

我怎样才能禁用它?

为什么我要禁用此功能?

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

注意:除了 Crispy UI 之外,我喜欢 Mac 胜过 Linux 的原因是它对 emacs 快捷键的原生支持。如果带option修饰符的快捷键工作正常,那么对我来说每个文本编辑器都是 emacs。

答案1

将以下内容保存到~/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" = (); }

这将禁用所有 ⌥<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 属性列表样式 — 其工作原理相同。

答案2

我发现使用Unicode hex input输入源(System Preferences > Keyboard > Input Sources,然后添加源并Other在语言下选择)对我有用。在尝试根据@exmaxx 的建议更改输入源后发现了这一点。注意:使用 ABC(我的默认)或 US 并不能解决我的问题。

答案3

对于稍后发现此问题并遇到问题的人。

我这样做没有成功,而且 Ukelele 的另一个选项也有它自己的问题(很难删除默认键盘),所以我最终使用 BetterTouchTool 用其他操作替换 Option 快捷键。

答案4

解决方案也可能是使用不同的键盘布局例如U.S.

  • “alt”键的问题:U.S. InternationalABC
  • 解决方案:U.S.

将其更改为System Preferences -> Keyboard -> Input Sources


我在 Stack Overflow 上找到了解决方案这里所以如果它对你有帮助的话你可以给予作者一点信任 ;)

相关内容