如何在Curses中获得Shift + X/Alt + X键?
问题描述:
我目前使用此代码来抓取关键笔划,但我缺少例如移位/Alt键键等 Ctrl键 + 移 + 小号,Ctrl键 + 移 + ↑,Alt键 + 小号等如何在Curses中获得Shift + X/Alt + X键?
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
有没有wa Ÿ抓住他们所有?
另外:我怎样才能辨别Ctrl键 + Ĵ/Ctrl键 + 中号从Ctrl键 + 输入/输入,这给了相同的键码(10
/13
) ?
答
也:如何从CTR区分按Ctrl + J/Ctrl + M键+输入/输入, 这给相同的键码(10/13)
长话短说 - 你不能。终端肯定会为每个字节产生相同的字节。请阅读
http://www.leonerd.org.uk/hacks/fixterms/
这就是说,如果你感觉特别勇敢,你可以试试我的libtermkey
http://www.leonerd.org.uk/code/libtermkey/
将至少正确解析之类的东西Ctrl-arrow
。它还没有绑定Ruby,但是Perl和Python的存在意味着它应该很容易编写。
最后,如果你感觉甚至勇敢就可以运行我写的终端,pangoterm
,其中有通用的方式来编码任何任意修改的Unicode键,因此它可以区分按Ctrl-M从输入等..
https://launchpad.net/pangoterm
但是,除此之外,答案仍然是“你不能”。