我有一个Ruby curses应用程序,我想在其中捕获箭头键和功能键。问题是在使用STDIN.getch
时,某些击键会产生多个值。当我输入像a-z
这样的“常规”键时,我会得到一个单值。当我输入[F]键或箭头键时,我得到三个值。
是否有设计用于处理键盘输入的宝石或更好的方法来完成阅读键击?
#!/usr/bin/ruby
require 'curses'
require 'io/console'
Curses.noecho
Curses.init_screen
main_window = Curses::Window.new(24, 40, 1, 0)
num_keys = 0
loop do
ch = STDIN.getch
num_keys = num_keys + 1
main_window.addstr(' key:' + ch.inspect + ' count:' + num_keys.to_s)
main_window.refresh
break if ch == 'q'
end
Curses.close_screen