Macでemacsのキーバインドを設定する〜Karabinerの設定

スポンサーリンク

macbookのcontrolキーは、UNIX系のショートカットキー操作が利用できるのが面白い特徴です。

ところが、一部のキー操作はアプリによって動作したり、しなかったり、ということがありました。

スポンサーリンク

control-mはreturnキーと同等ではないのか?

例えば、「control-m」のキー操作。

emacsやターミナルでは「改行(return)」にバインドされているキー操作です。

しかし、macOSのアプリで操作していると、これが動作するときと、しないときがあることに気づきました。

文字の変換中は「確定」として動作するのですが、「メモ.app」で文章の編集作業をしているときなどは改行されません。

どうも「control-m」が「改行」キーと全く同等の動作、というわけではなさそうです。

ほかにも、「control-d」も「削除(delete char)」として動作したり、しなかったり。

キーバインドのツールKarabiner

ということで、キーバインドの設定をすることにしました。

「キーバインド」とは、キー操作と動作を割り当てることです。

必要なアプリケーションは「Karabiner」です。

Karabinerは、キー操作と動作を割り当てるための設定ツールです。

以前は「KeyRemap4MacBook」という名前でした。

各アプリがショートカットキーを認識よりも「前に(下で)」動作するので、自分の好みのキーバインドをすることができます。

今回はこれを利用して、「emacs like」なキーボード操作環境を作っていきます。

Karabinerのインストールと権限の許可

Karabinerはインターネットで公開されています。

Karabiner-Elements
A powerful and stable keyboard customizer for macOS.

ディスクイメージファイル(.dmg)をダウンロードして、開きます。

中にはOS Xインストーラファイル(.pkg)がありますので、ソフトのインストールができます。

ソフトをインストールし、実行するには「権限の許可」をする必要があります。

「システム環境設定」ー「セキュリティとプライバシー」を開きます。

「一般」から「実行ファイルの許可」、「プライバシー」から「入力監視」の許可をします。

これで、Karabinerがキーボード入力を監視して、変換することができるようになりました。

パスワード入力は監視されているの?

ちなみにセキュリティリスクとしては、キー操作がKarabinerによって監視されることになります。

とはいえ、Karabiner EventViewerのウィンドウでは「パスワード入力」は表示されませんでした。

「c o m」という入力は、メールアドレス入力のキーイベントの末尾です。

パスワードの入力中は、Karabinerにキーイベントは送られていないようです。

Karabinerのアプリケーション

Karabinerをインストールすると、以下のアプリケーションが追加されます。

  • Karabiner-EventViewer
  • Karabiner-Elements

「Karabiner-EventViewer」は、どのキーが押されたのかをリアルタイムでモニターするツールです。

キーボード配列はJISやUSなど、いくつかあります。

キーに印字されたとおりに、システムで認識されているとは限りません。

キーイベントをモニタリングすることで、入力キーに対応するキーイベントを調べることができます。

「Karabiner-Elements」の方がキーバインドをするためのツールです。

単純にキーを置き換えたり(Simple modification)、複雑なキーの組み合わせを割り当てたり(Complex modification)することができます。

Emacs-likeなキーバインドを設定する

それでは、実際の設定をしていきます。

Karabiner-Elementsのウィンドウを表示します。

「Complex modification(複雑な修正)」タブに切替え、「Rules(ルール)」のタブの状態で、「Add rule(ルールの追加)」のボタンを押します。

ちいラボ
ちいラボ

どのキー操作の組み合わせを、どう変更するか、という規則を作ることになります。

「Import more rules from the Internet (open a web browser)」(インターネットからルールを取り込む)をクリックして、インターネットに接続します。

Webブラウザで、https://ke-complex-modifications.pqrs.org/ が表示されます。

いろんな方が登録しているキーバインドが一覧になっています。

検索欄に「Emacs」と入力して、検索結果の中に@tekezoさんのメンテナンスされている「Emacs key bindings (rev 12)」というルールを選び、「import」をクリックしました。

Karabiner-Elements.appを開きますか?

というメッセージが表示されるので、「開く」とKarabiner-Elementsのルールに追加されます(7つのルールに小分けされています)。

好みのものを「Enable(有効化)」することで、設定されます。

私は、「C-x key strokes 」と「control+keys」を有効化しました。

これでKarabiner-Elementsが起動していれば、キーバインドルールが適用され、Emacs-likeな編集操作をすることができます。

Karabiner-Elementsが動作しているかは、画面上部の「メニューバー」で確認できます。

よく使っているキー操作

私が無意識に使っているキー操作をリストにすると

  • C-f, b, n, p カーソル移動
  • C-a, e ホームとエンド
  • C-h, d, k 削除(backspace, delete, kill)
  • C-y 貼り付け(ヤンク)
  • C-x-C-s, C-x-C-c 保存と終了
  • C-v ページダウン

これらの操作がホールボジションから離れずに操作することができ、非常に入力が楽になります。

しかも、このキーバインドは、親指シフト入力のより前に実行されるので、日本語入力のままControlキーによるキー操作ができるのも嬉しいです。

こちらもどうぞ

タイトルとURLをコピーしました