2013年4月22日月曜日

KeyRemap4MacBookでドル記号を直接入力に

昨年の夏前まではUbuntuをメインに使っていましたが,MacBook Air (mid 2012)を購入したため現在はMacBook Airをメインに使っています.MacBook Airを購入してからも,Emacsでの日本語入力には使い慣れたmodified anthyを使ってきました.homebrewを導入したのをきっかけに(野良ビルドしたものをインストールすると怒られたので),Anthyを捨てことえりを使ってこれまでと同等の環境を作る模索をしています.

現在Emacsはインラインパッチを当てたバージョン23.4のものを使っています.
日本語入力をAnthyからことえりに切り替えるにあたっての個人的な最重要事項は,YaTeXモードにおいてドル記号が入力されると自動で英数字入力モードに切り替えが起こるようにすることです.AnthyやSKKといったものについてはそれらの入力モードでのドル記号をYatex-insert-dollarにマップするというやり方で実現されているのですが,ことえりではそのようなモードマップが用意されてないようなので同じ方法は取れそうにありません.

emacs-inline.patchでは日本語入力を快適にするための色々な変数や関数が定義されているようなので,そちらからのアプローチでどうにかならないものかと検索してみましたが,ドキュメントが充実していないことと,web上の情報で古くなっているものも多いため,elispの読み書きが出来ない人間としては,設定の仕方がイマイチよくわかりませんでした.パッチのソースを眺めてみたものの,どういう場面で使えるのかピンと来ません.

本来ならばEmacsの設定の範囲でなんとかしたいところでしたが,今回はKeyRemap4MacBookを用いてドル記号を直接入力させるようにしてみました.
KeyRemap4MacBookの設定画面を開き,"open private.xml"のボタンを押してprivate.xmlファイルを開いたあと,次を追記します.

<item>
        <name>Dollar to EISUU+Dollar on Emacs</name>
        <identifier>remap.jis_Dollar2EisuuAndDollar</identifier>
        <only>EMACS</only>
        <autogen>__KeyOverlaidModifier__ KeyCode::KEY_4, ModifierFlag::SHIFT_L, 
        KeyCode::JIS_EISUU, KeyCode::KEY_4, ModifierFlag::SHIFT_L
        </autogen>
</item>

これでEmacs.app上で$記号を入力すると自動的に英数直接入力モードに移り変わります.弊害としては,やはりYaTeXモードに限らず入力モードが切り替わってしまうことですが,これは個人的には問題ないのでしばらくこれでいってみようと思います.

追記(04/23):Emacsでの日本語入力をことえりに変えたところ,Anthyでは日本語入力モードでも領域をマークして"Control+C )"で領域を括弧で括り,しかも入力モードは切り替わらないという機能があったのですが,括弧が日本語入力になってしまうようです.これもなんとかしないとかなり不便だなあ.