Comment obtenir Maj + X / Alt + X touches Curses?
Question
Je suis actuellement en utilisant ce code à saisir les coups de clés, mais je suis absent par exemple Maj / Alt clés comme Ctrl + Maj + S , Ctrl + Maj + ? , 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
Est-il possible de les capturer?
Aussi: Comment distinguer Ctrl + J / Ctrl + M de Ctrl + Entrée / Entrée , qui donnent les mêmes codes-clés (10
/ 13
)?
La solution
également: comment distinguer ctrl + j / Ctrl + m + ctr entrer / entrée, qui donnent les mêmes codes de clés (10/13)
Longue histoire courte - vous ne pouvez pas. Le terminal donnera presque certainement les mêmes octets pour chacun. S'il vous plaît lire
http://www.leonerd.org.uk/hacks/fixterms/
Cela dit, si vous vous sentez particulièrement courageux, vous pouvez essayer mon libtermkey
http://www.leonerd.org.uk/code/libtermkey/
qui sera au moins analyser correctement les choses comme Ctrl-arrow
. Il n'a pas (encore) un binding Ruby, mais la présence des deux les Perl et Python suggère qu'il devrait être assez facile à une écriture.
Enfin, si vous vous sentez même vous pouvez exécuter courageux le terminal je l'ai écrit, pangoterm
, qui a des moyens génériques de coder toutes les clés Unicode arbitrairement modifiées, il peut donc distinguer Ctrl-m Entrez, etc ...
https://launchpad.net/pangoterm
Cependant, en dehors de ceux-ci, les restes de réponse « vous ne pouvez pas ».