当我在运行GNU Emacs 24.3和Racket v6.1的Windows 8.1计算机上尝试(run-racket)
或(run-geiser)
时,我得到以下输出:
Welcome to Racket v6.1.
default-load-handler: cannot open input file
path: f:/c/Users/James/AppData/Roaming/.emacs.d/el-get/geiser/scheme/racket/geiser/startup.rkt
system error: The system cannot find the path specified.; errno=3
>
这显然很奇怪,但在浏览了回溯之后,我仍然不知道发生了什么。
事实上,自从Racket开始很好以来,路径从Geiser传递到Racket的方式似乎有些奇怪。唯一的另一次我看到这种路径的陌生感是当MinGW bash参与其中时,/c/
让我觉得它可能就是这样。事实上,如果不是领先的f:
,那条路径将完全有效。
我对如何处理这个问题感到有点失落,因为我不知道Geiser如何与Racket通信(我刚刚开始尝试使用它),但我真的会喜欢让它发挥作用,因为我非常喜欢Emacs作为我的编辑。
因此,我的问题是:鉴于上述线索,我应该调查哪些可能的问题点?
答案 0 :(得分:0)
在浏览了Geiser来源之后,我在geiser/elisp/geiser-load.el
中找到了这一行:
(setq geiser-scheme-dir "/c/Users/James/AppData/Roaming/.emacs.d/el-get/geiser/scheme")
MinGW make可能错误地生成了这个。
我把它改为:
(setq geiser-scheme-dir "c:/Users/James/AppData/Roaming/.emacs.d/el-get/geiser/scheme")
之后一切都很完美。
问题在于Emacs'expand-file-name
假设/c/...
路径是由于初始正斜杠而相对路径,并且猜测它应该在当前驱动器的字母前面加上它以使其成为正确的Windows Emacs路径。