From: Richard M. Stallman Date: Mon, 17 Dec 2001 01:58:05 +0000 (+0000) Subject: (dired-copy-filename-as-kill): Moved from dired-x.el. X-Git-Tag: ttn-vms-21-2-B4~17668 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a3f4a3ef81488a32a7bcc9399f9226d6e081bb45;p=emacs.git (dired-copy-filename-as-kill): Moved from dired-x.el. (dired-mode-map): Bind w to dired-copy-filename-as-kill. --- diff --git a/lisp/dired.el b/lisp/dired.el index bc49f0bf301..d4cbe4f936e 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -962,6 +962,7 @@ If DIRNAME is already in a dired buffer, that buffer is used without refresh." (define-key map "t" 'dired-do-toggle) (define-key map "u" 'dired-unmark) (define-key map "v" 'dired-view-file) + (define-key map "w" 'dired-copy-filename-as-kill) (define-key map "x" 'dired-do-flagged-delete) (define-key map "y" 'dired-show-file-type) (define-key map "+" 'dired-create-directory) @@ -1631,6 +1632,35 @@ regardless of the language.") nil (point)))) + +;;; COPY NAMES OF MARKED FILES INTO KILL-RING. + +(defun dired-copy-filename-as-kill (&optional arg) + "Copy names of marked (or next ARG) files into the kill ring. +The names are separated by a space. +With a zero prefix arg, use the complete pathname of each marked file. +With \\[universal-argument], use the relative pathname of each marked file. + +If on a subdir headerline, use subdirname instead; prefix arg is ignored +in this case. + +You can then feed the file name(s) to other commands with \\[yank]." + (interactive "P") + (let ((string + (or (dired-get-subdir) + (mapconcat (function identity) + (if arg + (cond ((zerop (prefix-numeric-value arg)) + (dired-get-marked-files)) + ((integerp arg) + (dired-get-marked-files 'no-dir arg)) + (t ; else a raw arg + (dired-get-marked-files t))) + (dired-get-marked-files 'no-dir)) + " ")))) + (kill-new string) + (message "%s" string))) + ;; Keeping Dired buffers in sync with the filesystem and with each other