tags:

views:

218

answers:

1

In Emacs using ido-mode allows me to open a file from the minibuffer with C-x C-f. This method opens only one file at a time. How do I open all the files in a directory or specify more than one file to open?

+4  A: 

You can just provide * as the file name and press Enter; you'll be asked for a confirmation and if you press Enter a second time, all files in the directory will be opened.

Note that "opening all files in a directory" involves opening dired buffers for all of its subdirectories.

When not using ido-mode -- at the basic Emacs find-file prompt -- you can use the same * to open all files in a directory. When you do use ido-mode to find files, you can always press C-f to drop back to the usual Emacs find-file prompt. (You can use ido to speed up getting to some directory you're interested in first and drop to the basic find-file in there.) That's one way of creating a new file with ido (the other being the C-j binding); also, it gives you another way of using the above mentioned * trick.

Michał Marczyk
When I try this (`C-x C-f` `*`), I just get a buffer named `*`. Would you have a guess what the problem might be?
unutbu
@~unutbu: Which version of Emacs are you using? I'm on 23.1.50.1 (using the ido.el bundled with Emacs) and I've just checked that it works even without my config, with or without ido.
Michał Marczyk
@~unutbu: Actually, there's a variable called `find-file-wildcards` which needs to be set to a non-`nil` value for wildcard expansion to work. See `/usr/share/emacs/<version>/lisp/files.el.gz` (please adjust this path for your platform; or say `C-h f find-file <RET>`, then press `<RET>` again with point on `files.el`), line 1314 (in my version), in the definition of the `find-file` function. Let me know if this helps and I'll edit the answer to take it into account.
Michał Marczyk
@Michal: Thank you for your help! I had `(require 'ffap)` in my .emacs. When I remove `(require 'ffap)`, I get the behavior you describe.
unutbu
@~unutbu: Sure thing! Glad it works for you now. :-) As far as I can tell, `ffap` should adjust its behaviour depending on the value of `find-file-wildcards` -- no guarantees, but perhaps you might want to try it out with a `(setq find-file-wildcards t)` in your `~/.emacs`.
Michał Marczyk