从nrepl.el打印到repl-y,反之亦然

时间:2013-01-26 01:34:57

标签: clojure

鉴于以下情况 -

  • 来自终端模拟器上的lein replrepl-y)会话:

    (def reply-out *out*)

  • 然后来自Emacs上的nrepl.el会话:

    (def nrepl-out *out*)

两个变量将具有不同的值,因为它们将在不同的目标上运行。

但现在,如果我在Emacs中表演:

(binding [*out* reply-out] (println :foo))

该值将根据需要/预期打印在Emacs而不是终端仿真器上。相反的情况也不起作用。

如何将值从一个repl打印到另一个repl?

更新:在Llinux上使用Emacs 24,使用xterm和gnome-terminal进行测试。尝试使用每个println对象的PrintWriter方法。

1 个答案:

答案 0 :(得分:0)

这将打印到运行底层Clojure进程的repl:

 (binding [*out* (clojure.java.io/writer System/out)]
     (println :bar))

虽然这不是一个灵活的解决方案,但对我的问题的实际答案将非常受欢迎。