Emacsに英辞郎導入
前回英辞郎を買ったのが5年以上前だったのに気づいたので,買い直した.
データしかいらないのでダウンロード版を購入
http://www.dlmarket.jp/products/detail/249143
まずはデータを解凍
mkdir ~/sdic mv EDP-140.zip ~/sdic unzip EDP-140.zip
sdicをインストール
sudo apt-get install sdic sdic-eijiro
途中,英辞郎の場所を聞かれるので /home/USERNAME/sdic/EIJIRO/ を指定
しかし,WAEI-140.TXTの変換で固まり,動かなくなったので手動で変換.
nkf -S -e EIJI-140.TXT | perl /usr/share/sdic/eijiro.pl > eijiro.sdic sudo mv eijiro.sdic /usr/share/dict/eijiro.sdic nkf -S -e WAEI-140.TXT | perl /usr/share/sdic/eijiro.pl --waei > waeijiro.sdic sudo mv waeijiro.sdic /usr/share/dict/waeijiro.sdic sudo dpkg --configure -a
これだと重いので,処理しやすいように変換してやるといいらしい
sudo apt-get install sary nkf -w eijiro.sdic > eijiro-utf8.sdic mksary -c UTF-8 eijiro-utf8.sdic nkf -w waeijiro.sdic > waeijiro-utf8.sdic mksary -c UTF-8 waeijiro-utf8.sdic
後は,.emacsを編集.
以下はEmacs + sdicから英辞郎v135を使えるようにするまでの顛末 - deruiの日記をほぼそのまま使っています.
;; --------------------------------------------------- ;; sdic ;; --------------------------------------------------- (autoload 'sdic-describe-word "sdic" "search word" t nil) (global-set-key "\C-ce" 'sdic-describe-word) (autoload 'sdic-describe-word-at-point "sdic" "カーソル位置の英単語の意味を調べる" t nil) (global-set-key "\C-ce" 'sdic-describe-word-at-point) (eval-after-load "sdic" '(progn (setq sdicf-array-command "/usr/bin/sary") ; コマンドパス (setq sdic-eiwa-dictionary-list '((sdicf-client "/usr/share/dict/eijiro-utf8.sdic" (strategy array))) sdic-waei-dictionary-list '((sdicf-client "/usr/share/dict/waeijiro-utf8.sdic" (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)
参考