Ubuntu Weekly Recipe

第175回 SKKで快適な日本語入力を体験しよう

この記事を読むのに必要な時間:およそ 3 分

ddskkのコードネーム

様々なソフトウェアがそうであるように,ddskkにもバージョンごとにコードネームがつけられています。Ubuntuの「頭韻を踏んだ形容詞+動物名」のように,ddskkのコードネームにもまた命名規則があります。それは「公共の交通機関の駅名を連続して使ってゆく」です。

始発駅はなんと,⁠Ubuntuとも関わりの深い)大阪府箕面市の箕面(Mino-o)でした。箕面から阪急箕面線を辿り,石橋(Ishibashi)で阪急宝塚線に乗り換えて,現在のUbuntuパッケージのバージョン,14.0.91のコードネームは庄内(Syounai)となっています。もうすぐリリースされるあろうバージョン14.3では,阪急十三駅に到着する予定です※3)⁠

※3
Ubuntuパッケージにはまだなっていませんが,開発元で現在リリースされている最新版は14.2で,コードネームは三国(Mikuni)です。

Emacsの外でもSKKを使う

慣れると手放せないSKK。それがEmacsの中だけでしか使えないのは勿体ないですね。どうせならばUbuntu全体で使いたいと思うのは当然のことです。そんな時はIBus-SKKをインストールして,IBusでもSKKを使いましょう。まずibus-skkパッケージと,辞書であるskkdicをインストールします。

$ sudo apt-get install ibus-skk skkdic

次にデスクトップ右上のインジケータから,IBusを再起動してSKKを認識させます。IBusが再起動したら,インジケータから "設定" -> "インプットメソッド" を開き,"日本語" -> "SKK" を選択して"追加"をクリックします。インプットメソッドの一覧にSKKが追加されますので,"上へ" をクリックしてSKKを最上位に持ってくるとよいでしょう。もしAnthyを使わないというのであれば,Anthyを削除してしまっても構いません。

これでCtrl+Spaceで日本語入力を開始すれば,IBus-SKKを使った日本語入力が可能になります。

図3 インジケータからIBusの設定を行なう

図3 インジケータからIBusの設定を行なう

図4 インプットメソッドに日本語-SKKを追加する

図4 インプットメソッドに日本語-SKKを追加する

図5 IBus-SKKを使って,GNOME上で日本語入力をする

図5 IBus-SKKを使って,GNOME上で日本語入力をする

SKKと辞書

辞書のしくみ

ここでSKKの辞書について説明しておきましょう。SKKはシステムで共有している書き換え不能な辞書と,ユーザごとに用意される個人辞書を併用して変換を行ないます。ここで面白いのは,個人辞書には個人が登録した単語だけでなく,そのユーザの変換履歴が含まれるところです。この個人辞書を最優先に変換を行なうので,使用頻度の高い単語ほど優先的に変換候補に挙げられることになります。これがSKKの高いヒット率の秘密でもあります。

SKKは,この辞書をバッファに読みこんで変換を行ないます。そのため,大きな辞書をフロントエンド毎に抱えこむことになるのですが,これは非効率です。そこでSKKには辞書サーバ(SKKサーバ,後述)と呼ばれる機能がオプションで用意されています。

複数の辞書を扱う

ibus-skkと同時に,skkdicをインストールしました。skkdicをインストールすることで,SKK-JISYO.Lという,ある程度の人名地名や複合語を含んだ一般的な辞書を使うことが可能になります。ですが,SKK_JISYO.Lだけではカバーできない変換も当然存在します。例えば郵便番号から地名へ変換したり,人名,法律用語,駅名などといった特殊な用語を変換する場合には,専用の辞書が必要になります。こういった辞書を集めたパッケージが,skkdic-extraです。

ibus-skkでは使用する辞書ファイルを一つしか指定することができないため,これらの辞書を使うためには辞書のマージ作業が必要になります。しかし後述する辞書サーバは複数の辞書を束ねて検索することが可能なため,お手軽に複数辞書を使用することが可能になります。

各種辞書ファイルをインストールする

$ sudo apt-get install skkdic-extra

著者プロフィール

水野源(みずのはじめ)

Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。最近レンズ沼にハマる。

コメント

  • 標準的な設定

    SKK の記事たいへん興味深く拝見いたしました。

    dired-x.el には dired-bind-jump というユーザ変数が定義されており、これを nil に設定することで ddskk とのキー定義の重複を回避するのが自然です。また、dired-x.el のコメントに従い dired-load-hook から dired-x を load するのが適切です。

    もう一点、C-\ を直接 skk-mode に定義することは推奨されません。これは Emacs 標準の LEIM のキー定義を潰してしまうからです。

    (setq default-input-method "japanese-skk")

    のようにするのが正解です。

    失礼しました。

    Commented : #1  塚本 徹雄 (2011/06/09, 05:50)

コメントの記入