В Emacs dired, как найти/посетить несколько файлов?

Если у меня есть несколько отмеченных файлов, как я могу найти/посетить все эти помеченные файлы в emacs, помимо запуска dired-find-file для каждого из них?

Есть ли встроенная команда или мне нужен дополнительный код lisp?

Ответ 1

Если вы добавите это в свои .emacs, вы сможете открыть файлы с помощью ключевого слова "F".

(eval-after-load "dired"
  '(progn
     (define-key dired-mode-map "F" 'my-dired-find-file)
     (defun my-dired-find-file (&optional arg)
       "Open each of the marked files, or the file under the point, or when prefix arg, the next N files "
       (interactive "P")
       (let* ((fn-list (dired-get-marked-files nil arg)))
         (mapc 'find-file fn-list)))))

Очевидно, вы можете просто переопределить встроенный 'f', если хотите.

Ответ 2

В Emacs 23.2 и выше доступен модуль dired-x.el, и он дает вам доступ к команде, которая делает именно то, что вы хотите. После его загрузки (просто (load "dired-x"), обычно) вы сможете вызвать функцию dired-do-find-marked-files. Вот его встроенная документация:

(dired-do-find-marked-files &optional NOSELECT)

Find all marked files displaying all of them simultaneously.
With optional NOSELECT just find files but do not select them.

The current window is split across all files marked, as evenly as possible.
Remaining lines go to bottom-most window.  The number of files that can be
displayed this way is restricted by the height of the current window and
`window-min-height'.

To keep dired buffer displayed, type C-x 2 first.
To display just marked files, type C-x 1 first.

Итак, после загрузки dired-x вы можете просто использовать M-x dired-do-find-marked-files RET, и вы получите именно то, что задает ваш вопрос: все отмеченные файлы будут посещаться так, как если бы вы запускали dired-find-file на всех из них.

Ответ 3

Вы можете попробовать dired +, который предоставляет много расширений для прошивки, включая возможность выбора нескольких файлов и поиска/просмотра всех них.