以前は辞書引きアプリとしてJammingを使っていて、Emacsから辞書引きができるように設定していました(最初は日本語が通らなかったのですが、2ちゃんで質問やらやりとりやらやって、ちゃんとうごくようにしました。名無しで参加してましたがあれは私です。いまでも探せばアーカイブが出てきます:)。

さて、Leopardの辞書.app (Dictionary.app)は大変便利です。SafariみたいなCocoaアプリでは、単語を選択してCommand-Control-dで辞書が引けます。

これemacsからやりたいなー、と思っていたのですが、Dictionary.appのAPIがわからなくて(AppleScriptに対応してないみたいだし)、諦めていたのですが、方法がありましたよそれもとても簡単なのが。Tiger/Leopardでは、"dict://"というスキームでURLひらけば辞書が引けるのでした! 全く知らなかった。調査能力が低いです。というか、どこにそのドキュメントがあるのかも今の時点で分かりません。

というわけで、大変簡単ですがCarbon EmacsでDictionary.appを使うelisp書いてみました。jammingのときと同じキーバインドにしています。region 指定で辞書引くってのは全く使わないので今回は省略です。

;MacOS X Dict
(require 'thingatpt)
(defun macdict-lookup (word)
"Lookup word with Dictionary.app"
(call-process "open" nil 0 nil (concat "dict://" word)))
(defun macdict-lookup-word ()
"Lookup the word at point with Dictionary.app."
(interactive)
(macdict-lookup (word-at-point)))
(global-set-key "\M-l" 'macdict-lookup-word)

引きたい単語の上にポインタを置いて、M-lで 辞書.appが立ちあがります。

Cocoaアプリみたいなパネルで表示できるともっと嬉しいんだけど、あれはCocoaな親プロセスがいないと使えないのかな。

(追記 2009.3.6 15:00)
Carbon Emacsのmac-key-mode使えばコンテクストメニューで辞書引けるんですね...。しかもだいぶ前から実装されていました...。そのソースみれば、browse-urlで辞書引くってのが一目瞭然でした...。