#转义 #终端 #ANSI #光标 #ANSI颜色 #颜色

已弃用 终端转义

由于 termion 的出现而弃用。为客户端应用程序提供终端转义序列支持

3个版本

0.1.2 2019年7月22日
0.1.1 2019年7月21日
0.1.0 2019年7月20日

#5 in #转义

MIT/Apache

19KB
348

终端转义

客户端应用程序控制符合ANSI转义序列的终端设备的一些工具。

extern crate terminal_escapes;

use terminal_escapes::{
  Sequence::*,
  Attribute::*,
  Color
};

fn main() {
  println!(
      "{}Hello {}World!{}",
      SetAttributes(&[Foreground(Color::Red)]),
      SetAttributes(&[Foreground(Color::Blue), Bright]),
      SetAttributes(&[Default]),
  );
}

目前支持的转义序列相当有限,并且库还没有经过广泛的测试。我很快就会回到这个项目上来,以便有更全面的协议实现。在此期间,欢迎您参与。

非交互式序列

如果您只计划使用这个crate来格式化带有颜色的输出,那么您可以直接使用 Sequence 枚举将转义序列放入输出流中。

print!("{}", Sequence::SetAttributes(Background(Color::Green)));

与终端的交互

转义序列也可以用来与终端交互,就像常规的客户端-服务器协议一样。在这种情况下,使用 Device 结构的设置会更复杂,因为它需要访问程序输入流。

路线图

以下是我想在将来添加到这个crate的一些元素

  • 备用屏幕缓冲区支持。
  • 非缓冲输入。
  • 异步事件处理键盘/鼠标/调整大小等事件。
  • 等等。

许可

根据您选择,许可协议为

贡献

除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证定义,应双许可如上所述,无任何额外条款或条件。

无运行时依赖