unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* dired and multi-occur
@ 2009-12-04 15:30 Dirk80
  2009-12-04 18:21 ` Andreas Politz
  2009-12-05  7:59 ` Kevin Rodgers
  0 siblings, 2 replies; 6+ messages in thread
From: Dirk80 @ 2009-12-04 15:30 UTC (permalink / raw)
  To: Help-gnu-emacs


Hi,

I would like to search a string through multiple files. I like multi-occur a
lot. It would be great if it is possible to combine dired and multi-occur. I
want that multi-occur is applied to all marked files.

Let's say the name of the interactive function to do this is
"my-dired-multi-occur". If the user invokes this function via M-x
my-dired-multi-occur the user shall be asked for a search string. All marked
files shall be searched via dired. If the file does not contain the
search-string it shall be closed again.

I tried to write a function doing this. But I'm an elisp newbie and don't
get it.

(defun my-dired-multi-occur (string)
  "Search string in files marked in dired."
  (interactive "MSearch-String:")
  (require 'dired)
  (multi-occur (mapc 'find-file (dired-get-marked-files)) string))

I get the following result, when I'm invoking this function when I have
opened dired and marked three files: M-x my-dired-multi-occur
Search-String: init

Searched 0 buffers (3 killed); no matches for `init'

---
My problem seems to be that multi-occur is not getting a list of buffers.
The other problem I have: How can I close all files which do not contain the
search-string.

Thank you very much for your help in advance.

Dirk
-- 
View this message in context: http://old.nabble.com/dired-and-multi-occur-tp26635922p26635922.html
Sent from the Emacs - Help mailing list archive at Nabble.com.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: dired and multi-occur
  2009-12-04 15:30 dired and multi-occur Dirk80
@ 2009-12-04 18:21 ` Andreas Politz
  2009-12-09  9:14   ` Dirk80
  2009-12-05  7:59 ` Kevin Rodgers
  1 sibling, 1 reply; 6+ messages in thread
From: Andreas Politz @ 2009-12-04 18:21 UTC (permalink / raw)
  To: help-gnu-emacs

Dirk80 <dirk@dirkundsari.de> writes:

> Hi,
>
> I would like to search a string through multiple files. I like multi-occur a
> lot. It would be great if it is possible to combine dired and multi-occur. I
> want that multi-occur is applied to all marked files.
>
> Let's say the name of the interactive function to do this is
> "my-dired-multi-occur". If the user invokes this function via M-x
> my-dired-multi-occur the user shall be asked for a search string. All marked
> files shall be searched via dired. If the file does not contain the
> search-string it shall be closed again.
>
> I tried to write a function doing this. But I'm an elisp newbie and don't
> get it.
>
> (defun my-dired-multi-occur (string)
>   "Search string in files marked in dired."
>   (interactive "MSearch-String:")
>   (require 'dired)
>   (multi-occur (mapc 'find-file (dired-get-marked-files)) string))

You need to use `mapcar'.

>
> I get the following result, when I'm invoking this function when I have
> opened dired and marked three files: M-x my-dired-multi-occur
> Search-String: init
>
> Searched 0 buffers (3 killed); no matches for `init'
>
> ---
> My problem seems to be that multi-occur is not getting a list of buffers.
> The other problem I have: How can I close all files which do not contain the
> search-string.
>

You can examine the occur buffer afterwards with `occur-next',
`occur-mode-find-occurrence', `marker-buffer' and `buffer-file-name'.


> Thank you very much for your help in advance.
>
> Dirk

-ap





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: dired and multi-occur
  2009-12-04 15:30 dired and multi-occur Dirk80
  2009-12-04 18:21 ` Andreas Politz
@ 2009-12-05  7:59 ` Kevin Rodgers
  2009-12-05 10:20   ` Thierry Volpiatto
  1 sibling, 1 reply; 6+ messages in thread
From: Kevin Rodgers @ 2009-12-05  7:59 UTC (permalink / raw)
  To: help-gnu-emacs

Dirk80 wrote:
> I would like to search a string through multiple files. I like multi-occur a
> lot. It would be great if it is possible to combine dired and multi-occur. I
> want that multi-occur is applied to all marked files.

Why not:

,----[ C-h k A ]
| A runs the command dired-do-search
|   which is an interactive autoloaded Lisp function in `dired-aux'.
| It is bound to A, <menu-bar> <operate> <search>.
| (dired-do-search regexp)
|
| Search through all marked files for a match for regexp.
| Stops when a match is found.
| To continue searching for next match, use command M-,.
`----

-- 
Kevin Rodgers
Denver, Colorado, USA





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: dired and multi-occur
  2009-12-05  7:59 ` Kevin Rodgers
@ 2009-12-05 10:20   ` Thierry Volpiatto
  0 siblings, 0 replies; 6+ messages in thread
From: Thierry Volpiatto @ 2009-12-05 10:20 UTC (permalink / raw)
  To: help-gnu-emacs

Kevin Rodgers <kevin.d.rodgers@gmail.com> writes:

> Dirk80 wrote:
>> I would like to search a string through multiple files. I like multi-occur a
>> lot. It would be great if it is possible to combine dired and multi-occur. I
>> want that multi-occur is applied to all marked files.
>
> Why not:
>
> ,----[ C-h k A ]
> | A runs the command dired-do-search
> |   which is an interactive autoloaded Lisp function in `dired-aux'.
> | It is bound to A, <menu-bar> <operate> <search>.
> | (dired-do-search regexp)
> |
> | Search through all marked files for a match for regexp.
> | Stops when a match is found.
> | To continue searching for next match, use command M-,.
> `----

Also, traverselisp.el does all that and anything-traverse.el does that
incrementally. See:
http://mercurial.intuxication.org/hg/traverselisp

-- 
A + Thierry Volpiatto
Location: Saint-Cyr-Sur-Mer - France





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: dired and multi-occur
       [not found] <mailman.12194.1259940624.2239.help-gnu-emacs@gnu.org>
@ 2009-12-05 14:03 ` Michael Heerdegen
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Heerdegen @ 2009-12-05 14:03 UTC (permalink / raw)
  To: help-gnu-emacs

color-moccur.el has a `dired-do-moccur' command.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: dired and multi-occur
  2009-12-04 18:21 ` Andreas Politz
@ 2009-12-09  9:14   ` Dirk80
  0 siblings, 0 replies; 6+ messages in thread
From: Dirk80 @ 2009-12-09  9:14 UTC (permalink / raw)
  To: Help-gnu-emacs



Andreas Politz wrote:
> 
> You need to use `mapcar'.
> 

Hi,

thank you very much. `mapcar' is the solution. 

Here the code:
(defun my-dired-multi-occur (string)
  "Search string in files marked by dired."
  (interactive "MList lines matching regexp: ")
  (require 'dired)
  (multi-occur (mapcar 'find-file (dired-get-marked-files)) string))

And thank you for the other answers. 
`dired-do-moccur' is also working fine.

Greetings,
Dirk
-- 
View this message in context: http://old.nabble.com/dired-and-multi-occur-tp26635922p26707171.html
Sent from the Emacs - Help mailing list archive at Nabble.com.





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-12-09  9:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-04 15:30 dired and multi-occur Dirk80
2009-12-04 18:21 ` Andreas Politz
2009-12-09  9:14   ` Dirk80
2009-12-05  7:59 ` Kevin Rodgers
2009-12-05 10:20   ` Thierry Volpiatto
     [not found] <mailman.12194.1259940624.2239.help-gnu-emacs@gnu.org>
2009-12-05 14:03 ` Michael Heerdegen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).