define-word 20150709.1223(in MELPA)
display the definition of word at point.

概要

define-word.el は、オンライン英英辞典 https://wordnik.com/
Emacsインターフェースを提供する新入りelispです。

<2015-05-24 Sun>時点においては2つのコマンドが用意されています。

どちらも単語の意味をエコーエリアに表示するものです。

M-x define-word-at-point はカーソル位置・regionの単語、
M-x define-word はミニバッファから入力された単語です。

20150524060646.png
Fig1: bufferの意味を表示

https://wordnik.com/words/buffer と比べてみてください。

表示される数は変数 define-word-limit (デフォルト:10) で変更できますが、
フレームの高さにも依存します。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてdefine-wordを使う方は
以下のコマンドを実行します。

M-x package-install define-word

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name define-word

コードを読んでみると

<2015-05-24 Sun>時点においては、本当に2つの関数しか定義されていません。

コードは50行程度と実に短いです。

本体は define-word 関数にあり、
url-retrieve 関数を呼び出しているだけです。

この関数は非同期にダウンロードするものであり、
第2引数はダウンロード後に実行されるコールバック関数です。

そこではダウンロードされた内容のバッファをカレントバッファとし、
HTMLを正規表現で解析して情報を抽出し、表示していることがわかります。

elispで書かれた クローラー のサンプルとしてほどよい難易度です。

この程度のものならばurl-retrieveでもいいですが、
本格的なものは request.el(レビュー) を使う方が賢明です。

また、define-wordという名前から、
将来的には他のサイトに対応するかもしれません。

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。