Emacs SLIME 无法连接到 swank,因为显然 swank 无法正确初始化。它说一些后端功能没有实现。但是,我的沼泽后端是支持的 SBCL。我正在使用 windows xp 操作系统。在以下链接中发现了类似的问题,但没有解决方案。链接到类似问题
我是否缺少 Swank 的任何配置文件?或者我使用的 emacs 和 SBCL 版本可能存在兼容性问题?在这种情况下,我在哪里可以获得正确的 Windows 兼容性矩阵?
我主要使用 Linux,但如果您安装了多个版本的 slime/swank 代码,很容易发生冲突。
最好的方法是使用 quicklisp 并使 sbcl/emacs 不使用任何其他代码(至少在您的第一次尝试中):
sbcl --no-userinit --no-sysinit --load ~/quicklisp/setup.lisp
(asdf:initialize-source-registry '(:source-registry :ignore-inherited-configuration))
(ql:quickload "quicklisp-slime-helper")
(swank:create-server :port 4545 :dont-close t :coding-system "utf-8-unix")
然后启动emacs:
emacs -q -name SLIME -eval '(progn (load (expand-file-name "~/quicklisp/slime-helper.el")) (slime-connect "localhost" 4545))'
http://www.pchristensen.com/blog/articles/installing-sbcl-emacs-and-slime-on-windows-xp
使用本手册或任何其他手册,其中描述了如何分别安装 Emacs、sbcl 和 slime。但是使用最新版本。那样会比现在更容易找到问题。
这不完全是问题的答案,更多的是另一种选择。
我认为 Swank 期望的一些接口/方法定义需要由 SBCL 实现。我将 lisp 实现从 SBCL 转移到 CLisp,经过一些设置调整,让它工作。所以,我认为 Swank 很好,但 SBCL 不是。
仅供参考,CLisp 不能使用短窗口路径,看起来像“Progra~1”的路径,而 SBCL 需要短路径。CLisp 还给 Windows 中的 temp 文件夹带来了一些问题,为此必须将一个变量添加到 .emacs 文件中,但之后快速设置。
各种 Lisp 实现的 Windows 端口之间似乎有很多差异,如果有更好的文档,这不会成为问题。所有这些都必须从不同的博客和邮件列表中收集。
只要对原始问题有更好的答案,我就会接受。