6月 142011
 

emacs-23.3 になったら ibus.el 経由の mozc がインラインで日本語入力できなくなってしまいました。

以前のエントリで「ibus-mozc を使う。」というのを書いているので詳細についてはそっちを参考にしてください。

それにしても emacs 上でインラインで日本語入力ができないのはちょっと悲しいなぁ。と思い、ibus.el とか眺めたり、ウェブで調べてみたりしたのですが、 Vine のほうでは無事に吸収できたようですね。 FreeBSD ではそーは行かないみたい・・。

ちなみにインラインで日本語が入力できると何か嬉しいかと言うと、Ctrl や Esc キーなどがかな漢字変換システムに食われることなく emacs のキーバインドが利用できる点ですね。これは実際にやってみると結構重要です。

なので、他に何か別の emacs で利用できる日本語入力無いかなぁ?とか思い調べてみたら、mozc 自体が emacs lisp として mozc.el というのを提供しているのねぇ。

早速試してみました。が・・。
mozc 関連の FreeBSD の ports としては japanese/mozc-server 、 japanese/mozc-tool があるのですが、このどちらでも mozc.el をインストールしてくれない。きっと ports の作者さんは emacs との関連性をつけるのを嫌ったのでしょうなぁ;-P。

mozc のソースの中に unix/emacs/mozc.el があります。が、こいつは mozc_emacs_helper という、同じディレクトリにあるソースをコンパイルしたものをインストールしてあげないと動作しないんですな・・。orz。

ちゅーこって mozc-emacs とか言う ports を作りましたよー。そもそも、mozc のコンパイルは python を利用しているので非常にややこしい。試行錯誤した結果 mozc のソースツリーで以下のコマンドをたたけば mozc_emacs_helper の make ができます。

# setenv BUILD_COMMAND gmake
# ./build_mozc.py gyp
# ./build_mozc.py build -c Release --qtdir= /usr/local/lib/qt4 \
unix/emacs/emacs.gyp:mozc_emacs_helper
# cp out_linux/Release/mozc_emacs_helper /usr/local/bin/
# cp unix/emacs/mozc.el /usr/local/share/emacs/23.3/site-lisp/

 
これで mozc.el が動き出します。あ。当然 GTK_IM_MODULE 環境変数などの設定は必要ですよ。
僕の場合、emacs 以外は ibus-mozc を利用するようにして、 emacs からは ibus 経由ではなく、直接 mozc と通信できるように、あとで下のほうに出てきますが ~/.emacs に設定しました。

で、これらをやってくれる ports は以下に置きました。

http://icmpv6.org/Prog/FreeBSD_ports/ports-mozc-el-20110614.tgz

基本的には emacs に関連した部分のみを切り出したので mozc-el と言う ports にしました。ports/textproc 辺りに展開してください。 mozc_emacs_helper を make してインストールしてくれます。あと、 mozc.el と mozc.elc をインストールします。関連性で editor/emacs が必要がです。
また、当然ですが、 make deinstall にも対応しています。

で、~/.emacas への設定ですが、以下のような感じでしょうかね。

