[Top][All Lists]
[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.