Thank you very much, Tim. Sorry for my confusing illustration. You have point a good way to solve my problem. Changing grep-process-setup seems don't work, so I change the function of grep-find. One slight problem is that, since the grep command takes some time, even though we define an after-defadive, the function is executed before *grep* buffer is stable. My workaround is to sleep for some while. No idea whether we have better solution. (defadvice grep-find (after show-grep()) (save-excursion (setq SLEEP_INTERVAL 2) (set-buffer "*grep*") (sleep-for SLEEP_INTERVAL) (message "%d matches found" (- (count-lines (point-min) (point-max)) 6)) ) ) (ad-activate 'grep-find) On Mon, Jun 28, 2010 at 9:51 PM, Tim Landscheidt wrote: > filebat Mark wrote: > > >> > I am wondering how to show the count of matches when grep-find. Like > the > >> > following. > >> > ,----------- > >> > | -*- mode: grep; default-directory: > >> > "d:/ntemacs23/myemacs/private_data/out_of_svn/" -*- > >> > | Grep started at Mon Jun 28 17:46:18 > >> > | > >> > | find . -name ".svn" -prune -o -type f -print0 | xargs -0 -e grep > -inH > >> -e > >> > emacs > >> > | ./#tmp.txt#:7:#+TAGS: ARCHIVE(a) WEBPAGE(w) LIFE(l) EMACS(e) > >> IMPORTANT(i) > >> > HARD(h) COMPUTER(c) RECOMMENDATE(r) Tool(t) > >> > | ./#tmp.txt#:47438:* TODO log4j-mode in emacs > >> > | ./#tmp.txt#:47529:Hi emacsers > >> > | ./tmp.html:554:

HTML generated by org-mode 6.35i > in > >> > emacs 23

> >> > | ./tmp.html~:153:

HTML generated by org-mode 6.35i > in > >> > emacs 23

> >> > | ./tmp.txt:7:#+TAGS: ARCHIVE(a) WEBPAGE(w) LIFE(l) EMACS(e) > IMPORTANT(i) > >> > HARD(h) COMPUTER(c) RECOMMENDATE(r) Tool(t) > >> > | ./tmp.txt:47438:* TODO log4j-mode in emacs > >> > | > >> > | Grep finished (7 matches found) at Mon Jun 28 17:46:20 > >> > `----------- > > >> > IMHO, one feasible way may be counting the output of *grep* buffer. > >> > Before moving any further, I am very willing to hear your ideas, > comment > >> or > >> > codesnipet for this? > > >> - "find ... | xargs -0r grep ... | wc -l"? > >> - "find ... | xargs -0r cat | grep -c"? > >> - Read "(7 matches found)"? > > > Your commands can help to count the matches, however my point is to get > both > > the matches and the count of how many matches. ^-^ > > Your point /was/ "how to show the count of matches". For > your current point, you could: > > a) put something like: > > | (save-excursion > | (set-buffer "*grep*") > | (message > | "%d matches found" > | (- (count-lines (point-min) (point-max)) > | 6))) > > on a hot key, > > b) defadvice grep-process-setup/set grep-setup-hook so that > the above will be executed when grep finishes. > > Tim > > > -- Thanks & Regards Denny Zhang