4个版本 (稳定)
2.0.0 | 2021年6月27日 |
---|---|
1.0.1 | 2021年6月1日 |
0.9.0 | 2021年5月31日 |
#5 in #modifiers
每月35次下载
用于 libtui
16KB
230 行
XEKEYS
收集按键的简单程序。
注意
- 所有修饰键都不区分大小写。
- Ctrl在'-'、';'、''、','、'.'、'['或'+'上不工作。
- Super仅支持箭头键,因为我找不到支持常规键的方法。任何关于此问题的pull request都会受到欢迎。
- 大多数按键检测都需要原始模式。
简单示例
extern crate xekeys;
use xekeys::{get_keys, Keys};
fn main() {
loop {
// Here we get the keypresses as a struct.
let keys = get_keys();
// Here we check if q is pressed and control is pressed and if so, we break.
match keys {
| Keys::CtrlChar('q') => break,
| _ => {}
};
}
}
动机
当我使用termion时,我意识到我无法检测到ctrl+arrow键,这是我需要的。所以我创建了自己的crate;但是,为了证明使用这个而不是termion,我添加了termion按键功能的大部分功能,以及一些额外的功能,例如与箭头键和功能键一起使用更多的修饰符,最多可达20个。
许可
XEKEYS使用BSD-3条款。
Termion替代品
我不想制作一个完整的termion替代品,termion已经很棒了;但是,如果您想找一个,我建议您使用这个进行按键检测,使用raw_tty进行原始模式,使用lliw进行样式设计,我猜您还可以使用ANSI转义码进行光标移动以及清除。