我一直在使用Emac/Slime来编码LISP,但是有了Clojure,我发现了“ Lein Swank”。我必须说这非常有用,因为我可以连接到运行Clojure的服务器。

其他LISP实施方式怎么样?哪些LISP实施提供了相当于Clojure的“ Lein Swank”?我的意思是,还有其他LISP实现提供了服务器连接性,以便我使用“ MX Slime-Connect”,而不仅仅是“ MX Slime”?

有帮助吗?

解决方案

非cllojure扭转的后端不需要同等的lein swank,因为它们可以启动LISP实例并在运行时更改其负载路径以使其适用于给定的项目。这种方法不适用于Clojure,因为在运行时无法修改JVM的类路径。

其他提示

我不知道CLISP,但这就是我对SBCL的资料。这也与我的Clojure Swank设置并存。我不使用ELPA,而是完全手动设置。

(add-to-list 'load-path "~/src/slime")
(require 'slime)
(add-to-list 'slime-lisp-implementations '(sbcl ("/usr/local/bin/sbcl")))
(setq slime-default-lisp 'sbcl)

我有一只手汇编的SBCL。我在史莱姆CVS代码库中看到了CLISP的尖顶后端,因此我想,将Slime-Default-lisp和Slime-Lisp-implentions更改为CLISP可能会正常工作。

Lein Swank主要存在于在特定项目上启动Swank港口。这是需要的,因为在运行时不能修改JVM ClassPath。因此,我们使用Lein Swank或Swank-Clojure-Project设置为项目目录和依赖项的classPath启动Java。使用CL,这不是必需的,因为可以在运行时修改路径名。

我已经发布了完整的配置文件: http://github.com/vu3rdd/dotfiles

我将很高兴帮助建立一个完全手动的emacs/slime/swank设置。

您可以在CL中手动加载Swank并启动服务器(毕竟是为CL创建的Slime/Swank)。

启动LISP实施,负载吹牛(通过 , 例如),并运行 swank:create-server:

CL-USER(1): (ql:quickload "swank")
;; ...
CL-USER(2): (swank:create-server)
;; Swank started at port: 4005.
4005

如果要指定其他端口,可以使用 :port 关键字参数:

CL-USER(3): (swank:create-server :port 4123)
;; Swank started at port: 4123.
4123

请注意,由于该协议趋于在版本之间发生变化,因此您需要确保您不会使用史莱姆和夸张的版本截然不同的版本。对于常见的LISP,我倾向于通过将以下内容放入我的 .emacs, ,取决于QuickLisp中当前可用的粘液的版本:

(add-to-list 'load-path "~/quicklisp/dists/quicklisp/software/slime-20111105-cvs")
(add-to-list 'load-path "~/quicklisp/dists/quicklisp/software/slime-20111105-cvs/contrib")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top