Emacs + 英辞郎 + SDIC を使っている人がちょびっと幸せになれるかもしれないハイライト追加設定

英辞郎第4版を amazon から購入して、Emacs + SDIC から利用できるよう環境を構築してみた。参考にしたのは以下の記事。

■参考URL

■追加設定
このままでもじゅうぶん便利だけど、「検索結果表示バッファで引いた単語をハイライト表示する」ともっとシアワセになれる気がしたので、そのためのアドバイスを作成してみた。以下の例だと引いた単語が黄色でハイライトされるため文章のどこで使われているかを瞬時に把握できるようになりちょっとウレシイ。d(^-^)

; 検索結果表示バッファで引いた単語をハイライト表示する
(defadvice sdic-search-eiwa-dictionary (after highlight-phrase (arg))
    (highlight-phrase arg "hi-yellow"))
(defadvice sdic-search-waei-dictionary (after highlight-phrase (arg))
    (highlight-phrase arg "hi-yellow"))

(ad-activate 'sdic-search-eiwa-dictionary)
(ad-activate 'sdic-search-waei-dictionary)

スクリーンショット


■キー割り当てと和英引き
デフォルトの C-cW とかだとちょっと指が辛いので、それぞれ独自のキーを以下のように割り当てている。ちなみに和英は文節区切りの判断がイマイチなのでリージョン指定(sdic-describe-region)で引くのがオススメ。d(^-^)(←これを完璧にやろうとすると日本語の字句解析になってしまうのである意味しょうがないカ…)

  • - [Insert] でカーソル上の語句を引く。
  • - [Home] でミニバッファに問い合わせて語句を引く。
  • - [Pause] でリージョンの語句を引く。
  • - 検索結果表示ウィンドウにカーソルを移動しない。
  • - [PageUp][PageDown] で検索結果表示ウィンドウをスクロールする。
  • - [End] で検索結果表示ウィンドウを閉じる。

■設定(ぜんぶ)
参考までに私の eijiro.el の設定を以下に。^^

; sdic.el の格納パス
(setq load-path (cons "/usr/local/share/emacs/site-lisp" load-path))

(autoload 'sdic-describe-word "sdic" "英単語の意味を調べる" t nil)
(autoload 'sdic-describe-word-at-point "sdic" "カーソルの位置の英単語の意味を調べる" t nil)

; 辞書データの格納パス
(setq sdic-eiwa-dictionary-list
      '*1
    (highlight-phrase arg "hi-yellow"))
(defadvice sdic-search-waei-dictionary (after highlight-phrase (arg))
    (highlight-phrase arg "hi-yellow"))

(ad-activate 'sdic-search-eiwa-dictionary)
(ad-activate 'sdic-search-waei-dictionary)

これで lang-8 の英語日記書くのがだいぶ楽になる気がする。(^-^)

■ひとりごと
今ちょっと考えているのは sdic をただ辞書を引かせるのではなく英語(単語)学習にもっと有効活用できるんじゃないかということ。例えば引いた単語を (word . (current-time-string)) の alist でデータとして保存しておけば後ほど、「この 1 週間で引いた単語をおさらい」とかできると思う。

* 実は以前英辞郎 on the WEB から引くためのモードを作成したのだけれど、アルクさんが独自の IF で引くことを禁止しているらしいので削除した。その時に highlight-phrase とかを使っていたのだけど、うまく活かせてよかった。(^-^;

英辞郎 第四版 (<CDーROM>(HY版))

英辞郎 第四版 ((HY版))

*1:sdicf-client "/home/kyagi/archive/sdic/eijiroV4-dict-data-SDIC/eijirou.sdic"))) (setq sdic-waei-dictionary-list '((sdicf-client "/home/kyagi/archive/sdic/eijiroV4-dict-data-SDIC/waeijirou.sdic"))) ; 辞書データの格納パス - sufary で高速化した場合 ;(setq sdic-eiwa-dictionary-list ; '((sdicf-client "/home/kyagi/acv/sdic/eijiroV4-dict-data-SDIC/eijirou.sdic" ; (strategy array)))) ;(setq sdic-waei-dictionary-list ; '((sdicf-client "/home/kyagi/acv/sdic/eijiroV4-dict-data-SDIC/waeijirou.sdic" ; (strategy array)))) (setq sdic-default-coding-system 'utf-8-unix) ; 検索結果表示ウインドウの高さ (setq sdic-window-height 20) ;検索結果表示ウインドウにカーソルを移動しないようにする (setq sdic-disable-select-window t) ;見出し語を表示するために使うフェイスと色 (setq sdic-face-style 'bold) (setq sdic-face-color "firebrick4") ; キー設定 (global-set-key [insert] 'sdic-describe-word-at-point) (global-set-key [home] 'sdic-describe-word) (global-set-key [pause] 'sdic-describe-region) (global-set-key [end] 'sdic-close-window) (global-set-key [next] 'scroll-other-window) (global-set-key [prior] 'scroll-other-window-down) ; 検索結果表示バッファで引いた単語をハイライト表示する (defadvice sdic-search-eiwa-dictionary (after highlight-phrase (arg