如何从 Clojure 中的终端(不是 Swing)读取单个按键?
我尝试了一些东西,包括各种 版本的 JLine 库,但没有让它工作(见下面的例子)。
我很乐意接受一个工作的、仅适用于 Unix 的(Mac、Linux、...)示例。理想情况下,我想知道如何关闭标准输入和标准输出的缓冲。
这是接近的东西:
;; 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")))
这将打印“开始”,但不响应除 control-C 之外的任何输入。