Maldições de rubi: como obter as teclas Ctrl/Meta com
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!" }
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