【问题标题】:print output of execution in cider repl在 cider repl 中打印执行的输出
【发布时间】:2015-10-27 12:17:09
【问题描述】:

我想知道在使用 cider-connect 时是否有办法在 emacs cider 中输出当前执行的输出。

例如:

  • 我在项目目录上运行lein repl

  • 然后在emacs中使用cider-connect连接到它。

现在假设我的一个环处理程序的代码中有(println "cider is amazing by the way"),这只会在发出请求时在我运行lein repl 的控制台中打印。

我怎样才能在我的nrepl 缓冲区中也有这个输出?

【问题讨论】:

    标签: emacs clojure cider nrepl


    【解决方案1】:

    很抱歉,我怀疑您无法按照您描述的方式执行此操作。输出将直接到达该设备的控制台,而不是通过与 nrepl 相关的任何内容。如果您考虑到 nrepl 通常甚至不在同一台计算机上运行,​​这也是有道理的。 (nrepl 中的“n”代表“网络”)。

    也许您可以将该输出安排为teed 到您可以获取的文件中?然后你可以在你的 nrepl 缓冲区上启动一个线程,cated 那个文件。或者在 emacs 中有一个缓冲区来监视远程文件。

    【讨论】:

    • 谢谢 Arthur,那么还有其他方法吗,也许是在 Clojure 代码中打开一个 nrepl ?目的是在 Emacs 中输出,如果我必须修改我的工作流程,我很好:) 你是对的,我在不同的(虚拟)机器上使用它。
    • 出于其他原因(与他人合作,速度等),我首选的方法是在 tmux 会话中在远程系统上启动 emacs,然后几个人可以进入(mosh 是 ssh 的一个惊人的补充) , tmux 附加并拥有共享的 emacs。然后我可以从直接在我的笔记本电脑上运行的 emacs 会话附加,尽管这种情况不太常见。这不是一个直接的答案,只是另一种对某些人来说很好的工作方式。
    • 这很有趣,谢谢分享。如果我错了,请纠正我,这意味着有一个“香草” emacs 吗?这似乎与与他人分享是一致的。
    • "vanila" emacs 对所有人都无用(防火服),在这种情况下,这真的变成了与您的团队建立社区并一起工作的问题。所以我怀疑这超出了 SO 评论或答案的范围。 PS:我们检查我们的配置到 github 我在这里:github.com/thearthur/arthur-s-emacs-config
    【解决方案2】:

    如果您通过 cider-jack-in 启动 leiningen,您应该在 repl 缓冲区中获得输出。

    将其与远程设置一起使用的一种方法是调用C-u M-x cider-jack-in 并使用专门的服务器命令,该命令基本上会在远程计算机上触发lein repl 命令(比如通过ssh)——我还没有检查这是否真的有效,但我看不出有任何不应该的理由。如果您可以通过tramp访问代码,那么代码是否远程无关紧要。

    【讨论】:

    • 好吧,即使使用cider-jack-in,我也没有得到我想要的命名空间的输出。我在 repl 中输入的命令得到它,但不是所有消息。
    猜你喜欢
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 2014-12-31
    • 2014-11-04
    • 1970-01-01
    相关资源
    最近更新 更多