Windows 7上的SLIME

Ina*_*thi 4 emacs common-lisp slime windows-7

我正试图在Windows 7机器上安装SLIME,但是运行M-x slime会给我错误

Spawning child process: invalid argument
Run Code Online (Sandbox Code Playgroud)

我inferior-lisp-program设置为"C:\\Program Files\\ccl\\wx86cl.exe"(事实上​​是正确的,并且运行(comint-run inferior-lisp-program)给了我一个工作的CCL提示),并且slime目录已添加到我的'load-path.

我究竟做错了什么?

编辑:尝试通过Windows版本的lispbox加载相同的环境,它运行SLIME罚款.我宁愿不使用那个,因为它包装了比我想要的旧Emacs,CCL和SLIME.

小智 6

您收到的消息意味着给shell提供的命令存在语法问题的可能性很大.这可能是由文件名中包含字符引起的,这可以解释为做一些特殊的事情.所以,看起来Emacs试图C:\\Program用一个参数调用"程序" Files\\ccl\\wx86cl.exe.

有几种方法可以解决错误:

  • 必须有一个逃避功能,如:

(shell-quote-argument "C:\\Program Files\\ccl\\wx86cl.exe")
Run Code Online (Sandbox Code Playgroud)

但是,由于您无法影响文件名如何传递给创建进程的函数,因此无法正常工作.

  • 您可以将要调用的程序移动到具有"安全"名称的目录.

  • 您可以将可执行文件移动到系统路径(%PATH%Windows中的变量)上 - 通过更改环境变量并将带有可执行文件的目录附加到其中.

  • 还有一个选项是将带有可执行文件的目录添加到exec-pathEmacs中的变量.如果您只是按名称调用程序,而不是按完整路径调用程序,则此变量包含查找要运行的程序的所有目录的列表.这也(至少对我而言)使我的.emacs文件更容易在不同系统之间移植.