Racket和Geiser在Windows上,奇怪的路径错误



当我在运行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
>

这显然很奇怪,但在浏览了回溯之后,我仍然不知道发生了什么

事实上,由于拉基特一开始很好,从盖瑟到拉基特的路径似乎有些奇怪。我唯一一次看到这种路径奇怪是在涉及MinGW bash时,而/c/让我认为它可能是这样。事实上,如果没有领先的f:,该路径将完全有效。

我有点不知道如何处理这个问题,因为我不知道Geiser是如何与Racket沟通的(我今天刚开始尝试使用它),但我真的很想让它发挥作用,因为作为我的编辑,我在Emacs上投入了很多。

因此,我的问题是:鉴于上述线索,我应该调查哪些可能的问题点?

在对Geiser源进行一些挖掘后,我在geiser/elisp/geiser-load.el中发现了以下行:

(setq geiser-scheme-dir "/c/Users/James/AppData/Roaming/.emacs.d/el-get/geiser/scheme")

这可能是MinGW制造商错误生成的。

我把它改成:

(setq geiser-scheme-dir "c:/Users/James/AppData/Roaming/.emacs.d/el-get/geiser/scheme")

之后一切都很完美。

问题是,Emacs的expand-file-name假设/c/...路径是一个相对路径,这是由于最初的正斜杠,并猜测它应该在当前驱动器的字母前加上前缀,使其成为一个正确的Windows Emacs路径。

最新更新