From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.help Subject: RE: File System Traversal Map/Collect Date: Sun, 1 Jun 2008 12:41:41 -0700 Message-ID: <003501c8c41f$84792020$0200a8c0@us.oracle.com> References: <3f98cb6c-74c5-48de-b3cc-e944caf72b45@25g2000hsx.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1212349383 29834 80.91.229.12 (1 Jun 2008 19:43:03 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 1 Jun 2008 19:43:03 +0000 (UTC) To: "'harven'" , Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Jun 01 21:43:43 2008 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1K2tSs-0000P0-9p for geh-help-gnu-emacs@m.gmane.org; Sun, 01 Jun 2008 21:43:38 +0200 Original-Received: from localhost ([127.0.0.1]:41636 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K2tS6-0000Nw-91 for geh-help-gnu-emacs@m.gmane.org; Sun, 01 Jun 2008 15:42:50 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1K2tRq-0000Nl-8v for help-gnu-emacs@gnu.org; Sun, 01 Jun 2008 15:42:34 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1K2tRn-0000NL-OQ for help-gnu-emacs@gnu.org; Sun, 01 Jun 2008 15:42:33 -0400 Original-Received: from [199.232.76.173] (port=57042 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K2tRn-0000NI-IH for help-gnu-emacs@gnu.org; Sun, 01 Jun 2008 15:42:31 -0400 Original-Received: from agminet01.oracle.com ([141.146.126.228]:45258) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1K2tRm-0005qA-W6 for help-gnu-emacs@gnu.org; Sun, 01 Jun 2008 15:42:31 -0400 Original-Received: from agmgw2.us.oracle.com (agmgw2.us.oracle.com [152.68.180.213]) by agminet01.oracle.com (Switch-3.2.4/Switch-3.1.7) with ESMTP id m51JgRBZ025882; Sun, 1 Jun 2008 14:42:27 -0500 Original-Received: from acsmt350.oracle.com (acsmt350.oracle.com [141.146.40.150]) by agmgw2.us.oracle.com (Switch-3.2.0/Switch-3.2.0) with ESMTP id m51JgQJh029195; Sun, 1 Jun 2008 13:42:26 -0600 Original-Received: from inet-141-146-46-1.oracle.com by acsmt350.oracle.com with ESMTP id 3685777601212349287; Sun, 01 Jun 2008 12:41:27 -0700 Original-Received: from dradamslap1 (/24.5.171.3) by bhmail.oracle.com (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 01 Jun 2008 12:41:27 -0700 X-Mailer: Microsoft Office Outlook 11 In-Reply-To: Thread-Index: AcjEDwSNe5uhIZwSSFGgsOKddECHfwADp9sw X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198 X-Brightmail-Tracker: AAAAAQAAAAI= X-Brightmail-Tracker: AAAAAQAAAAI= X-Whitelist: TRUE X-Whitelist: TRUE X-detected-kernel: by monty-python.gnu.org: Linux 2.4-2.6 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:54414 Archived-At: > > I am trying to construct a general file system traversal function > > which operates (map/collect) on each file using a function as > > argument. Such a function could be query-replace-regexp() > > specializing it to the functions found in findr.el. > > M-x find-name-dired then the M and Q command in the resulting > Dired buffer allows to make a query replacement on a > bunch of files. The command find-name-dired makes use of the > unix find command though, so it is perhaps not so useful with > respect to what you want to achieve. > > There is also an extension called icicles which > seems to be able to do what you want -- apply > a function to a bunch of files, without relying on > some unix find command. Have a look at the wiki. In addition to what I mentioned in my previous reply - If you just want to do what `query-replace-regexp' does, instead of mapping an arbitrary function over files, then you can use `icicle-search'. You can use it with a saved set of file names, which you can create using `icicle-locate-file', as I mentioned previously. You can replace the current search hit at any time, which gives you behavior similar to `query-replace' but without requiring you to visit each occurrence and answer whether or not you want to replace it. You can visit only the hits you want, and replacement of any given hit is only on demand (`C-S-RET'). You can also change the replacement string at any time, and it can be anything that is allowed as a replacement by 'query-replace-regexp', which includes Lisp sexp evaluation via `\,'. Doc: http://www.emacswiki.org/cgi-bin/wiki/Icicles_-_Search-And-Replace