Chrome の入力フィールドでもカジュアルに(※)Emacs のキーバインドを使いたいと思うことがあります。 Mac の場合、Emacs のキーバインドがデフォルトである程度実現されているわけですが、Ctrl-y で yank (ペースト) するとかは実現できていません。
それを実現する手段というのがあったのでご紹介します。 ご紹介しますと言いながら、以下のエントリ以上に詳しくかける気がしない。
全部読めない忙しい貴兄に対して要約しますと、しなければならないことは以下の 2 つだけです。
~/Library/KeyBindings/DefaultKeyBinding.dict
を作成する~/Library/KeyBindings/
がなければディレクトリを作りましょう
DefaultKeyBinding.dict
に、キーと NSResponder クラスのメソッドとのバインディングを定義する
これにより Emacs の基本的なキーバインドが実現できるわけですが、Emacs のキーバインドを 1 から実現しようとすると、結構つらい。かなりつらい。 このあたりは Github に転がっているので、いくつかご紹介します。
- https://gist.github.com/cheapRoc/9670905
- emacs-keybindings-in-osx/DefaultKeybinding.dict at master · fkchang/emacs-keybindings-in-osx · GitHub
これらを参考にすると、だいたい Emacs っぽいキーバインドになります。
Ctrl-Space (setMark:
) とか効かないのは原因がよくわかりません。おしえてください。
ちなみに
Chrome において、テキスト入力の部分を Emacs のキーバインドではなく直接 Emacs で編集したい場合は、Edit with Emacs あたりを使えば良いと思います。 このエントリも、Edit with Emacs で書いてます。