[gnu.emacs] Multi-Buffer search?

paul@gill.UUCP (Paul Nordstrom) (08/25/89)

Within gnu emacs, is there a simple way to search for a string across
*all* buffers currently loaded?  I have looked with reasonable
diligence through TFM and see no reference to such a function.  If
there is no standard way to do this, has anyone written a function to
perform this type of search?  Thanks in advance for any help with this
question.




-- 
Paul Nordstrom
Gill & Co., L.P.
uunet!gill!paul

roy@sts.sts.UUCP (08/26/89)

/* Written 12:56 pm  Aug 24, 1989 by paul@gill.UUCP in sts:gnu.emacs */
/* ---------- "Multi-Buffer search?" ---------- */

Within gnu emacs, is there a simple way to search for a string across
*all* buffers currently loaded?  I have looked with reasonable
diligence through TFM and see no reference to such a function.  If
there is no standard way to do this, has anyone written a function to
perform this type of search?  Thanks in advance for any help with this
question.




-- 
Paul Nordstrom
Gill & Co., L.P.
uunet!gill!paul
/* End of text from sts:gnu.emacs */

How 'bout GNU grep?  (sorry, I couldn't resist!  Sounds like a good
idea though ...)

montnaro@sprite.crd.ge.com (Skip Montanaro) (08/26/89)

REgarding GNU grep, there is a grep command defined in compile.el that lets
you use next-error to march through the grep output. If all your buffers are
associated with files, this may be a simple solution to the problem.

--
Skip Montanaro (montanaro@sprite.crd.ge.com)

tk@RESEARCH.ATT.COM (08/26/89)

 how bout:
 (defun search-buffers (s &optional fn)
   (interactive "sString: ")
   (if (null fn) (setq fn (symbol-function 'recursive-edit)))
   (save-excursion
     (catch 'search-buffers-abort
       (mapcar (function
		(lambda (x)
		  (message "searching %s..." (buffer-name x))
		  (set-buffer x)
		  (save-excursion
		    (save-restriction
		      (widen)
		      (goto-char (point-min))
		      (if (search-forward s nil t)
			  (progn
			    (switch-to-buffer x)
			    (funcall fn)
			    (while (search-forward s nil t)
			      (funcall fn))))))))
	       (buffer-list)))))
 (defun screwit ()
   "quick way out of search-buffers"
   (interactive)
   (throw 'search-buffers-abort nil))