में अनबफर किए गए कीबोर्ड इनपुट को पढ़ना क्लोजर में टर्मिनल (स्विंग नहीं) से एक एकल कीस्ट्रोक कैसे पढ़ता है?क्लोजर
मैंने जेएल लाइब्रेरी के variousversions सहित कुछ चीजों की कोशिश की है, लेकिन इसे काम नहीं मिला है (नीचे उदाहरण देखें)।
मैं खुशी से काम कर रहा हूं, यूनिक्स-केवल (मैक, लिनक्स, ...) उदाहरण। आदर्श रूप से मैं जानना चाहता हूं कि स्टडीन और स्टडआउट दोनों के लिए बफरिंग बंद कैसे करें।
यहाँ कुछ बंद है:
;; 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")))
यह प्रिंट "शुरुआत" लेकिन नियंत्रण-सी को छोड़कर किसी भी इनपुट का जवाब नहीं है।
'लीन ट्रैम्पोलिन रन' वास्तव में काम करता है, जैसा कि उबरर से चल रहा है। कोई विचार क्यों कोई काम करता है और दूसरा नहीं? – JohnJ
'लीन रन' के साथ उपयोग किया गया 'sh' फ़ंक्शन केवल उप-प्रोसेस के रूप में चलने वाले प्रोजेक्ट के 'आउट' और' त्रुटि 'को हुक करता है (https://github.com/technomancy/leiningen/blob/master/leiningen-core देखें /src/leiningen/core/eval.clj#L155)। 'ट्रैम्पोलिन' परियोजना को 'इन', 'आउट' और खोल से जुड़ी 'गलती' के साथ एक स्वतंत्र प्रक्रिया के रूप में चलाने का कारण बनती है। – johnwayner
बहुत बढ़िया, धन्यवाद! – JohnJ