#终端 #用户界面 #curses #vt100

textmode

由真实终端解析器支持的终端交互库

7 个不稳定版本

0.4.0 2023年3月8日
0.3.0 2021年12月15日
0.2.2 2021年12月6日
0.2.0 2021年11月18日
0.1.0 2021年3月13日

#655 in 异步


用于 ttyrec-bin

MIT 许可证

60KB
1K SLoC

textmode

textmode 是一个基于真实终端解析库构建的终端交互库。它允许你在内存屏幕上执行任意绘图操作,并在完成时通过优化的差异算法更新可见的终端输出,以反映内存屏幕。由于基于真实的终端解析库,因此尽管提供了正常的 curses 类似操作

use textmode::Textmode;
let mut tm = textmode::Output::new().await?;
tm.clear();
tm.move_to(5, 5);
tm.set_fgcolor(textmode::color::RED);
tm.write_str("foo");
tm.refresh().await?;

你还可以将包含任意终端转义码的数据写入输出,它们也会正确处理

tm.write(b"\x1b[34m\x1b[3;9Hbar\x1b[m");
tm.refresh().await?;

此模块分为两个主要部分: OutputInput。有关这些类型的更多详细信息,请参阅文档。此外,blocking 模块提供了带有阻塞调用的等效接口。

依赖项

~4–16MB
~190K SLoC