因此,定期clojure repl工作正常,(read-line)
收集输入,然后回声。虽然使用lein repl
,但不会回应任何输入字符,也不允许我从任何stdin读取命令返回。clojure lein(read-line)stdin woes
我确定它与重新绑定在有关,但想知道是否有解决方法/修复?
谢谢。
因此,定期clojure repl工作正常,(read-line)
收集输入,然后回声。虽然使用lein repl
,但不会回应任何输入字符,也不允许我从任何stdin读取命令返回。clojure lein(read-line)stdin woes
我确定它与重新绑定在有关,但想知道是否有解决方法/修复?
谢谢。
这是由于蚂蚁中的一个bug;它会阻止来自它启动的子进程的stdin流被使用。但是,由于lein repl启动一个套接字repl服务器,telnet技巧应该可以工作;它在这里工作正常。
通过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=>
在这里不起作用,telnet localhost * port *不会提示任何repl提示。我已经尝试了最新版本和开发版本。我在OSX上使用jse 1.6,并不重要,但只是试着看看我们是否有等效的配置。 – 2010-09-26 23:17:37
Ubuntu与jdk 1.6在这里。检查你的/ etc/hosts文件。本地主机是否绑定到127.0.0.1?你是否正确背景lein过程?也许尝试在不同的终端窗口上启动lein和telnet?如果没有,我建议你尝试一下'cake'(http://www.assembla.com/wiki/show/clojure/Getting_Started_with_Cake)。 – 2010-09-27 07:26:13
现在,这对我的作品: 包装你读线通话与读取线支持这是在纳秒swank.core [斯旺克以来,Clojure的1.4+我相信]宏:
(use 'swank.core)
(with-read-line-support
(println "a line from Emacs:" (read-line)))
感谢Tavis Judd的修复。
谢谢,我会试试看,虽然这个问题实际上表现为粘液,但我的帖子缩小了它的回报/ swank,但telnet不会为我做。有趣的是,这个问题在蛋糕中不存在。 Cake的(read-line)不会挂起,而是返回空字符串。 你是说我可以启动lein swank,然后当它到达(read-line)和块时,我可以通过telnet进行连接,并且可以将它用于任何stdin的东西,然后反映在repl/swank中? – 2010-10-01 20:50:34
这很奇怪;我不明白telnet如何失败。但是我只是推动了一个bug修复,以便使用repl,现在在repl中为我编写了一些read-line作品。让我知道它是否适用于最新的1.4.0-SNAPSHOT;如果不是,请打开问题或启动邮件列表线程。 – technomancy 2010-10-02 05:18:35