(require 'mozc)
(set-language-environment "Japanese")
(setq default-input-method "japanese-mozc")
(global-set-key (kbd "C-o") 'toggle-input-method)

 
早速入力してみると。おぉっ!! ちゃんとインライン入力ができますね。すげー。試しに emacs -nw な状態でも試してみましたがこちらでも日本語入力ができます。ibus-mozc よりもちょっと良い感じです。

 
さてとー。僕の場合、もう何回もここに書いていますが、かな入力の人なんですよ。で、その設定はあるのかなー?とか思って色々調べてみましたが、今の段階では mozc.el にはカナ入力の設定は無いみたいで、mozc.el には 「;; TODO(yuizumi): Supports Kana input.」などと書かれていました。orz。

通常、mozc の設定は mozc_tool_config で、行うのですが、ここではちゃんとかな入力になっているのですが、やはり ibus.el もそうですが emacs lisp の側でも何かしら対応しなければならないんでしょうなぁ。

 
と、言うことで、かな入力の僕にはいまいちご利益が無いのですが、ふつーにローマ字入力をする人にはベタに mozc が利用できるのと、あと tty 上の emacs でネーテェブというかインラインで日本語入力ができるというのは非常に嬉しいことではないでしょうか。

是非とも ports になってもしくは ports からインストールできるようになって頂きたいものだと、僕は思いました;-)。

  11 件のコメント to “mozc-emacs(mozc.el) な ports 作りました。”

  1. 済みませんでした。
    冒頭一発目に書いてある以下の文章ですが、
    「emacs-23.3 になったら ibus.el 経由の mozc がインラインで日本語入力できなくなってしまいました。」
    emacs-23.2のころからミニバッファには変換文字が表示されないですね。
    なので、emacs-23.2 も emacs-23.3 も無事に ibus.el は正常に動作している。と言うのが正しいです。
    なので、今回の記事はただ単に mozc.el を試してみた一。と言うだけの記事になります一f(^^;;。

  2. んー。google からは mozc-1.1.717.102.tar.bz2 というのがリリースされているんですなぁ。
    http://code.google.com/p/mozc/downloads/list
    最新のを見ると mozc.el では かな入力に対応しているしぃ。
    けど、今の mozc-0.13.523.102 に mozc.el だけ持ってきてインストールしても一応ローマ字入力はできるけど、かな入力はできない。
    勢い余って mozc_emacs_helper なソースも見てみたけど、これにもかな入力対応の改修が入っているしぃ・・。
    と、言うことで、FreeBSD の mozc の ports が最新にならないと対応不能。ってことですねぇ。orz
    daichi さぁーんっ!!

  3. もしよろしければ私が手直ししてコミットさせていただきましょうか。実際かなり細かい部分を直さないとコミットはできません。また、私の方からも、使わせていただきました。どうもありがとうございます。

  4. NakataMaho さん。こんにちは。
    ありがとうございますー。実は daichi さんに相談したら、彼は emacs を利用していないようで「モチベーションが低い。」とコメントもらったのでノラ ports と化していたんですけどねぇf(^^;;。
    ありがとうございます。宜しくお願いします。
    けど、上のコメントにも書いているのですが、実際にはもう mozc のバージョンは随分と上がっているのですよねぇ。それがちょっと心残りです。
    それにしても、たくさん手直しする必要がありますか・・。ちょっと安直すぎましたf(^^;;。
    宜しくお願いします。

  5. では、私がメンテナになります。適当に修正してコミットします。どうもありがとうございました。
    いやーそれにしてもMozcいいですね〜手放せません。

  6. すいません、
    かなり細かい部分というのは、大変細かい部分、という意味のつもりで間違えて書きました。数が多いというわけではなかったです。失礼しました。

  7. NakataMaho さん。こんにちは。
    メンテナを引き受けて下さり、ありがとうございます。
    「細かい部分」の件も了解です。僕の読み違いと言うか、思い違いでしたね。
    それにしても、コミッタの方で、実際に利用して頂けるとすかさずコミットしてくれる(感じがする)ので非常に嬉しいです;-)。
    今回はありがとうございました。

  8. コミットしました。thanks!

  9. NakataMahoさん。
    ports を最新のバージョンにして頂きありがとうございました。
    japanese/mozc-el/files/ を japanese/mozc-server に持って行って Makefile をチロッと直したら make が通ったので mozc-server も最新になって無事に動作しています。
    ports の野良ビルドしたんですけどね;-)。
    あとは daichi さん が japanese/mozc-server の最新の ports を出してくれるのを待つだけですねぇ;-)。
    それにしても emacs-el が最新版になると emacs 上でカナ入力ができるようになるので嬉しい。

  10. ports の japanese/mozc-el が最新版っ!!

    以前、このブログのエントリで「mozc-emacs(mozc.el) な por…

  11. […] いきなり手前味噌で大変申し訳ありませんが、そもそも mozc.el な(ノラ) ports は僕が一番最初に作成して NakataMaho さん がコミットしてくださり、その後 mozc-server のメンテナの方が取り込 […]

 コメントを書いてください。

HTML タグが利用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">

(必須項目)

(必須項目)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)