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

时间:2014-11-03 01:29:16

标签: emacs path mingw racket geiser

当我在运行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作为我的编辑。

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

1 个答案:

答案 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路径。