Mac (leopard) 環境構築 その6 Emacsで領域選択

今日はことえりの入力モードを「Windows風のキー操作」に戻した。戻した理由はやっぱり、ことえりのデフォルトのキー操作が使いづらかったから。
で、Windows風の操作に戻すとEmacsで「Ctrl+Space」を領域選択に使用できなくなってしまう訳だけど、以下のページを参考にその問題も解決した。
http://www10.big.or.jp/~xing/kotoeri/4/index.html
いろいろと試行錯誤をしたんだけど、結局は以下の手順で解決した。

  1. ことえりのリソースディレクトリへ移動し、「MsimeKeys.plist」をバックアップ&ホームディレクトリにコピー
$ cd /System/Library/Input Methods/Kotoeri.app/Contents/Resources
$ sudo cp MsimeKeys.plist MsimeKeys.plist.orig
$ cp MsimeKeys.plist ~
$ cd ~
  1. MsimeKeys.plistの81-90行目にかけての以下の内容を削除
<dict>
        <key>Command</key>
        <string>KotoeriCommand_InlineCharacter_Space</string>
        <key>KeyCode</key>
        <string>virtual_Space</string>
        <key>Modifier</key>
        <integer>16</integer>
        <key>ModifierMask</key>
        <integer>27</integer>
</dict>
  1. 編集したMsimeKeys.plistを元あった場所に上書きコピー&マシンを再起動
$ sudo cp MsimeKeys.plist /System/Library/Input Methods/Kotoeri.app/Contents/Resources

MsimeKeys.plistはWindows風のキー操作を定義しているファイル。今回削除した「KotoeriCommand_InlineCharacter_Space」は半角スペースを入力することえりのコマンドと考えていいみたい。それに該当するキーがスペース(virtual_Space)とコントロール(Modifier 16)の組み合わせとして登録されていたので、「Ctrl+Space」を入力すると半角スペースが挿入される仕掛けになっていた訳。この設定を削除することにで、Ctrl+Spaceの組み合わせをEmacsが処理できるようになったわけだ。
ちなみに、上記参考ページにあるように、Modifier 0は修飾キーなしを表しているので、最初は81-91行目を以下のように16を0に修正したんだ。

<dict>
        <key>Command</key>
        <string>KotoeriCommand_InlineCharacter_Space</string>
        <key>KeyCode</key>
        <string>virtual_Space</string>
        <key>Modifier</key>
        <integer>0</integer>
        <key>ModifierMask</key>
        <integer>27</integer>
</dict>

こうすれば、半角スペースの入力にはSpaceキーを割り当て、Ctrl+Spaceの割り当ては解放されると思って。
だけど、これだとEmacs上でCtrl+Spaceを領域選択に使用することはできたけど、今度はSpaceキーを押しての漢字変換ができなくなってしまった。それはある意味当然で、Spaceキーを半角スペース入力に割り当てている訳だから。そういうわけで、この設定を全部取っ払っちゃえば漢字変換も、Emacsでの領域選択もうまく行くのかなと思ってやってみたら、できた訳です。
調べるはじめから出来上がるまで、だいぶ時間がかかってしまった。