2013年4月21日日曜日

KeyRemap4MacBookを使ってIME入力切り替えのキーバインドを変更


唐突ですが現在Macportsを捨ててHomebrewへ移行中です.Homebrewではインストールしたファイルを/usr/local/以下にユーザ権限で入れるようになっていますが,Homebrew導入以前にmake, make installで野良ビルドしてインストールしたアプリケーションがある場合にはディレクトリのパーミッションがrootに変更されてしまっているようで色々と怒られます.

Homebrewにないパッケージをインストールする際にはFormulaと呼ばれるものを作ってインストールするのが流儀のようですが,AnthyのFormulaを作ろうと思ってもすぐにはうまくいかなかったため,Anthyの導入そのものを見送ることにしました.

そもそもAnthyを使っていた理由としては,EmacsでYaTeXというelispを使う際にドル記号を入力すると自動的に数式入力モードに入れ替わるのが便利であったというだけで,漢字変換の精度や,ことえりと辞書を統一出来ていないことがこれまで気になっていました.いい機会なので,ことえりでこれまでの環境にどこまで近づけるか模索してみたいと思います.

まず,YaTeXでの挙動が最も懸念される事項だったのですが,これは~/.emacs.d/init.el に次のように記述することで概ね不満のない挙動をしてくれるようです.
追記04/22:YaTeXでの挙動がうまくいっていると思ったのは全くの勘違いで,emacs-inline.patchからは2010年頃にすでにmac-add-ignore-shortcut関数は削除されている模様です.なので以下の記述は全く意味がありません.未だ解決せず.
;;YaTeXモードにおけることえりの設定
(setq yatex-mode-hook
       '(lambda ()
  (progn
    (mac-add-ignore-shortcut '(?$))
    (mac-add-ignore-shortcut '(?\())
    (mac-add-ignore-shortcut '(?\)))
    (mac-add-ignore-shortcut '(? ))
    )))

昨年までずっとLinuxを使ってきた身としては,日本語入力の切り替えをControl+Backslashで行ってきたので,特にEmacsを使う際にはこのキーバインドで使いたいと思っていました.これはMacのキーボードではControl+Underscoreキーの位置に相当します.Macではバックスラッシュキーも入力し辛かったため,KeyRemap4MacBookを使ってUnderscoreキーをBackslashに割り当てるところまではしていたのですが,日本語入力の切り替えをLinux的にするにはxmlファイルを編集する必要があるので躊躇していました.

この際なので挑戦してみたら,以外に簡単だったので載せておきます.まずKeyRemap4MacBookの設定画面を開き,"open private.xml"のボタンからprivate.xmlファイルを開きます.そこに次のように記述します.
<?xml version="1.0"?>
<root>
    <item>
        <name>Control+Underscore(Ro) to KANA/EISUU(toggle)</name>
        <identifier>remap.jis_controlplusunderscore2kana_toggle</identifier>
        <autogen>
         __KeyToKey__
            KeyCode::JIS_UNDERSCORE, ModifierFlag::CONTROL_L,
            KeyCode::VK_JIS_TOGGLE_EISUU_KANA
        </autogen>
    </item> 
</root>

書式はKeyRemap4MacBookのマニュアルキーコードのデータ表を参考にしました.
identifierは識別するための名前なので適当に付けています.これでControl+Underscoreで日本語入力の切り替えが行えます.いやー.便利です.

あとはHomebrewでinkscapeのコンパイルに失敗するのがなんとかならないものか.