【问题标题】:How to reconnect to slime/swank-clojure session?如何重新连接到 slime/swank-clojure 会话?
【发布时间】:2010-05-02 07:06:12
【问题描述】:

似乎每当我与 clojure slime 会话断开连接时,我都无法再次重新连接。我正在使用 leiningen 启动 swank 会话(使用 lein-swank 插件)。因此,每次我退出 emacs(我知道我不应该)或重新启动/注销时,我都必须重新启动 slime 和 swank。有没有办法重新连接到 slime/clojure-swank 会话?

【问题讨论】:

    标签: emacs clojure swank


    【解决方案1】:

    是的,但你必须告诉 swank 不要关闭连接:

    lein swank 4005 "localhost" :dont-close true
    

    请注意,如果要传递:dont-close true 部分,则必须提供端口和主机名; 4005"localhost" 是默认值。

    事实上,这使得将多个 REPL 同时连接到同一个 swank 实例成为可能!然后你可以在一个 Emacs 中输入 (def foo :foo) 并在另一个 Emacs 中看到 foo 评估为 :foo。 :-)

    【讨论】:

    • 似乎对我不起作用。我得到错误数量的参数传递给:swank$swank
    • 显然这个功能是从 2 月 9 日起在对 Leiningen 的提交中引入的(lein-swank 位于 Leiningen 主仓库中)没有host 参数,然后是host于 3 月 21 日添加。希望您使用的版本不接受 host - 尝试从命令行中删除它。如果您使用的是 2 月 9 日之前的 Leiningen,也许这可能是升级的理由!
    • 我正在使用安装的任何 lein 作为依赖项(不确定,但它声称是 1.1.0)。当我从命令中删除“localhost”时,我得到了同样的错误。
    • 解决方案似乎是在开发依赖项中用 1.2.0-SNAPSHOT 替换 1.1.0 lein-swank。然后它接受所有提到的论点。
    • 确保不要在 SLIME 中使用sayoonara 命令,因为这会要求在 Lisp 主机中运行的 Swank 服务器关闭。而是使用disconnect 命令。到今天为止,这会导致 Swank 服务器打印一些错误消息,但它似乎确实可以适应随后重新连接到同一个正在运行的 Clojure 进程。
    猜你喜欢
    • 1970-01-01
    • 2010-12-30
    • 2011-12-13
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    相关资源
    最近更新 更多