diff options
author | Juri Linkov <juri@linkov.net> | 2019-11-12 23:21:14 +0200 |
---|---|---|
committer | Juri Linkov <juri@linkov.net> | 2019-11-12 23:21:14 +0200 |
commit | d0351f4d2010e3e8f3ada04b045dede10f110d7f (patch) | |
tree | e7fa73d650e3149372ec15bc98acc1dfe0b9c01c /lisp/dired-aux.el | |
parent | 4cccf7659a4767274b383e5fc820e27391988cc7 (diff) | |
download | emacs-d0351f4d2010e3e8f3ada04b045dede10f110d7f.tar.gz emacs-d0351f4d2010e3e8f3ada04b045dede10f110d7f.tar.bz2 emacs-d0351f4d2010e3e8f3ada04b045dede10f110d7f.zip |
* lisp/dired.el (dired-dwim-target): Add new choices (bug#35385)
* lisp/dired.el (dired-dwim-target): Add choices
dired-dwim-target-next and dired-dwim-target-recent.
* lisp/dired-aux.el (dired-dwim-target-next)
(dired-dwim-target-recent): New functions.
(dired-dwim-target-directories): Call either of them.
* doc/emacs/dired.texi (Operating on Files): Mention new
preferences in dired-dwim-target.
Diffstat (limited to 'lisp/dired-aux.el')
-rw-r--r-- | lisp/dired-aux.el | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el index 184b507e1de..9f34b2afe99 100644 --- a/lisp/dired-aux.el +++ b/lisp/dired-aux.el @@ -1993,6 +1993,22 @@ Optional arg HOW-TO determines how to treat the target. (format prompt (dired-mark-prompt arg files)) dir default)) (defun dired-dwim-target-directories () + (cond ((functionp dired-dwim-target) + (funcall dired-dwim-target)) + (dired-dwim-target + (dired-dwim-target-next)))) + +(defun dired-dwim-target-next () + ;; Return directories from all next visible windows with dired-mode buffers. + (mapcan (lambda (w) + (with-current-buffer (window-buffer w) + (when (eq major-mode 'dired-mode) + (list (dired-current-directory))))) + (delq (selected-window) (window-list-1 + (next-window nil 'nomini 'visible) + 'nomini 'visible)))) + +(defun dired-dwim-target-recent () ;; Return directories from all visible windows with dired-mode buffers ;; ordered by most-recently-used. (mapcar #'cdr (sort (mapcan (lambda (w) |