web-dev-qa-db-ja.com

デフォルトのオプションキーバインディングを無効にする

どのテキストエディタでも、入力すると
⌥ p カーソルにπを挿入します
⌥ w カーソルにを挿入します
したがって、オプションで押すとすべてのキー  特殊文字を挿入します。

質問

これを無効にするにはどうすればよいですか?

なぜこれを無効にしたいのですか?

  1. 私はこれらの記号をほとんど使用しません
  2. 私は筋金入りのemacsユーザーなので、のようなショートカットを常に好みます。
    • ^ A カーソルを最初に移動する代わりに Home
    • ^ n 代わりに次の行に 
    • ^ K ラインを殺す
      したがって、テキスト内のすべてのナビゲーションには常にControl + Keyを使用します。
      しかし、macにはOption + Keyの他の機能があるので、次のようなものは使用できません。 ⌥ w リージョンをコピーするには

注:-Crispy UI以外にLinuxよりもMacが好きな理由は、emacsショートカットのネイティブサポートです。 option修飾子を使用したショートカットがうまく機能すれば、すべてのテキストエディタがemacsになります。

6
Kaunteya

以下を~/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、@コマンド。
したがって、~aは⌥A(alt-A)を意味し、^$1は⌃⇧1(control-shift-1)になります。

各キーの値は()に設定されます—メソッドなしの空の括弧。 DefaultKeyBinding.dictが/S*/L*/Fr*/AppKit.*/R*/StandardKeyBinding.dictをオーバーライドするため、ショートカットはメソッドなしであると定義されているため、何も実行されません。システムファイルを編集するよりも、このような独自のキーバインディングファイルを作成することをお勧めします。

1 必要に応じて、新しいXMLプロパティリストスタイルを自由に使用してください。同じように機能します。

6
grg

後でこれを見つけてこれに問題がある人のために。

私はこれを行うことができず、Ukeleleの他のオプションにはそれ自体の問題(デフォルトのキーボードを削除するのが難しい)があるため、BetterTouchToolを使用してOptionショートカットを他のアクションに置き換えることになりました。

0
undsoft

解決策は、異なるキーボードレイアウトを使用することでもあります。 U.S.

  • 「alt」キーの問題:U.S. InternationalABC
  • 解決策:U.S.

System Preferences -> Keyboard -> Input Sourcesで変更します。


Stack Overflowで解決策を見つけました ここ それがあなたにも役立つなら、あなたは作者にクレジットを与えるかもしれません;)

0
exmaxx