Emacs + iBus + Mozc で日本語入力

Linux での日本語入力には「Google 日本語入力」の OSS 版 Mozc を使用しているが、Emacs から Mozc を使いたい場合、同プロジェクトで公開されている mozc.el が利用できる。これによって、mozc-mode という minor mode から直接 Mozc Server と通信でき、Emacs 内で予測変換等を含む Mozc のすべての機能を使用することが可能となる。最新版はデフォルトで変換候補が overlay で表示される。

https://skalldan.files.wordpress.com/2012/05/wpid-mozc_emacs.png

これを (以前のように) mini buffer で表示させるには、

(setq mozc-candidate-style 'echo-area)

とする。

概ね満足して使用してきたが、私の環境では、先のように overlay で変換候補を表示させた場合、若干、次の候補への移動がカクつく場合があった。そこで Emacs から iBus 経由で入力するための minor mode を提供してくれる ibus.el を試してみた。

まず、Emacs 利用時に常にXIMを無効にするため ~/.Xresources に、

Emacs*useXIM: false

を追加し、端末で、

$ xrdb ~/.Xresources

を実行しておく。これは mozc.el を使用する場合も同様だが、よく忘れてしまうのでメモ。

設定ファイル (~/.emacs.d/init.el) には次のように書いた。

(require 'ibus)
(add-hook 'after-init-hook 'ibus-mode-on)

;; C-SPC は Set Mark に使う
(ibus-define-common-key ?C-s nil)
;; C-/ は Undo に使う
(ibus-define-common-key ?C-/ nil)
;; IBusの状態によってカーソル色を変化させる ("on" "off" "disabled")
(setq ibus-cursor-color '("firebrick" "dark orange" "royal blue"))
;; すべてのバッファで入力状態を共有 (default ではバッファ毎にインプットメソッドの状態を保持)
(setq ibus-mode-local nil)
;; カーソル位置で予測候補ウィンドウを表示 (default はプリエディット領域の先頭位置に表示)
(setq ibus-prediction-window-position t)

また isearch 時も有効になるように設定してあるので、

;; isearch 時はオフに
(ibus-disable-isearch)

も加えた。さらに mini buffer では常にオフになるように、

;; mini buffer ではオフに
(add-hook 'minibuffer-setup-hook 'ibus-disable)

を追加した。キーバインディングは以下のように設定しておいた。

;; Keybindings
(global-set-key (kbd "M-SPC") 'ibus-toggle)
(global-set-key (kbd "M-o") (lambda () (interactive) (ibus-enable "m17n:sa:vz-prefix")))
(global-set-key (kbd "C-o") (lambda () (interactive) (ibus-enable "mozc-jp")))
(global-set-key (kbd "C-<f7>")
                (lambda ()
                  (interactive)
                  (shell-command-to-string
                   "/usr/lib/mozc/mozc_tool --mode=word_register_dialog")))

この設定中の「m17n:sa:vz-prefix」は私の専門で必要なサンスクリット語やチベット語を入力するためのものだが、このように iBus 起動時のエンジンを指定しておくことができる。ここに例えば「pinyin」と指定すると iBus 起動時にピンイン入力の状態になる。最後の「C-<f7>」は、Mozc の辞書登録の画面を呼び出すために設定した。

https://skalldan.files.wordpress.com/2012/05/wpid-mozc_addwords.png

単語登録など Mozc のパネルメニューに組み込まれた機能は、以下のコマンドからも利用できるので、他にもよく使用するものはキーバインドを設定しておいてもよいかもしれない。

# Mozcの設定
/usr/lib/mozc/mozc_tool --mode=config_dialog
# 単語登録
/usr/lib/mozc/mozc_tool --mode=word_register_dialog
# 辞書ツール
/usr/lib/mozc/mozc_tool --mode=dictionary_tool
# 文字入力パレット
/usr/lib/mozc/mozc_tool --mode=character_palette
# 手書き文字認識
/usr/lib/mozc/mozc_tool --mode=hand_writing 

ibus.el で Mozc を使用している様子。

https://skalldan.files.wordpress.com/2012/05/wpid-emacs_ibus_mozc.png

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s