问题 我可以将两个emacs / slime连接到同一个swank实例吗?


当我开始穿过莱宁根时,它接受了下一个粘液连接而我离开了。我真的希望有几个emacs实例连接到同一个swank实例。我可以这样做吗?我可以通过莱宁根这样做吗?


10339
2018-03-03 20:42


起源



答案:


那么,你可以正常开始你的第一个SLIME (require 'swank.swank) (或者可能默认需要......不确定),做 (swank.swank/start-repl port) 同 port 替换为某个端口号,您可以将SLIME的第二个实例连接到新创建的REPL。

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

; first Emacs 
(def x 5)

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

; first Emacs
y ; evaluates to 1234

很酷,不是吗? :-)

更新:哦,BTW - (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 也会导致同时连接被接受 - 而且确实如此。)


11
2018-03-03 20:50



棒极了。正是我在寻找的! - Arthur Ulfeldt
'真棒'是正确的词。 :-) BTW,你可以使用 swank.swank/start-repl 将Swank嵌入到任何Clojure应用程序中 - 我已经阅读过有关人们使用它的非常好的效果。主要的警告是Swank不关心安全性,所以你必须自己限制访问REPL的端口。 - Michał Marczyk
显然,上面更新3中描述的功能需要最近的lein swank;有关详细信息,请参阅我链接的其他问题(特别是对我的答案的评论)。 - Michał Marczyk


答案:


那么,你可以正常开始你的第一个SLIME (require 'swank.swank) (或者可能默认需要......不确定),做 (swank.swank/start-repl port) 同 port 替换为某个端口号,您可以将SLIME的第二个实例连接到新创建的REPL。

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

; first Emacs 
(def x 5)

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

; first Emacs
y ; evaluates to 1234

很酷,不是吗? :-)

更新:哦,BTW - (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 也会导致同时连接被接受 - 而且确实如此。)


11
2018-03-03 20:50



棒极了。正是我在寻找的! - Arthur Ulfeldt
'真棒'是正确的词。 :-) BTW,你可以使用 swank.swank/start-repl 将Swank嵌入到任何Clojure应用程序中 - 我已经阅读过有关人们使用它的非常好的效果。主要的警告是Swank不关心安全性,所以你必须自己限制访问REPL的端口。 - Michał Marczyk
显然,上面更新3中描述的功能需要最近的lein swank;有关详细信息,请参阅我链接的其他问题(特别是对我的答案的评论)。 - Michał Marczyk