Emacs + DDSKK + Riece (+ dbskkd-cdb)

Mac だと LimeChat が使いやすいのだけど,Linux 環境だと使えないので代替を探していて,結局 Riece に落ち着きそう.
そうなるとまぁ DDSKK は使いたいし,辞書は SKK server で統一して DDSKK からも uim-skk からも利用できるようにしたい.
AUR にも DDSKK, Riece, dbskkd-cdb のパッケージは無かったので自分で PKGBUILD 書いてついでに AUR にも上げておいた.
Arch ユーザなら yaourt -S emacs-ddskk emacs-riece dbskkd-cdb でインストール可能.依存関係で emacs-apel や tinycdb あたりも入る.


dbskkd-cdb は最初使い方がよくわからなかったけど,xinetd を利用して使うらしい.
/etc/xinetd.d/skkserv に

service skkserv
{
        socket_type = stream
        type        = UNLISTED
        wait        = no
        user        = dbskkd
        protocol    = tcp
        port        = 1178
        server      = /usr/lib/dbskkd-cdb/dbskkd-cdb
        # specify dictionary path
        server_args = /usr/share/skk/SKK-JISYO.cdb
        disable     = no
}

みたいに書いて /etc/rc.d/xinetd start で xinetd を立ち上げてやる.
ちなみに server_args として辞書のパスを指定しているが,オリジナルの dbskkd-cdb はパスを決め打ちしていたので,適当に argv[1] を使うように書き直してる.
あとは各種 IM において localhost:1178 を SKK server として設定してやれば使える.
cdb 形式の辞書は

% /usr/lib/ddskk-cdb/skktocdb.sh SKK-JISYO.L | cdb -c -t - SKK-JISYO.cdb

と作る.
自分はいろんな辞書を skkdic-expr2 でマージして大きな辞書を作って cdb 化したものを使っている.
skkdic-expr2 は skktools,有名な辞書は skk-jisyo という AUR のパッケージに含まれている.


DDSKK については ~/.emacs.d/init.el に

(require 'skk-autoloads)
(global-set-key (kbd "C-x C-j") 'skk-mode)
(setq skk-preload t)
(setq skk-user-directory "~/.emacs.d/ddskk")

とだけ書いて,設定や DDSKK 関連のファイルを ~/.emacs.d/ddskk 以下に置くようにした.
~/.emacs.d/ddskk/init には

(setq skk-server-host "localhost")
(setq skk-server-portnum 1178)

(setq skk-egg-like-newline t)
(setq skk-henkan-strict-okuri-precedence t)
(setq skk-check-okurigana-on-touroku 'auto)
(setq skk-show-annotation t)

(require 'skk-hint)

(setq skk-japanese-message-and-error t)
(setq skk-show-japanese-menu t)

くらいしか書いてない.
動的補完が人気あるらしいが,あんまり好きではない.
コーディングにおける補完機能も最初は好きじゃなかった*1が,今はもはや neocomplcache 無しで書きたくないくらい状態なのでまぁいつのまにか「動的補完最高!!」とか言ってるかもしれないけど.
個人的にはそれより skk-hint のほうが面白いと思う.

*1:初めての出会いが Eclipse で,やたらと補完が重かったということもある