Como llegar Shift + X / X + Alt claves en las maldiciones?
Pregunta
Actualmente estoy usando el código de agarrar clave golpes, pero me falta, por ejemplo, Mayúsculas / Alt teclas como Ctrl + Shift + S , Ctrl + Shift + ? , Alt + S , etc.
require 'curses'
Curses.noecho
Curses.raw
Curses.stdscr.keypad(true)
Curse.nonl
count = 0
loop do
count = (count + 1) % 20
key = Curses.getch
break if key == ?\C-c
Curses.setpos(count,0)
Curses.addstr("#{key.inspect} ");
end
¿Hay alguna manera de capturar a todos?
También: ¿Cómo puedo distinguir Ctrl + J / Ctrl + M de Ctrl + Intro / Intro , que dan a las mismas claves códigos (10
/ 13
)?
Solución
también: ¿cómo se puede distinguir ctrl + j / ctrl + m de ctr + entrar / entrar, que dan las mismas claves-códigos (10/13)
Para acortar una larga historia - no se puede. El terminal será casi ciertamente producir los mismos bytes para cada uno. Por favor, lea
http://www.leonerd.org.uk/hacks/fixterms/
Dicho esto, si se siente especialmente valiente, puedes intentar mi libtermkey
http://www.leonerd.org.uk/code/libtermkey/
cosas que tendrá al menos analizar correctamente como Ctrl-arrow
. No (aún) tienen un enlace de Ruby, pero la presencia de ambos los Perl y Python sugeriría que debería ser bastante fácil de escribir uno.
Por último, si te sientes valiente incluso se puede ejecutar el terminal de I escribió, pangoterm
, que tiene formas genéricas para codificar cualquier claves Unicode arbitrariamente modificados, por lo que puede distinguir Ctrl-m de Enter, etc ...
https://launchpad.net/pangoterm
Sin embargo, fuera de éstos, los restos de respuesta "no se puede".