clojure lein(读行)stdin困境

时间:2010-09-24 20:52:02

标签: clojure leiningen

因此,常规的clojure repl工作正常,(read-line)收集输入,然后回复它。但是,使用lein repl,永远不会回显任何输入字符,也不允许我从任何stdin读取命令返回。

我确定它与在中重新绑定有关,但是想知道是否有解决方法/修复?

感谢。

3 个答案:

答案 0 :(得分:5)

这是由于蚂蚁的一个错误;它可以防止stdin流从它启动的子进程中被使用。但是,由于lein repl启动套接字repl服务器,telnet技巧应该可行;它在这里工作正常。

答案 1 :(得分:2)

通过telnet连接到REPL。

$ lein repl
REPL started; server listening on localhost:63849.
user=> 
[1]+  Stopped                 lein repl
$ telnet localhost 63849
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
user=> (read-line)
hello
"hello"
user=>

答案 2 :(得分:1)

这对我现在有用: 使用ns swank.core中的带有读取线支持的宏来包装您的读取线调用[自swank-clojure 1.4+以来我相信]:

(use 'swank.core)
(with-read-line-support 
  (println "a line from Emacs:" (read-line)))

感谢Tavis Judd的解决方案。