我目前正在使用此代码来抓住钥匙,但是我缺少EG 转移/alt 钥匙喜欢Ctrl+转移+s, Ctrl+转移+, 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

有什么方法可以捕获它们吗?

另外:我该如何区分 Ctrl+j / Ctrl+mCtrl+进入 / 进入, ,给出相同的密钥编码(10/13)?

有帮助吗?

解决方案

另外:如何将CTRL+J / CTRL+M与CTR+Enter / Enter区分开,该+Enter / Enter提供相同的密钥编码(10/13)

长话短说 - 你不能。端子几乎确定会为每个字节产生相同的字节。请阅读

http://www.leonerd.org.uk/hacks/fixterms/

也就是说,如果您感到特别勇敢,可以尝试我的 libtermkey

http://www.leonerd.org.uk/code/libtermkey/

至少可以正确解析类似的东西 Ctrl-arrow. 。它尚未(尚未)具有红宝石绑定,但是Perl和Python的存在都表明写一个应该很容易。

最后,如果您觉得甚至勇敢,您可以运行我写的终端, pangoterm, ,它具有通用方法来编码任何任意修改的Unicode密钥,因此它可以将Ctrl-M与Enter等区分开来等...

https://launchpad.net/pangoterm

但是,除此之外,答案仍然是“您不能”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top