2012-04-01 181 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,请检查其文档。 这是控制您的标准输入的强大工具。