【コラム】

OS X ハッキング!

88 Yet Another IME - MacUIMを使う

    海上忍  [2004/04/20]

    時折無性にカレーを食べたくなる筆者だが、先日実家の母親と子供の離乳食について話した際に理由がわかった。「あなたの離乳食はカレーだったのよ。だって、他の食べ物には目もくれなかったんだもの」。長年の疑問は氷解したけれど……カレー好きの赤ん坊って、一体……。

    さて、今回は多言語入力ライブラリ「UIM」とその派生版「MacUIM」を取りあげてみたい。UIMはGIMP 2で日本語入力するときに利用したが当コラム第87回を参照)、それがCocoa/Carbonアプリでも使えてしまうのだ。日本語入力システムに興味のあるOS Xユーザは、ぜひ試してほしい。

    What's UIM?

    UIMはUNIX系OSを主対象とした多言語対応のライブラリであり、日本語入力システム「Anthy(当コラム第48回を参照)」の兄弟分とも言える存在だ。開発目標はズバリ「フリーソフトウェアにおける文字入力環境の改善」であり、AnthyやSKK、PRIMEといった数ある入力システムと他のプログラムをつなぐ中間層としての役割を持つ。また、LISP系プログラミング言語の一種「Scheme」を利用して自由にカスタマイズできることも、大きな特徴と言えるだろう。

    MacUIMのススメ

    UNIX系OS汎用のUIMは、AnthyやSKKといった入力システムを別途用意しなければならないが、Cocoa/Carbonアプリで利用できれば十分というのならば「MacUIM」をお勧めしたい。OS Xのテキスト入力機構であるText Service Manager(TSM)用に書き直されているため、テキストエディットやSafariといったアプリケーションでもAnthyやSKKを利用できるようになる。

    MacUIMはTSMとUIM(およびAnthyやSKK)の橋渡し役であり、厳密には入力システムではないが、OS XではことえりやATOKと同様に扱えてしまうことが特徴だ。[command]-[SPACE]で機能をトグルできることはもちろん、メニューバーにアイコンも表示される。v0.1.7ではヘルパーアプレットに入力モードを表示できるようになるなど、入力システムそれぞれで操作性が異なることを除けば、OS Xネイティブの環境でも違和感なく利用できる。

    UIMのパッケージをインストールすると、システム環境設定の「言語環境」パネルでトグルできる入力プログラムとして認識され、さらに「MacUIM」という入力システムを切り替えるためのパネルも追加される。AnthyとPRIME、SKKについてはバイナリや辞書も収録されているため、このパッケージ以外何も用意する必要はない。まずは、試してほしい。

    SKKユーザ向けの情報

    今回当コラムでMacUIMを紹介するにあたり、作者の谷津氏と何度かメールでやり取りした際、SKKユーザ辞書の設定方法についていくつか有益な情報を教えていただいた。OS XにどれだけのSKKユーザが存在するかは不明だが、折角なのでここに紹介してみよう。ただし、情報はあくまでv0.1.7時点のものであり、今後変更される可能性が高いことをお含み置きいただきたい。

    ユーザ辞書は「~/.skk-jisyo」と「~/.skk-uim-jisyo」が読み込まれ、「~/.skk-uim-jisyo」に保存されるようになっている。これを「~/.skk-jisyo」に一本化する場合には、以下の内容を「~/.uim」として保存しておこう。設定は次に起動するアプリケーションから有効だ。

    (define skk-save-personal-dictionary
      (lambda ()
        (skk-lib-save-personal-dictionary skk-personal-dic-filename)))

    デフォルトでは、辞書ファイルはホームディレクトリ直下に「.skk-jisyo」などの名前で保存されるが、任意のファイル名に書き換えてもいい。たとえば、ライブラリフォルダに「.skk-jisyo」(~/Library/.skk-jisyo)として保存したければ、"/.skk-jisyo"の部分を"/Library/.skk-jisyo"とすればOK。

    (define skk-personal-dic-filename
      (string-append (getenv "HOME") "/.skk-jisyo"))
    (define skk-uim-personal-dic-filename
      (string-append (getenv "HOME") "/.skk-uim-jisyo"))

    ところで、[enter]を押して変換を確定できないものかどうか(EmacsでSKKを使うときの「(setq skk-egg-like-newline t)」と同じことをしたかった)を質問したところ、次のリリースのUIMに「skk-egg-like-newline?」という設定値を追加していただけるとのこと。言ってみるものだなあ、と作者の包容力とオープンソースという開発モデルの利点に感じ入ってしまった。

    (define skk-egg-like-newline? #t)

    関連サイト

    新着記事

    特設サイトの情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      マイナビニュースマガジン