функция для вызова той же команды оболочки в Dired - PullRequest
1 голос
/ 01 декабря 2009

Я хотел бы иметь возможность вызывать одну и ту же команду оболочки для помеченных файлов в dired без необходимости в emacs для запроса ввода команды, поскольку команда всегда будет одинаковой. в частности, команда «open» (для Mac OS X).

Я пытался взломать функцию dired-do-shell-command в dired-aux.el, но не понимаю интерактивную строку.

В конце дня я хотел бы иметь возможность привязать эту функцию к C-o для режима Dired, чтобы мне не приходилось использовать Finder Mac OS X для навигации по файлам и их открытия. это позволит мне полностью перейти на emacs.

спасибо.

1 Ответ

4 голосов
/ 01 декабря 2009
(defun dired-open ()
  (interactive)
  (dired-do-async-shell-command
   "open" current-prefix-arg
   (dired-get-marked-files t current-prefix-arg)))

(define-key dired-mode-map (kbd "C-o") 'dired-open)

Edit:

Мы можем использовать save-window-excursion для защиты существующей конфигурации окна от неправильного использования выходным буфером:

(defun dired-open ()
  (interactive)
  (save-window-excursion
    (dired-do-async-shell-command
     "open" current-prefix-arg
     (dired-get-marked-files t current-prefix-arg))))
...