Как я могу открывать файлы извне в режиме Emacs? - PullRequest
28 голосов
/ 27 июля 2011

Я хочу открыть PDF с evince вместо режима DocView. Есть ли возможность открыть файл с помощью определенной команды, например «evince»?

Ответы [ 6 ]

23 голосов
/ 27 июля 2011

Да.Используйте ! в то время как в dired, чтобы запустить команду оболочки для файла.

В случае evince разумнее использовать &, что приведет к асинхронному запуску команды, поэтому emacsможно использовать, пока у вас открыт PDF.

18 голосов
/ 27 июля 2011

Существует более одного способа сделать это. Я предлагаю OpenWith библиотека. Настройка для вашего случая может выглядеть так:

(add-to-list 'load-path "/path/to/downloaded/openwith.el")
(require 'openwith)
(setq openwith-associations '(("\\.pdf\\'" "evince" (file))))
(openwith-mode t)

Устанавливает обработчик файлов, который будет работать как с dired, так и с find-file.

9 голосов
/ 28 июля 2011

Попробуй это.

(defun dired-open-file ()
  "In dired, open the file named on this line."
  (interactive)
  (let* ((file (dired-get-filename nil t)))
    (message "Opening %s..." file)
    (call-process "gnome-open" nil 0 nil file)
    (message "Opening %s done" file)))
4 голосов
/ 27 июля 2011

Вы можете использовать !, чтобы открыть файл, а затем указать команду.

3 голосов
/ 17 сентября 2011

Обратите внимание, что вы можете поддержать процесс после выхода из Emacs, используя nohup [Wikipedia], поэтому укажите точку для одного файла в dired:

C-u ! nohup evince ? &

, который создает Постоянные процессы [EmacsWiki].

1 голос
/ 14 ноября 2014

В винде я использую!и команда "проводник", чтобы открыть PDF / Word / Excel ...

...