changeset 42100:eb27208de620

(dired-copy-filename-as-kill): Moved from dired-x.el. (dired-mode-map): Bind w to dired-copy-filename-as-kill.
author Richard M. Stallman <rms@gnu.org>
date Mon, 17 Dec 2001 01:58:05 +0000
parents fbcd9b643c57
children 66b4582e344c
files lisp/dired.el
diffstat 1 files changed, 30 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/dired.el	Mon Dec 17 01:55:53 2001 +0000
+++ b/lisp/dired.el	Mon Dec 17 01:58:05 2001 +0000
@@ -962,6 +962,7 @@
     (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)
@@ -1632,6 +1633,35 @@
       (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
 
 (defun dired-buffers-for-dir (dir &optional file)