emacs-devel
[Top][All Lists]
Advanced

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

RE: Find file in Dired - let M-n yank name at point?


From: Drew Adams
Subject: RE: Find file in Dired - let M-n yank name at point?
Date: Sun, 20 Aug 2006 13:17:38 -0700

    What about binding `C-x C-f', `C-x 4 f', `C-x C-v', and so on,
    in Dired, to Dired-specific commands that let you use `M-n' to
    yank (append) `dired-get-file-for-visit' onto the directory
    name that is the `default-filename' arg for `read-file-name'?

    That is, not change the default value for these commands,
    which is the directory name, but let you add the file name
    under the cursor to that directory name via `M-n'.

    `a', `f', `RET', `o', `e', and `mouse-2' visit the file under
    the cursor quickly, but they don't let you edit the name first.

    I haven't tried this yet; it just occurred to me. Don't know if
    it would be a good idea, but I can't see why not. Currently,
    `M-n' just says there is nothing available. Why not make this
    name available, and give `M-n' something useful to do in this
    situation?

This suggestion got no uptake either way, for or against.

FWIW, I've played with it now, and I like it. It takes nothing away from the
current behavior, I believe; it just lets you easily grab the file name that
the cursor is on.

The implementation can be trivial. This is one way to do it (in case you
want to play with it):

(defun find-file-read-args (prompt mustmatch)
  (list (let ((find-file-default
               (if (eq major-mode 'dired-mode)
                   (abbreviate-file-name (dired-get-file-for-visit))
                 (and buffer-file-name (abbreviate-file-name
                                         buffer-file-name)))))
          (minibuffer-with-setup-hook
              (lambda () (setq minibuffer-default find-file-default))
            (read-file-name prompt nil default-directory mustmatch)))
        t))

Again, the advantage over using, say, RET (`dired-find-file'), is that you
can edit the file name.





reply via email to

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