2012-04-01 182 views
2

我知道「a = gets」,但我需要從鍵盤讀取字符而不按回車鍵。 我該如何在ruby中做到這一點?在Ruby中按下鍵盤按鍵

+0

這是你在找什麼? http://stackoverflow.com/questions/946738/detect-key-press-non-blocking-wo-getc-gets-in-ruby – moodywoody 2012-04-01 11:12:44

+0

http://stackoverflow.com/questions/174933/how-to-get-get-一個單個字符不需要按下輸入 – joelparkerhenderson 2012-04-01 11:43:24

回答

1

使用green_shoes寶石或簡單地用紅色的鞋子,這裏green_shoes從Detect key press (non-blocking) w/o getc/gets in Ruby 上不像sollution任何OS工作樣本

['green_shoes'].each(&method(:require)) 
Shoes.app do 
e = edit_line 
info = para "NO KEY is PRESSED." 
keypress do |k| 
    info.replace "#{k.inspect} was PRESSED." 
    print k 
end 
end 

作品把你的鞋子!

+0

Nifty!感謝分享 - 這是一個非常不同的方法。 – joelparkerhenderson 2012-04-01 15:39:13

+0

謝謝,我建議大家好好看看綠色的鞋子,它是令人驚訝的,你可以用它做什麼,你能接受我的答案嗎? – peter 2012-04-01 18:43:41

1

您可以試試STDIN,請檢查其文檔。 這是控制您的標準輸入的強大工具。