【xyzzy】Grepしたときに特定のフォルダを除外する

Subversion使っているとローカルフォルダに「.svn」というフォルダが作成され 普通にGrepするとこれらのフォルダも検索して余計な時間がかかる。

そこで、Grepするときに任意のフォルダだけ除外するマクロを作りました。 .xyzzyとかに記述してご使用ください。

;;Grepをしたときに特定のディレクトは無視する
(defvar *ignore-scan-dirs* (list "dic" ".svn" ))
;;対象外にするフォルダ

(defvar *org-scan-files-1* (function ed::scan-files-1))
;; 元の関数

(defun ed::scan-files-1 (sFile pattern buffer scanner) (let (bSkip) (dolist (sDir *ignore-scan-dirs*) (setq sDir (append-trail-slash sDir)) (setq iPos (string-match sDir sFile)) (when iPos (setq bSkip t) (return))) (unless bSkip (funcall *org-scan-files-1* sFile pattern buffer scanner))))

追記: ggrepをアンインストールしたら「関数が定義されていません」と怒られてしまった。よく分からん。もし怒られるようならggrepをインストールすると直るかも。。。

追記2: ggrepは別に必要なく (require "grepd") を記述する必要があるみたい