11

当我开始穿过 leiningen 时,它会接受下一个粘液连接,然后我就走了。我真的很想让几个 emacs 实例连接到同一个 swank 实例。我可以这样做吗?我可以通过 leiningen 做到这一点吗?

4

1 回答 1

11

好吧,你可以正常启动你的第一个 SLIME,然后(require 'swank.swank)(或者默认情况下可能需要它......不确定),(swank.swank/start-repl port)port一些端口号替换,你可以将第二个 SLIME 实例连接到新创建的 REPL。

我刚刚完成了,一个 Emacs 连接到一个以 开头的 REPL lein swank(swank.swank/start-repl 4006)在第一个 Emacs 中,在第二个 Emacs 中 Mx slime-connect(提供 4006 作为端口号),然后我可以这样做:

; first Emacs 
(def x 5)

; second Emacs
x ; evaluates to 5
(def y 1234)

; first Emacs
y ; evaluates to 1234

酷,不是吗?:-)

更新:哦,顺便说一句——(swank.swank/start-repl)在后台启动新的 REPL,并且不会阻止你用来执行它的 REPL。返回值为nil,所以我不确定如何杀死新的 REPL ......

(更新 2:删除了一些我不再确定的内容。)

更新 3:虽然上述方法非常通用,因为无论原始 Swank 实例如何启动,都可以连接额外的客户端,但使用命令启动 Swank 可能更方便

lein swank 4005 "localhost" :dont-close true

:dont-close true如果要传递端口和主机名参数,则必须明确提及。4005并且"localhost"是默认值。

这将可以断开与 Swank 的连接并稍后重新连接,还可以同时连接多个客户端。

(我刚刚注意到,在回答这个关于如何重新连接到 Leiningen 启动的 Swank 的新问题时,这是可能的;我突然想到检查是否:dont-close也会导致同时连接被接受——确实如此。)

于 2010-03-03T20:50:18.620 回答