ichiroc subset

書きながら考える・考えをまとめる場所

Mac の Emacs から IME を操作して evil-mode を快適にする

evil-mode ではIMEが邪魔

普段、EmacsではSKKを使用している。 evil-mode 導入後、Mac で SKK の反応が何故か悪くなったので、Google日本語入力をメインに使い始めた。 しかし、ノーマルステートでIMEが全角になったままになったりして、使い勝手が悪い。

Mac の IME を制御できるパッチを適用してコンパイル

少し前なら Carbon Emacs を使用すれば IME を操作出来たようが、現在では自分でコンパイルするしかないそう。

手順

しかし驚くほど簡単だった。

Emacsのコンパイル

Emacs24 のインストールと新機能 - IMEパッチの適用 ここの手順通りに実行したら動いた。 というかこのまま .sh にして動いたレベル。ありがとうございます。 ただし autoconf が必要

#see http://sakito.jp/emacs/emacs24.html#ime
EMACS_VER=24.3
curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-${EMACS_VER}.tar.gz
svn co http://svn.sourceforge.jp/svnroot/macemacsjp/inline_patch/trunk inline_patch
tar xvfz emacs-${EMACS_VER}.tar.gz
cd emacs-${EMACS_VER}
patch -p0 < ../inline_patch/emacs-inline.patch
./configure --with-ns --without-x
make bootstrap
make install
open nextstep/Emacs.app
evil-normal-state-entry に hook する

とりあえずノーマルステートになったら IME をオフにするだけで良い。 その為の設定。

日本語環境のMacにEmacsをインストールする方法 を参考にした。

;; Google日本語入力をベースにする
;; これがないと(mac-toggle-input-method t) で、ことえりが有効になってしまう。
(mac-set-input-method-parameter "com.google.inputmethod.Japanese.base" `title "あ")
(add-hook 'evil-normal-state-entry-hook
          '(lambda ()
             (mac-toggle-input-method nil)))

まとめ

めちゃくちゃ快適になった。先人の貢献がありがたし。

参考