help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Simple useful function


From: Drew Adams
Subject: RE: Simple useful function
Date: Mon, 5 Jul 2010 16:34:05 -0700

> Is there a way to do this sort of stuff with dired (perhaps involving
> magit)? E.g. how would one limit dired to showing just the files that
> git is tracking?

If you have an Emacs function that returns those file names (absolute or
relative), then you can open a Dired buffer for just those files.

You do that by calling `dired' with a cons arg: the list of file names.  If the
files are not all in the same directory, then use absolute names.  For example:

 (dired "My GIT Files" '("/my/first/file" "/my/2nd/file"...))

`C-h f dired':

,----
| dired is an interactive compiled Lisp function in `dired.el'.
...
| (dired DIRNAME &optional SWITCHES)
...
| If DIRNAME is a cons, its first element is taken as the directory name
| and the rest as an explicit list of files to make directory entries for.
| You can move around in it with the usual commands.
...
`----

You can do more than "move around in it"!  All Dired operations work normally on
the files listed.

The file names can be a mix of local and remote, absolute and relative.

This is an important and little known Dired feature.  IMHO, it is not well
documented.  And that's probably why it had a few bugs wrt remote files until
this year.  Little attention is drawn to this feature, yet it is very useful.
You can use it to organize files into projects etc.  Define specific commands
that give you just the sets of files you want.

Combine this feature with an ability to bookmark Dired buffers and you have a
flexible way to get quickly to and operate on a given set of files, without
defining specialized commands.  With Bookmark+, you can not only bookmark an
arbitrary Dired buffer (saving the current Dired switches, markings, and subdir
showings).  You can also open a Dired buffer on the bookmarks currently marked
in the `*Bookmark List*'.  http://www.emacswiki.org/emacs/BookmarkPlus





reply via email to

[Prev in Thread] Current Thread [Next in Thread]