カラクリスタ

『輝かしい青春』なんて失かったヒトのブログ

uim-fep with skk の辞書でハマった

という小話。


ハマった内容

昨日の記事、

the.nyarla.net

でも書いた様に、僕は今、開発環境を、

  • CoreOS Alpha + NixPkgs

と言う妙な環境に移しているのですが、今日、その作業をしている時に、

uim-fep with skk で漢字変換は出来るけど、送り仮名が含まれる変換が出来ない!

という、何がなんだかという問題に遭遇していました。

ハマってた原因

で。

なんで漢字変換出来るのに、送り仮名が付いているとアカンのや……なんでや……

と言う感じで色々ググったり設定を変えたりしていたのですが、 どうにも問題を修正出来ず、一時、作業を中断して調べ直したところ、

あ、これってもしや辞書が原因なんちゃう?

と途中で気がついて、まあ、色々やり直したところ、

複数の skk 辞書を正しくない方法で結合してた

と言うのが直接の原因だった、という事が判りました。

原因の解説

これ、すべての SKK 処理系が同じ様な実装なのかは判りませんが、 少なくとも、オリジナルの ddskk と uim-fep の skk では、

SKK の辞書をマージ する時は、 skktoolsskk-expr を使って辞書を結合し、 なおかつ、その辞書は skkdic-sort を用いソート済みにしなければならない

と言うのが要求される仕様っぽかったです。

それで、僕が行なってしまっていた辞書の結合方法は、単純に、

複数の辞書を cat して 結合しただけだった

って言うのが、まあ、妙な挙動になってた原因でした、はい。

対策法

まあ、結論としては、

  • SKK の辞書は skkdic-expr 使ってマージして skkdic-sort でソートする事!

ですね、はい。

ちなみに

今回、必要となった skktools ですが、調べた範囲では nixpkgs では提供されてなかったので、 とりあえず自分でパッケージ定義を書いてなんとかしのぎました。まあ、そこでもちょっと苦戦してたけども。

こういう時、パッケージ定義をサラっと書いて突っ込めるパッケージマネージャは楽で良いですね。

以上

昼寝からの寝起きで記事を書いてたら、なんか、まとまりのない中身になったでござる……