[Windows] Emacsに指をカスタマイズされた人に贈るWin10キーカスタマイズ

2019年4月5日

最近、開発をする人でEmacsを使う人って、ほとんどいないんでしょうね(汗

三つ子の魂百までと申しますか、一度ついたクセというのは、なかなか治らないものでして、ついメモ帳やNotepad++などでファイルを開いても

「なんでCtrl+Kで行削除できないの?!」などCtrl+キーの操作に、指の動きがEmacsにカスタマイズされてしまった古参兵も多いかと思います。そんな方はそれぞれ独自にEmacsキーバインドの方法を模索されているかと存じますが、ここでは私なりに使っている方法を備忘録がてら共有していきます。

まずは何をさておきCapsLockキーとCtrlキーの入れ替え

CtrlキーはAキーの左にあるべきというのは世界の常識なのですが、通常の日本語キーボードではCtrlキーは一番下の段の左側というケシカラン配置になっているのがほとんどです。最近のイケている高級キーボードではハードウェア側の設定でキーをカスタマイズ出来たりするそうで、それが出来るならそうした方が良いです。

ソフトウェア的に解消しようとする場合、レジストリをゴリゴリ書き換えるストロングスタイルな方もおられるようですが、私の場合にはMicrosoft TechNetで公開されている"Ctrl2cap“を利用しています。

https://technet.microsoft.com/ja-jp/sysinternals/bb897578.aspx

適当なパスにコピーして、管理者権限でコマンドコンソールから"ctrl2cap /install" を実行するのみでOKです。

keyhacの導入

肝心のEmacsキーバインドの適用ですが、heyhacというツールを利用しています。これはプロセスごとにキーボード操作をカスタマイズできるアプリで、設定はPythonで記述できます。(さらにはアプリケーションランチャーやクリップボード管理の機能もあるので、これらも便利!)

https://sites.google.com/site/craftware/keyhac-ja

インストール、設定方法については次のページを参照ください

http://crftwr.github.io/keyhac/doc/ja/

keyhacのEmacsキーバインドの設定については、以下のページを参考にしています。config.py ファイルを入れ替えて、自分向けに設定に手を入れています。

https://github.com/smzht/fakeymacs

細かい設定は好みがあると思いますので、config.py中の各項目を見て頂いて、設定を入れて頂くのがよいかと。

注意点としては、すでにEmacsキーバインドにカスタマイズしたエディター(本家Win版Emacsやプラグインを入れたVisual Studio Codeなど)がある場合、適用除外リストに設定した方が安定します。

あとは自分の指のカスタマイズ度合いに合わせて、config.pyを育てていく感じですね。(私の場合、ペーストをCtrl+Yでなく、Winのお作法のCtrl+Vで打ち込んでしまい、カーソルがページ下部に移動して動揺するといったことがよくありますw)

余談:IMEの切り替えキー

ノーマルだと「半角/全角」キーが切り替えですが、正しいEmacs野郎はCtrl+\ と相場が決まっています。ただ昨今の流行を取り入れ、変換&無変換キーにIMEのON/OFF機能を割り当てています。設定方法は以下の記事を参考にしました。(Microsoft IMEの場合ですので別途にATOKなどをお使いの人は参考にならないと思います。)

無変換・変換キーをIMEのOFF/ONに割り当てるのはIMEの設定画面から、キー設定をユーザー定義に変更
https://www.onebizlife.com/keyboard-ime-onoff-1779