2015年1月11日

SKKの個人辞書

あけましておめでとうございます。

SKK風の入力方式には様々な実装があり、それぞれの実装毎で個人辞書が管理されています。
色んな環境を使用する人にとって、どの実装でも共通の個人辞書を使えないか、という考えが浮ぶのは自然なことかと思います。

そこで、SKK辞書サーバーを拡張して辞書検索のみならず辞書登録も可能なサーバーがあればいいのでは、という発想もまた自然なことだと思います。そのような機能を持ったサーバーで現在公開されているものは存在しないようですが、GoogleDriveやDropboxのAPIを使ったりできたら非常に面白いかな、と個人的には思ったりしています。

さて、SKKの個人辞書はEUC-JPやUTF-8などのプレーンテキストなので、ユーザーにとって適当なタイミングで取り込んだりしたほうが柔軟性があって良いのもまたしかりです。

以前 .skk-jisyo を自動的に取り込めないかという要望が寄せられたことがありました。 そこで回答したcveuc.exemeskkdicw.exeを使って.skk-jisyoをCorvusSKKの個人辞書に取り込むバッチファイルを一部改変したものを以下に記述します。

----- ここから -----

pushd %~dp0

@rem サーバープロセスを終了
taskkill /im imcrvmgr.exe


@rem .skk-jisyoをUTF-16(LE)に変換 (.skk-jisyoがEUC-JIS-2004かEUC-JPの場合)
cveuc.exe -e -W "%USERPROFILE%\.skk-jisyo" skk-jisyo-utf16.txt

@rem .skk-jisyoをUTF-16(LE)に変換 (.skk-jisyoがUTF-8の場合)
@rem cveuc.exe -u -W "%USERPROFILE%\.skk-jisyo" skk-jisyo-utf16.txt


@rem ユーザー辞書とマージ (.skk-jisyoを優先する場合)
meskkdicw.exe skk-jisyo-utf16.txt + "%AppData%\CorvusSKK\userdict.txt" skk-jisyo-utf16-new.txt
meskkdicw.exe -O skk-jisyo-utf16.txt + "%AppData%\CorvusSKK\userdict.txt" skk-jisyo-utf16-new.txt

@rem ユーザー辞書とマージ (CorvusSKKのuserdict.txtを優先する場合)
@rem meskkdicw.exe "%AppData%\CorvusSKK\userdict.txt" + skk-jisyo-utf16.txt skk-jisyo-utf16-new.txt
@rem meskkdicw.exe -O "%AppData%\CorvusSKK\userdict.txt" + skk-jisyo-utf16.txt skk-jisyo-utf16-new.txt


@rem マージしたユーザー辞書をコピー
copy /y skk-jisyo-utf16-new.txt "%AppData%\CorvusSKK\userdict.txt"

@rem 一時ファイルを削除
del skk-jisyo-utf16.txt
del skk-jisyo-utf16-new.txt

@rem サーバープロセスを起動
start "" "%SystemRoot%\System32\IME\IMCRVSKK\imcrvmgr.exe"

popd

----- ここまで -----


昨年はSKK-JISYO.lispをコミットさせてもらったりしたので、今年はddskk本体でも何か貢献できればと思っています。ddskk本体の開発環境がSKK OpenLabのCVSからGitHubに移行し、EmacsのパッケージシステムであるMELPAに登録されたりと、オラなんだかわくわくしてきたぞ状態の今日この頃です。