SKK 日本語入力 とその関連
TOP > チョロっとElisp > SKK 日本語入力 とその関連

1 SKK

Emacs をインストールした後、一番先に入れるのが SKK と言っても過言ではありません。
日本人なので、日本語を書けないと、どうしようもないので。(^^;

CVS 上で、よく更新されているので、できればメーリングリストを購読することをお勧めします。
かと言う私はロムってますが(^^;


目次

1.1 SKK のソースの取得

FreeBSD の ports に当然ありますが、CVS でソースを取得した方が良いと思います。

1.CVS からソースの入手

まず、CVS に login します
% cvs -d :pserver:guest@openlab.jp:/circus/cvsroot login 
パスワードの入力を求められますので、
パスワードとして guest を入れてリターン(CR)します。
CVS password: guest (CR) 
次にソースの取得(チェックアウト)です。
% cvs -d :pserver:guest@openlab.jp:/circus/cvsroot checkout skk/main 
すると、カレントディレクトリの下にできる skk/main にソースがコピーされます。

2. ソースの更新

ソースの更新は、ソースのあるディレクトリで、
% cvs update -d -P

1.2 APEL のインストール

実は SKK は APEL という elisp に依存していますので、
あらかじめ、APEL をインストールする必要があります(それを先に言えよ)

APEL の現在(2009/09/24(木))の最新版は APEL 10.7 です。
ソースは、http://kanji.zinbun.kyoto-u.ac.jp/~tomo/lemi/dist/apel/apel-10.7.tar.gz です。
もし、リンクが切れてても、いろんなところに転がってますので、大丈夫でしょう。

APEL のインストールは、ソースを展開したところで、
% make
# make install
もし、Emacs のバージョンを変更した場合、
再度 APEL をインストールし直す必要があります。
と言うことは、SKK もインストールし直す必要があると言うことです。

1.3 SKK のインストール

CVS で取得したソースのディレクトリで、
% make
# make install
するだけです。

1.4 SKK の設定

設定ファイルを ~/.skk.el と仮定すると、~/.emacs.el に
(setq skk-init-file "~/.skk.el")
としておいて、~/.skk.el に
(require 'skk-setup)

(global-set-key "\C-x\C-j" 'skk-mode) ; ← C-x C-j で SKK の起動
(global-set-key "\C-xj" 'skk-auto-fill-mode)
(global-set-key "\C-xt" 'skk-tutorial) ; ← C-x t でチュートリアルの起動

;; 辞書ファイルの指定
(setq skk-server-jisyo "/usr/local/share/skk/SKK-JISYO.L")

;; チュートリアルファイルの指定
(setq skk-tut-file "/usr/local/share/skk/SKK.tut")

;; 括弧など ( {「 " ' を入力すると自動的に閉じ括弧も入力される。
(setq skk-auto-insert-paren t)

;; 良く分かりません(いい加減)
(setq skk-search-prog-list
      '((skk-search-kakutei-jisyo-file skk-kakutei-jisyo 10000 t)
	(skk-search-jisyo-file skk-initial-search-jisyo 10000 t)
	(skk-search-jisyo-file skk-jisyo 0 t)
	(skk-search-small-dic)
	(skk-okuri-search)
	(skk-search-jisyo-file skk-large-jisyo 10000)
	(skk-search-server skk-aux-large-jisyo 10000)))

;; 個人辞書・レコードファイルの指定
(setq skk-record-file "~/.ddskk/record"
      skk-jisyo "~/.ddskk/jisyo"
      skk-backup-jisyo "~/.ddskk/jisyo.bak")

;; 半角カナを可能にする。日本語モードで C-q でトグルする。
(setq skk-use-jisx0201-input-method t)

;; ▼モードで RET を入力したときに確定のみ行い、改行はしない。
(setq skk-egg-like-newline t)

;; 変換時に註釈 (annotation) を表示する。
(setq skk-show-annotation t)

1.4.1 個人辞書ファイルを保存せずに Emacs を終了

個人辞書ファイルが何らかの理由で保存できないと、Emacs が終了できなくなります。

その時は、
M-x skk-kill-emacs-without-saving-jisyo
とすれば、個人辞書ファイルを保存せずに Emacs を終了できます。

1.5 SKK 辞書ファイル

SKK にはいろいろな辞書ファイルがあります。
配布先は http://openlab.ring.gr.jp/skk/skk/dic/ です

私は SKK-JISYO.L を使っていますが、他の辞書ファイルは、
http://openlab.ring.gr.jp/skk/wiki/wiki.cgi?page=SKK%BC%AD%BD%F1 の説明を見てもらった方が早いと思います。(手抜き)

1.5.1 SKK 辞書ファイルの編集

SKK の辞書ファイルは SKK-JISYO.L で、事足りるとは思いますが、
人名辞書等があるので、いっそのこと、辞書ファイルを合体させてしまいましょう。
ただ、辞書ファイルが大きいと、変換に時間が、かかりますから、 1.7 SKK サーバの導入 をした方が良いと思います。

1.5.1.1 skk-tools の導入

辞書ファイルの中味を結合したり、削除するには、skk-tools を使います。

FreeBSD の ports からインストールします。
# cd /usr/ports/japanese/skk-tools
# make install

1.5.1.2 skk-tools の使用

skk-tools の中には、skkdic-count skkdic-expr skkdic-expr2 skkdic-sort が
ありますが、実際に使うのは、skkdic-expr2 です。

例えば、A と B を結合し、C を削除した結果を D とする場合、
% skkdic-expr2 A + B - C > D
と言った感じで、直感的にも分かり易いです。

1.6 SKK の使い方

SKK の使い方は、はっきり言って、慣れるまで苦労します。
おまけに Shift キーを多用するので、左手の小指が「つる」かもしれません。
それでも、一旦慣れてしまうと Window* の IME なんて使う気になれません。

前置きが長くなりましたが、使い方は、まず、チュートリアル(M-x skk-tutorial)で練習しましょう。(またまた手抜き)

ざっと説明すると、
  1. かなモード
  2. 半角英数モード
  3. 全角英数モード
  4. 英単語変換モード
のモードがあり、漢字に変換する場合、
かなモードで、文字の最初をローマ字の大文字で入力します。

例えば、「開始」と変換する場合、「Kaisi」と入力します。

何はともあれ、チュートリアルで練習あるのみです。(またまた、それかい)

1.7 SKK サーバの導入

大きな辞書ファイルを使っていると、最初の変換に時間が結構かかったりします。
そこで、dbskkd-cdb という SKK サーバがあって、辞書を CDB 化することで、
変換を早くしてくれます。

SKK サーバには他にもいろいろ種類がありますが、私は dbskkd-cdb を利用しています。

1.7.1 dbskkd-cdb の導入

ソースからインストールは当然できますが、
FreeBSD の ports にありますので、それでインストールした方が全然楽です。
# cd /usr/ports/japanese/dbskkd-cdb
# make install
辞書ファイルは、SKK-JISYO.L の替わりに CDB 化した SKK-JISYO.L.cdb を使うことになりますが、
ports だと、それもインストールしてくれます。(何といたれりつくせり)

1.7.1.1 dbskkd-cdb の設定

1. /etc/inetd.conf の変更

dbskkd-cdb は inetd.conf から起動しますので、
/etc/inetd.conf に

skkserv 	stream	tcp	nowait	root	/usr/local/libexec/dbskkd-cdb dbskkd-cdb
を追加します。

2. /etc/rc.conf の変更

FreeBSD 6-stable では inetd.conf は デフォルトで動かないので、
/etc/rc.conf に

inetd_enable="YES"
を追加します。

3. /etc/hosts.allow の変更
/etc/hosts.allow に

# ローカルホストに SKK サーバがある場合
dbskkd-cdb : localhost 127.0.0.1 [::1] : allow
を追加します。

4. ~/.skk.el の変更

;; 辞書ファイルの指定
(setq skk-server-jisyo "/usr/local/share/skk/SKK-JISYO.L")
;; ローカルホストに SKK サーバがある場合
(setq skk-server-host "127.0.0.1")
(setq skk-server-prog "/usr/local/libexec/dbskkd-cdb")
(setq skk-server-jisyo "/usr/local/share/skk/SKK-JISYO.L.cdb")
に変更します。

1.7.1.2 辞書ファイルの CDB 化

1.5.1 SKK 辞書ファイルの編集 で、自分で辞書ファイルを編集(結合・削除)した場合、
その辞書ファイルを当然 CDB 化しないといけません。

dbskkd-cdb をインストールした時に入っている cdbmake を使うのですが、
よく分からないので(そんなの多いなあ)、
http://blog.2310.net/archives/193 から拝借した perlscript ちょっと編集して、使ってます。
skkdict2cdb という名前で、download に置いてます。

使い方は perl なので、
% perl skkdict2cdb 変換したい辞書ファイル名
で、CDB 化された辞書ファイルが、同じディレクトリにできます。
TOP > チョロっとElisp > SKK 日本語入力 とその関連
http://www.yumi-chan.com/