24个版本 (2个稳定版)
1.0.1 | 2024年5月24日 |
---|---|
1.0.0 | 2023年11月28日 |
0.5.8 | 2022年11月18日 |
0.5.7 | 2021年9月12日 |
0.2.0 | 2019年7月12日 |
#154 in 命令行界面
1,579 每月下载次数
24KB
465 行
term-basics-linux
Rust crate库,为Linux提供基本的终端输入功能。主要功能是单行输入字段。它支持使用退格和删除键编辑文本,以及使用home、end和箭头键进行导航。
print!("your input: ");
let input = tbl::input_field_simple(true);
它支持一系列预定义的输入列表,用户可以通过上下箭头滚动浏览
let mut his = tbl::InputList::new(2);
his.add("one");
his.add("two");
println!("{}", tbl::input_field_scrollable(&mut his, true));
您还可以隐藏/替换输入的字符。这对于密码输入很有用
// like doas/sudo
let pass = tbl::input_field(&mut tbl::InputList::new(0), tbl::PrintChar::None, true);
// like websites
let pass = tbl::input_field(&mut tbl::InputList::new(0), tbl::PrintChar::Substitute('*'), true);
另一个功能是 getch()
,它从stdin返回字符,而无需用户按下回车。这很有用,但在rust中默认不可用。所有其他输入字段都使用此函数。
设计
这个crate的设计非常简约,只做了几件事。它只适用于Linux。这使其简单且轻量级。
键码
有时不同的终端仿真器为某些键使用不同的代码,如删除或end。例如,在suckless简单终端(ST)和vscode内置终端仿真器中,退格键都是127。但ST中的删除键是27-91-80,vscode中是27-91-51-126。ST中的end键是27-91-52-126,vscode中是27-91-70。test_chars
函数可以帮助查找您平台上的键码。
链接
- https://gitlab.com/codybloemhard/term-basics-linux
- https://crates.io/crates/term-basics-linux
- https://docs.rs/term-basics-linux/
许可证
Copyright (C) 2024 Cody Bloemhard
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
依赖
~0.4–1MB
~22K SLoC