Clojure で端末 (Swing ではない) から 1 つのキーストロークを読み取るにはどうすればよいですか?
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")))
これは "start" を出力しますが、control-C 以外の入力には応答しません。