ruby curses:如何获取ctrl / meta键

时间:2011-01-05 18:38:57

标签: ruby curses

我正在尝试Curses.getchr,但是没有捕获像 Ctrl + s 这样的键,是否有任何lib可以让我捕获它们,最重要的是直观/可读的像< / p>

FooBar.bind('Ctrl+s'){ raise "dont save!" }

1 个答案:

答案 0 :(得分:3)

Ctrl + s 通常由终端抓取,因此您必须将Curses置于原始模式才能捕获该密钥。这是一个例子:

#!/usr/bin/ruby

require 'curses'

Curses.raw # intercept everything
Curses.noecho
loop do
  case Curses.getch
    when ?q     then break
    when ?b     then Curses.addch ?b
    when ?\C-s  then Curses.addstr "^s" # Ctrl+S
  end
end