Pergunta

Eu estou tentando Curses.getchr, mas chaves como Ctrl+s não são capturados, existe algum lib que me permitiria capturá -los e o melhor de tudo algo intuitivo/legível como

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

Solução

Ctrl+s geralmente é agarrado pelo terminal, então você tem que colocar Curses no modo bruto para capturar essa tecla. Aqui está um exemplo:

#!/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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top