uim-fep with skk の辞書でハマった
読了まで:約1分
という小話。
ハマった内容
昨日の記事、
- [[開発環境を GCE Preemptible VM に移してる話]]
でも書いた様に、僕は今、開発環境を、
- CoreOS Alpha + NixPkgs
と言う妙な環境に移しているのですが、今日、その作業をしている時に、
uim-fep with skk で漢字変換は出来るけど、送り仮名が含まれる変換が出来ない!
という、何がなんだかという問題に遭遇していました。
ハマってた原因
で。
なんで漢字変換出来るのに、送り仮名が付いているとアカンのや……なんでや……
と言う感じで色々ググったり設定を変えたりしていたのですが、 どうにも問題を修正出来ず、一時、作業を中断して調べ直したところ、
あ、これってもしや辞書が原因なんちゃう?
と途中で気がついて、まあ、色々やり直したところ、
複数の skk 辞書を正しくない方法で結合してた
と言うのが直接の原因だった、という事が判りました。
原因の解説
これ、すべての SKK 処理系が同じ様な実装なのかは判りませんが、 少なくとも、オリジナルの ddskk と uim-fep の skk では、
SKK の辞書をマージ する時は、 skktools の
skk-expr
を使って辞書を結合し、 なおかつ、その辞書はskkdic-sort
を用いソート済みにしなければならない
と言うのが要求される仕様っぽかったです。 それで、僕が行なってしまっていた辞書の結合方法は、単純に、
複数の辞書を
cat
して 結合しただけだった
って言うのが、まあ、妙な挙動になってた原因でした、はい。
対策法
まあ、結論としては、
- SKK の辞書は
skkdic-expr
使ってマージしてskkdic-sort
でソートする事!
ですね、はい。
ちなみに
今回、必要となった skktools
ですが、調べた範囲では nixpkgs では提供されてなかったので、
とりあえず自分でパッケージ定義を書いてなんとかしのぎました。まあ、そこでもちょっと苦戦してたけども。
こういう時、パッケージ定義をサラっと書いて突っ込めるパッケージマネージャは楽で良いですね。
以上
昼寝からの寝起きで記事を書いてたら、なんか、まとまりのない中身になったでござる……