Commit a3f4a3ef authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(dired-copy-filename-as-kill): Moved from dired-x.el.

(dired-mode-map): Bind w to dired-copy-filename-as-kill.
parent 34630d66
......@@ -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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment