【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") を記述する必要があるみたい