在Emacs24的Win7上,當Emacs程序想要打開(pdf)文件時遇到問題。激活或禁用openwith-mode時,問題依然存在。我要麼在Emacs裏面得到一個'錯誤類型參數安靜的'nil'消息,要麼啓動Acrobat Reader,但是會給出錯誤消息'無法打開/找到那個文件'。Emacs lisp - win7上文件名字符串的問題
我試圖調試它,總是以files.el結尾。 似乎要打開的pdf文件的名稱是通過連接絕對文件名和文件擴展名.pdf構造的。但是,爲AcroRd32提供的文件名字符串看起來像這樣:
AcroRd32 "c:\\absolute\file\name".pdf
這在命令行上也不起作用。我必須(手動)將其更改爲
AcroRd32 "c:\\absolute\file\name.pdf"
或
AcroRd32 c:\\absolute\file\name.pdf
,使其工作。
我不知道這是否被認爲是一個錯誤,或者它只是一個問題。我試圖將elisp代碼更改爲類似於
(format "%s" (concat absolute-filename file-extension))
擺脫這些雙引號,但無濟於事。無論如何,我不想在像files.el這樣的基本庫中亂搞,而且永久性地調用它之後,很難對該庫進行edebug。
也許有人遇到同樣的問題,並找到了解決辦法?
[I使用GNU Emacs的24.0.91.1上MARVIN的2011-11-22(I386-的mingw-nt6.1.7601)。]
PS 1個測試例1
我得到以下錯誤消息當我做的Mx撥動調試的錯誤,然後嘗試在dired打開PDF文件:
Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
file-truename(nil)
find-file-noselect-1(#<buffer test.pdf<4>> "~/.emacs.d/org/projects/sandbox/test.pdf" nil nil "~/.emacs.d/org/projects/sandbox/test.pdf" ((2816 7 . 27468) (16087 . 35227)))
find-file-noselect("c:/Users/tj2/.emacs.d/org/projects/sandbox/test.pdf" nil nil nil)
find-file("c:/Users/tj2/.emacs.d/org/projects/sandbox/test.pdf")
dired-find-file()
call-interactively(dired-find-file nil nil)
和以下消息:
Openwith mode enabled
find-file-noselect-1: Wrong type argument: arrayp, nil
我的.emacs.d是一個真正的Windows符號鏈接(mklink)到Dropbox文件夾嗎?
PS 2測試案例2
這裏是我在Maven編譯緩衝區得到消息,做抄送CS(LilyPond的命令視圖)在,LY緩衝區時:
-*- mode: compilation; default-directory: "~/.emacs.d/org/projects/sandbox/" -*-
Compilation started at Tue Dec 20 09:16:28
AcroRd32 "c:/Users/tj2/.emacs.d/org/projects/sandbox/2test".pdf
Compilation exited abnormally with code 1 at Tue Dec 20 09:16:35
在消息緩衝區中我發現
Compilation exited abnormally with code 1
Error during redisplay: (invalid-regexp "Unmatched (or \\(")
這個錯誤不會觸發調試器,雖然我做了Mx toggle-debug-on-error。
確實[這個技巧](http://www.emacswiki.org/emacs/Sunrise_Commander_Tips#ExternalApps)幫助?你在發佈的Emacs版本中有這個問題嗎?你能給出一個完整的測試用例來描述如何重現這個? – 2011-12-19 19:17:58
我將該補丁應用於openwith.el,但無濟於事 - 與以前相同的錯誤。實際上有兩個測試用例:在dired(用f或Cm)打開pdf文件 - >給出「錯誤的類型參數:arrayp,nil」,並在lilypond-mode中打開pdf文件 - >打開Acrobat Reader並顯示一條錯誤消息,就像「無法打開文件」。 – Thorsten 2011-12-20 01:27:32