Вопрос

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

FooBar.bind('Ctrl+s'){ raise "dont save!" }
Это было полезно?

Решение

Ctrl + S. обычно схватился терминалом, поэтому вы должны поставить Curses в RAW MODE для захвата этой клавиши. Вот пример:

#!/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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top