Tôi đang cố gắng tinh chỉnh chức năng dired-find-file
trong các emacs trên Windows XP để khi tôi mở (nói) một tệp pdf từ dired nó kích hoạt bản sao của Acrobat Reader và mở tập tin với nó, thay vì mở nó trong các emacs. Nhưng tôi không thể tìm ra biến thể nào trên shell-command/call-process
để sử dụng. Dưới đây là những gì tôi có cho đến thời điểm này:Mở tệp bằng ứng dụng Windows mặc định từ bên trong các emacs
(defadvice dired-find-file (around dired-find-file-external (filename &optional wildcards))
"Open non-text files with an appropriate external program."
(if (string= ".pdf" (substring filename (- (length filename) 4))) ; obviously I'll replace this with something more general/robust
(shell-command filename) ;; what should go here?
(ad-do-it)))
(ad-activate 'dired-find-file)
Tôi biết tôi có thể mã hóa nó để khởi động Acrobat Reader bằng cách cho nó vị trí của tệp .exe. Nhưng tôi muốn có một cái gì đó mà đòi hỏi ít tìm kiếm từ tôi và sẽ không phá vỡ khi các ứng dụng mặc định di chuyển/thay đổi. Tôi nên sử dụng cái gì?
Không quan tâm đến eval-after-load, nhưng +1 cho w32-shell-execute - đó rõ ràng là đúng cách để làm điều đó. –
"\" phải là "\\" – Yoo