Pregunta

Estoy tratando de Curses.getchr, pero llaves como Ctrl+S no son capturados, ¿hay alguna lib que me permita capturarlos y lo mejor de todo algo intuitivo/legible como

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

Solución

Ctrl+S generalmente es agarrado por la terminal, por lo que tienes que poner Curses en modo RAW para capturar esa tecla. Aquí hay un ejemplo:

#!/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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top