MacOSのSpotliteをコマンド(mdfind)からEmacsで使えることは知っていたのだけど、ほとんど使ってなかった。下記のようにしてlocateのかわりにしていたのだけど。
(setq locate-command "mdfind")
検索がファイル名のリストで、しかもファイルの中身や、タグもひっかかってしまうので、わけがわからなかったからだ。Spotliteだと、プレビューがあるからいいのだけど。でもファイル検索はやはりfindを使うより圧倒的に早い。
el-getでmdfind-dired.elを落としてきたりした。mdfind-dired-nameでファイル名検索もできる。でもやっぱりhelmから使いたいよね。
というわけでググってみた。
helm-locateから使うには
(setq helm-locate-command (case system-type ('gnu/linux "locate -i -r %s") ('berkeley-unix "locate -i %s") ('windows-nt "es %s") ('darwin "mdfind -name %s %s") (t "locate %s")))
で、helm-spotliteをつくる方法も同じとことにあった。
(defun helm-spotlight () (interactive) (helm :buffer "*helm: spotlight*" :sources '(helm-source-mac-spotlight)))
Use mdfind instead of locate in helm-locate in OS X layer
;; locateのコマンドで引数を使う方法(こんな感じ?) (setq locate-make-command-line (lambda(x) (list locate-command "-name" search-string)))