Emacsで使用するSKKの辞書の文字コードをutf-8にする

経緯

Emacs上で日本語入力をする際に SKK(現時点ではddskk-15.2)を使用しています。ただし文字コードがEUC-JPのため機種依存性文字(丸文字や全角ローマ字など)を登録することができませんでした。

そこでSKKで使用する辞書をutf-8化したので、その際の内容をメモしておきます。

設定

.emacs.elの設定

職場および自宅で同じ環境になるようにするために、辞書 ~/Dropbox/emacs/SKK に置いています。

(require 'skk-autoloads)
(global-set-key "\C-x\C-j" 'skk-mode)
;; (global-set-key "\C-xj" 'skk-auto-fill-mode)
;; (global-set-key "\C-xt" 'skk-tutorial)

(defvar skk-user-directory)
(setq skk-user-directory "~/Dropbox/emacs/SKK")

(require 'sticky)
(use-sticky-key 'henkan sticky-alist:ja)

ちなみに下2行は「変換」キーをsticky keyに割り当てるための設定です。 stickyパッケージをあらかじめインストールしておく必要があります。

initファイルの設定

辞書フォルダの作成(移動)

~/Dropbox/emacs/SKKに辞書ファイルやinitファイル(設定ファイル)を移動させます(すでにその場所にフォルダがある場合には省略)。

cd ~/Dropbox/emacs/SKK
nkf -w -Lu /usr/local/share/skk/SKK-JISYO.L > SKK-JISYO.L.utf8
nkf -w -Lu .skk-jisyo > skk-jisyo.utf8

で文字コードをutf-8に変換して先程のフォルダに配置します。実際に使用する辞書ファイルすべてをこのように utf-8に変更します。

辞書ファイル名の設定

initファイルの内容を以下のように変更します。

(setq skk-jisyo-code 'utf-8)

;; 使用する辞書の設定
(setq skk-cdb-large-jisyo "/usr/local/share/skk/SKK-JISYO.L.cdb")
(setq skk-large-jisyo "~/Dropbox/emacs/SKK/SKK-JISYO.L.utf8")

(setq skk-jisyo "~/Dropbox/emacs/SKK/skk-jisyo.utf8")
(setq skk-backup-jisyo "~/Dropbox/emacs/SKK/skk-jisyo.utf8.bak")

cdb形式の辞書を使用していない場合には skk-cdb-large-jisyo の設定はコメントアウトします。

また今回は、隠しファイルにする必要がないため個人辞書のファイル名の先頭のピリオドを削除しています。

辞書ファイルの設定

辞書ファイルへの単語の追加

以下のように個人辞書ファイルに単語を追加します(途中省略)。

1 /①/1/Ⅰ/
2 /②/2/Ⅱ/
3 /③/3/Ⅲ/
4 /④/4/Ⅳ/
5 /⑤/5/Ⅴ/

この場合にはSKKを使用できないため、 mozc で変換して個人辞書ファイルにコピーしました。

参考にした内容

今回の内容は、 http://openlab.ring.gr.jp/skk/skk/main/etc/dot.skk

;; 個人辞書の文字コードを指定する
;; (setq skk-jisyo-code 'utf-8)
;; 注) この設定は気をつけないと辞書の検索ができなくなりますので十分理
;;   解してから行ってください。 `skk-jisyo-code' は個人辞書の読み書きの
;;   他、L 辞書などの読み込みコードも決めている影響力の強い変数です。
;;   この設定をした場合は、まず個人辞書を上記のコードに変換しなければ
;;   いけません。その上で、さらに以下のいずれかの対処をする必要があり
;;   ます。
;;
;; 方針 1) Emacs のバッファに読み込む辞書を全て `skk-jisyo-code' と同じ
;;         文字コードに変換する

の部分を参考にしました。