macOS Siera(10.12)でキーアサイン変更

最近はGmailの影響もあってか、Vimライクな操作(Jキーで次または↓、Kキーで前または↑)で便利に扱えるアプリやサービスが増えてきました。Macでのカーソル操作もVimっぽくいけたらいいなと思いまずは行動へ。

Macでキーアサイン変更と言って真っ先に思いつくのがKey4Remap4Macbookとかその後継のKarabinerですが、最新のOSには非対応、Karabinerはさらにその対応としてKarabiner-Elementsをリリースしていますが、こちらで対応できない処理を行う(2017年9月現在)ため、違うやり方はないものだろうかといろいろ探ってみました。

やりたいこと

  • 上下左右カーソルキーと同じ動きをHJKLで行う
  • 修飾キー(control)をコンビネーションに使う

わかったこと

  • keyhacは襷に長しな感じがする
  • HammerspoonというMacの処理を自動化させるツールが良い感じ

実行へ

KarabinerのVi Mode カーソル移動(Ctrl+hjkl)をSierraでも再現する

ほんともうここ見たら終わり!ってぐらい丁寧に説明されています。

touchbarの問題も解決したい

このまま終わってしまうとこの記事の存在理由がゼロなので、もうちょっとだけ続けます。

MacBook Proの中にはtouchbar搭載のモデルがあるのですが、これの弱点は「感覚でEscapeキーが押せない」ところ。見て確認したり、小指で探り探り押すこともあるので、この流れでこれも解消したい。

幸い(幸い?)Vimには”コマンドモードに戻る”ためのキーボードショートカットとしてCTRL+[がありますので、これと同じショートカットでEscapeの代用としましょう。(VimのCTRL+[は、実際はEscapeの代用ではなく、”コマンドモードに戻る”キーとしてEscapeと同じ役割を与えられているというだけです)

上記記事(KarabinerのVi Mode カーソル移動(Ctrl+hjkl)をSierraでも再現する)で変更したinit.luaの最後に以下の行を追加しました。

remapKey({'ctrl'}, '[', keyCode('escape'))

(上記2017年11月5日修正。間違えてShiftが入ってました……)

あとはHammerspoonでReload Configすれば、Escapeの代わりにCTRL+[が機能するようになります。