DDSKK で部首変換、総画数変換

急遽ノリではじまった SKK Advent Calendar の3日目です。
SKK Advent Calendar のまとめ URL はついてはこちらです。

そして、前日の tagomoris さんの記事はこちらです。

さて、3日目の本日は、以前どっかで見たような誰かが書いたかもとかガクブルしながら書きます。
# というより、ブログを書くのが久々すぎて以前書いたかどうかすら思い出せないorz まあ気にしない事としました
ちなみに、12/10 現在、SKK Advent Calendar には十分空きがあるので、簡単な Tips でも何でも良いので SKK を使っておられる方は参加してみてはいかがでしょうか。
# ddskk、uim-skkscim-skkibus-skkskkime … 何でもござれ


概要

Emacs 上で利用可能な SKK の実装である DDSKK の14.1から部首変換と総画数変換という機能が追加されています。
本日は、その機能について紹介したいと思います。

設定

以下のコードを .emacs に足すだけです。

(require 'skk-tankan)
(add-to-list 'skk-search-prog-list
             '(skk-tankan-search 'skk-search-jisyo-file
                                 skk-large-jisyo 10000))

総画数変換、部首変換では、「@」を▽モードで使用します。そのため、
もしかしたら下記のように設定して、▽モードで「@」打てるようにする必要があるかもしれません。
ただ、これは、SKK 14.2 からは、気にしないでも良いようです。

;; @ を入力できるようにする
(setq skk-rom-kana-rule-list
      (append skk-rom-kana-rule-list
              '(("@" nil "@"))))
(setq skk-rule-tree
      (skk-compile-rule-list
       skk-rom-kana-base-rule-list skk-rom-kana-rule-list))

総画数変換

▽モード時に、「▽数字@」と入力するだけです。入力した数字が、画数となり、その画数を持つ漢字一覧が候補として出ます。
# ▽モード: 日本語を入力するモード。「/」キーを押す事で「▽」がでるはず。
例えば、「▽10@」と入力すると以下のように画数が10の文字の一覧が候補として表示されます。



部首変換

▽モード時に、「▽@@」と入力するだけです。
入力すると、

  1. 部首の一覧が表示される
  2. 入力したい漢字が持つ部首を選択する
  3. 選択した部首を持つ漢字が候補として表示される

という流れで変換が行えます
上記、「1」の部首の一覧が表示されているスクリーンショットが以下です。



この中で、147番の「見」を選んだときは、以下のように候補が表示されます。



まとめ

この総画数変換や部首変換は、「読みが分からない漢字」を入力したいとき、非常に強力な入力方法になると思います。
部首変換自体は、T-Code や TUT-Code の部首変換と比べるとまだまだ弱いですが、
知っておいて損は無い入力方法であると思います。


そんなこんなで、本当は、skk-tutcode でも書こうかなと思ったのですが、あまりに誰得な気がしたのでやめて、
総画数変換とか入ったようなーブログ書いたっけ、書いてなさそう!よし行くかという感じで書きました。
何かの参考になれば幸いです。


あと、ちなみに、DDSKK 14.2 のテスト版、14.1.90 が出ているようです。人柱になってみよう!という方は使ってみると良いと思います。
大きな変更点としては、apel が不要になった事のようです。

おまけ

DDSKK のソースをおいかける際、SKK は、CVS で管理しているので、log が追いづらかったりします。
そんなときは、下記のように git cvsimport を使ってローカルでのみ git で管理すればけっこう便利だったりします。
# ※注: 変換に尋常じゃないぐらい時間がかかります

$ git cvsimport -d :pserver:guest@openlab.jp:/circus/cvsroot skk/main

一度取得した後、再度 SKK の最新と同期する際も上記コマンドを叩けば OK です。
既に変換されたリポジトリがあると2度目以降はそれなりに高速に終わります。

更新時刻

  • 2010/12/10/01:55