@koshian's Tech Log

主に日本語に関する技術などこちらに書こうかと

Emacs on Mac OS X における日本語入力

さて、というわけで先日ゲットした MacBook AirEmacs 24 をインストールしていたのだが、さすがにいまさらまた Canna を入れるのもどうかと思って Mozc を試してみた。が、どうやら mozc.el は Mac では非対応のよう。Mozc 本体も OSX 10.8 Mountain Lion + Xcode 4.6 ではビルドが通らない。10.5 SDK が必要のようだが……。mozc_emacs_helper だけ動けば既存の Google日本語入力 にアクセスしたり出来るんだろうかこれ。だとしたらこっそり同梱しておいてほしいなあ。

しかし Mozc は魅力的なのでなんとかならないかと思っていると、MacUIM に Mozc が同梱されてることに気付いた。MacUIM をインストールすると、 /Library/Frameworks/UIM.framework/Versions/Current/share/emacs/site-lisp/uim-el に uim.el を始め一揃いの elisp が入っている。コマンド類は /Library/Frameworks/UIM.framework/Versions/Current/bin/ にある。ので、設定はこんな感じ。

(when (locate-library "uim")
  (set-language-environment "Japanese")
  (when (eq system-type 'darwin)
    (setq uim-bin-path "/Library/Frameworks/UIM.framework/Versions/Current/bin/")
    (setq uim-el-agent (concat uim-bin-path "uim-el-agent"))
    (setq uim-el-helper-agent (concat uim-bin-path "uim-el-helper-agent")))

  ;; uim.el
  (require 'uim)
  (setq uim-default-im-prop '("action_anthy_utf8_hiragana"
                              "action_google-cgiapi-jp_hiragana"
                              "action_mozc_hiragana"))
  (setq uim-default-im-engine "mozc")
  (global-set-key "\C-o" 'uim-mode))
  (setq uim-candidate-display-inline t)
  (setq uim-lang-code-alist
        (cons '("Japanese" "Japanese" utf-8 "UTF-8")
              (delete (assoc "Jpanese" uim-lang-code-alist)
                      uim-lang-code-alist)))

しかしいくつか問題が発生。

  1. uim.el を読み込み後、uim-el-agent をスタートさせたあとしばらく操作不能になる
  2. 文字入力自体がカクカクと表示されたいへん遅く感じる

ただしこれらの問題は -nw オプションをつけて起動した場合は発生しない。描画周りの問題だろうか。また、uim-default-im-engine に値をセットすると invalid IM engine になるのが謎。

しばらくいじってみると、どうも文字入力中の描画が止まることが遅く感じる原因らしい。uim-mode 下で文字のキー押しっぱなしにすると何も表示されず、離すと一度にどばっと文字が出現する。高速に文字入力してても同じ。

うーん、さてはてどうしたものか。

*** 追記 リポジトリの最新版 では直ってるようだ。スムーズに入力ができる。