2009-07-10 4 views

ответ

19

Если вы добавите это в свои .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

Спасибо за это! Небольшая стилистическая точка, но вам не нужно использовать 'let *' в этом случае ('let' достаточно). И действительно, мы могли бы просто упростить эту последнюю форму для '(mapc 'find-file (dired-get-marked-files nil arg))'. – camdez

6

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

28

В 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, вы можете просто использовать Mxdired-do-find-marked-filesRET, и вы получите именно то, что просит ваш вопрос: все отмеченные файлы будут посещены в хотя вы бы запустили dired-find-file на всех из них.

+0

Мой дуэльный режим не распознает эту команду, и я нахожусь на 23.4 – Malabarba

+1

@Bruce Connor: возможно, у вас нет установленного dired-x. Попробуйте добавить '(add-hook 'dired-load-hook (function (lambda() (load" dired-x "))))' в '.emacs'. – Adobe

+2

Клавиша «F» - это комбинация клавиш для файлов, отмеченных по умолчанию, по крайней мере, в Emacs 24.4. – thdox