【发布时间】:2018-02-05 17:00:11
【问题描述】:
我有一个 Linux 发行版,我希望能够检测到各种键,但我不知道如何区分按下 Escape 键和检测为按键的键。
如果我使用这个:
require 'io/console'
puts STDIN.raw { STDIN.getc }
然后按下Arrow up,解释器将立即返回\e,然后在随后的getc 调用中,无需按任何键,它将返回转义序列的剩余字符([ 和@ 987654326@).
问题是,在第一次调用getc 之后,我不知道用户是否真的按下了Esc,或者另一个生成转义序列的键。
是否可以在没有多次getc 调用的情况下区分这两种情况?
【问题讨论】:
标签: ruby input terminal escaping