辞書検索もできるようになったのだからspot-lightもできるようにしたいじゃないか。mdfindコマンドでspot-light検索できることは知っていたのだけれど、プログラミングするのが面倒だなぁ、と思っていたらすごい簡単な方法があることを知る。
http://truongtx.me/2013/09/13/macos-spotlight-search-inside-emacs/
locateの実行コマンドをmdfindに置き換えるだけ。
というか、locateというコマンドのことなどすっかり忘れていた。ああ、そういえば、そんなもんあったな。
結果が表示されるlocateから「!」で「open」と実行してもいいんだけど、Meadowのころにどこかで見つけていれておいた、diredでの外部プロセス実行をマップすることに。(locate-modeはdired-modeを継承していたので)
;; diredで外部プロセス起動
(add-hook 'dired-mode-hook
(lambda ()
(define-key dired-mode-map
"W" 'dired-open)))
(defun dired-open ()
(interactive)
(let* ((file (dired-get-filename))
(extension (file-name-extension file)))
(deferred:process "open" file)))
;; locate-modeで外部プロセス起動
(add-hook 'locate-mode-hook
(lambda ()
(define-key locate-mode-map
"W" 'dired-open)))