停用預設選項鍵綁定

停用預設選項鍵綁定

在任何文字編輯器中,當我鍵入時,
⌥ 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 用其他操作替換選項快捷鍵。

答案4

解決方案也可能是使用不同的鍵盤佈局,例如U.S.

  • “alt”鍵的問題:U.S. InternationalABC
  • 解決方案:U.S.

將其更改為System Preferences -> Keyboard -> Input Sources.


我在 Stack Overflow 上找到了解決方案這裡所以如果它對你也有幫助的話,你可以給作者一個榮譽;)

相關內容