今年の頭にMacbookProをTouchbar搭載モデルに買い替えたのだが、Touchbarで使える機能のほとんどをキーボードショートカットで済ませているので、Touchbarの恩恵を未だ全く受けれていない。

それどころか、ファンクションキーが無くなったり、Escapeキーが無くなりTouchbarに内蔵されて押しにくくなったりと、今のところデメリットの方が多い。

先日、以下の記事のとおり、メインエディタのSublimeText3をVim化したのだが、Vimの編集モードの切り替えで使うEscapeキーが押しにくいため、かなりストレスを感じていた。

そこで今回は、Macのアプリ「Karabiner-Elements」を使って、Escapeキーを他のキーにバインドしてみたので、その方法を紹介しようと思う。

Escapeキーを「control + ;」にバインドする

バインドするキーの組み合わせは好きにしてもらって良いのだが、今回は「control + ;」にしてみた。

では早速設定ファイルを作っていこう。

vim ~/.config/karabiner/assets/complex_modifications/20191114.json

上記のディレクトリ内にディレクトリ内に好きな名前でjsonファイルを作成する。

この時の注意点としてファイル名は数字のみで構成しないとダメらしいので、適当に今日の日付などを入力してみた。

キーバインドの設定は以下のとおり、JSON形式で記述する。

{
  "title": "escape [left_control + semicolon]",
  "rules": [
    {
      "description": "escape [left_control + semicolon]",
      "manipulators": [
        {
          "from": {
            "key_code": "semicolon",
            "modifiers": {
              "mandatory": [
                "left_control"
              ]
            }
          },
          "to": [
            {
              "key_code": "escape"
            }
          ],
          "type": "basic"
        }
      ]
    }
  ]
}

title、descriptionは分かりやすい名前で良い。

manipulatorsでバインドの設定を行っていく。

from

バインドするキーの組み合わせを書く。
key_codeが分からなければ、Karabiner-EventViewer.appを起動してコードを確認すると良いだろう。
※なお、今回指定した「semicolon」を「;」と書くと失敗する。

to

toには元となるキーのコードを記述する。
今回の場合は「escape」となる。

設定の反映

jsonファイルを作成し保存したらKarabiner-Elementsを起動し「Complex modifications」タブを開く。

左下の「Add rule」ボタンを押すと、以下のとおり先ほど作成したルールが表示されるので「Enable」を押して有効化させよう。

ここまでできれば設定したとおり、Escapeキーを「contorl + ;」で代替できるようになっているはずだ。