如何在Clojure中从终端(而不是Swing)读取一次击键?
我尝试过一些东西,包括各种 版本的JLine库,但还没有让它工作(参见下面的例子).
我很乐意接受一个有效的,仅限Unix(Mac,Linux,......)的例子.理想情况下,我想知道如何为stdin和stdout切换缓冲.
这里有一些接近的东西:
;; project.clj dependencies:
;; [[org.clojure/clojure "1.4.0"]
;; [jline/jline "2.8"]])
(ns slosh.core
(:import [jline.console ConsoleReader])
(:gen-class))
(defn -main []
(println "start")
(let [cr (ConsoleReader.)]
(.readCharacter cr)
(println "done")))
Run Code Online (Sandbox Code Playgroud)
这将打印"开始"但不响应除control-C之外的任何输入.
小智 5
我不确定你是如何运行它的,但是如果你使用的话lein run
,你会遇到问题.尝试使用lein trampoline run
.
我会链接java/clojure中的单字符控制台输入, 但我似乎没有足够的Internet点来做到这一点.
归档时间: |
|
查看次数: |
974 次 |
最近记录: |