環境
Fedora15 x64 + Emacs23
必要なもの
英辞郎(かなり古いものを使っています)
sdic
sary
nkf
saryのインストール
x64環境でコンパイルしようとしたらハマったので大人しくビルド済みのものを利用する。
http://ftp.yz.yamagata-u.ac.jp/pub/linux/Vine/VineSeed/x86_64/RPMS.plus/sary-1.2.0-2vl6.x86_64.rpm
# sary -v
# mksary --version
辞書の加工
現在の辞書がEUC形式なのでUTF-8へ変換する。
$ nkf -g eijirou.sdic
EUC-JP
$ nkf -g waeijirou.sdic
EUC-JP
$ nkf -w eijirou.sdic > eijirou.sdic.utf8
$ nkf -w waeijirou.sdic > waeijirou.sdic.utf8
インデックスの作成
$ mksary -c UTF-8 eijirou.sdic.utf8
$ mksary -c UTF-8 waeijirou.sdic.utf8
変換するとファイルが大きくなるので注意
-rwxr--r--. 1 56M 10月 8 20:52 eijirou.sdic -rw-rw-r--. 1 69M 10月 8 22:32 eijirou.sdic.utf8 -rw-rw-r--. 1 176M 10月 8 22:34 eijirou.sdic.utf8.ary -rwxr--r--. 1 53M 10月 8 20:52 waeijirou.sdic -rw-rw-r--. 1 63M 10月 8 22:32 waeijirou.sdic.utf8 -rw-rw-r--. 1 145M 10月 8 22:34 waeijirou.sdic.utf8.ary
Emacs側の設定
sdicはこちらから入手してload-pathを通しておく。
設定はここを参考にして記述。
;; ---------------------------------------------------
;; sdic
;; ---------------------------------------------------
(autoload 'sdic-describe-word "sdic" "search word" t nil)
(global-set-key "\C-cw" 'sdic-describe-word)
(autoload 'sdic-describe-word-at-point "sdic" "カーソル位置の英単語の意味を調べる" t nil)
(global-set-key "\C-cW" 'sdic-describe-word-at-point)
(eval-after-load "sdic"
'(progn
(setq sdicf-array-command "/usr/bin/sary") ; コマンドパス
(setq sdic-eiwa-dictionary-list
'((sdicf-client "~/.emacs.d/dict/eijirou.sdic.utf8" (strategy array)))
sdic-waei-dictionary-list
'((sdicf-client "~/.emacs.d/dict/waeijirou.sdic.utf8" (strategy array))))
;; saryを直接使用できるように sdicf.el 内に定義されているarrayコマンド用関数を強制的に置換
(fset 'sdicf-array-init 'sdicf-common-init)
(fset 'sdicf-array-quit 'sdicf-common-quit)
(fset 'sdicf-array-search
(lambda (sdic pattern &optional case regexp)
(sdicf-array-init sdic)
(if regexp
(signal 'sdicf-invalid-method '(regexp))
(save-excursion
(set-buffer (sdicf-get-buffer sdic))
(delete-region (point-min) (point-max))
(apply 'sdicf-call-process
sdicf-array-command
(sdicf-get-coding-system sdic)
nil t nil
(if case
(list "-i" pattern (sdicf-get-filename sdic))
(list pattern (sdicf-get-filename sdic))))
(goto-char (point-min))
(let (entries)
(while (not (eobp)) (sdicf-search-internal))
(nreverse entries))))))
(defadvice sdic-forward-item (after sdic-forward-item-always-top activate)
(recenter 0))
(defadvice sdic-backward-item (after sdic-backward-item-always-top activate)
(recenter 0))))
(setq sdic-default-coding-system 'utf-8-unix)
C-c w で単語を入力するか、調べたい単語にカーソルをあわせてC-c W で検索できる。

0 件のコメント:
コメントを投稿