【问题标题】:Printing from nrepl.el to repl-y or vice versa从 nrepl.el 打印到 repl-y 或反之亦然
【发布时间】:2013-01-26 01:34:56
【问题描述】:

鉴于以下情况 -

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

    (def reply-out *out*)

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

    (def nrepl-out *out*)

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

但是现在,如果我在 Emacs 中执行:

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

该值将打印在 Emacs 上,而不是按期望/预期的那样打印在终端仿真器上。反之亦然。

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

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

【问题讨论】:

  • 它 (:foo) 确实在终端中打印,而在 emacs nrepl 中它显示返回值,即 nil。

标签: clojure


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-05-11
    • 2017-09-14
    • 1970-01-01
    • 2014-11-08
    • 2012-02-16
    • 2013-08-16
    • 2012-06-27
    • 2017-02-05
    • 2012-12-01
    相关资源
    最近更新 更多