【发布时间】:2010-05-02 07:06:12
【问题描述】:
似乎每当我与 clojure slime 会话断开连接时,我都无法再次重新连接。我正在使用 leiningen 启动 swank 会话(使用 lein-swank 插件)。因此,每次我退出 emacs(我知道我不应该)或重新启动/注销时,我都必须重新启动 slime 和 swank。有没有办法重新连接到 slime/clojure-swank 会话?
【问题讨论】:
似乎每当我与 clojure slime 会话断开连接时,我都无法再次重新连接。我正在使用 leiningen 启动 swank 会话(使用 lein-swank 插件)。因此,每次我退出 emacs(我知道我不应该)或重新启动/注销时,我都必须重新启动 slime 和 swank。有没有办法重新连接到 slime/clojure-swank 会话?
【问题讨论】:
是的,但你必须告诉 swank 不要关闭连接:
lein swank 4005 "localhost" :dont-close true
请注意,如果要传递:dont-close true 部分,则必须提供端口和主机名; 4005 和 "localhost" 是默认值。
事实上,这使得将多个 REPL 同时连接到同一个 swank 实例成为可能!然后你可以在一个 Emacs 中输入 (def foo :foo) 并在另一个 Emacs 中看到 foo 评估为 :foo。 :-)
【讨论】:
host 参数,然后是host于 3 月 21 日添加。希望您使用的版本不接受 host - 尝试从命令行中删除它。如果您使用的是 2 月 9 日之前的 Leiningen,也许这可能是升级的理由!
sayoonara 命令,因为这会要求在 Lisp 主机中运行的 Swank 服务器关闭。而是使用disconnect 命令。到今天为止,这会导致 Swank 服务器打印一些错误消息,但它似乎确实可以适应随后重新连接到同一个正在运行的 Clojure 进程。