ruby curses: Как получить Ctrl / мета-ключи с - PullRequest
1 голос
/ 05 января 2011

Я пытаюсь Curses.getchr, но такие ключи, как Ctrl + s не фиксируются, есть ли библиотека, которая позволила бы мне захватывать их и, что лучше всего, что-то интуитивно понятное / читабельное, например

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

1 Ответ

3 голосов
/ 06 января 2011
Терминал обычно захватывает

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
...