7

したがって、通常の clojure repl は正常に(read-line)機能し、入力を収集してからエコーします。ただし、使用するlein replと、入力文字がエコーされることはなく、標準入力の読み取りコマンドから戻ることもできません。

での再バインドと関係があると確信していますが、回避策/修正があるかどうか疑問に思っていましたか?

ありがとう。

4

3 に答える 3

5

これは ant のバグによるものです。起動するサブプロセスからの stdin ストリームが使用されないようにします。しかし、lein repl はソケット repl サーバーを起動するため、telnet のトリックは機能するはずです。ここでは問題なく動作します。

于 2010-09-28T06:22:54.217 に答える
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=>
于 2010-09-26T00:25:50.477 に答える
1

これは今私にとってはうまくいきます: ns swank.core にあるマクロ with-read-line-support で read-line 呼び出しをラップします [swank-clojure 1.4+ 以降]:

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

修正してくれた Tavis Judd に感謝します。

于 2012-05-27T18:30:13.367 に答える