#光标位置 #终端 #鼠标事件 #事件 #输入事件 #输入

ibox-crossterm

为 ibox 制作,用于获取光标的标准错误位置。**不适用于通用用途**。

1 个不稳定版本

0.23.2 2022年4月12日

#391命令行界面


用于 ibox

MIT 许可证

265KB
5K SLoC

**不要使用此 crate,这是一个为我在其他 crate(ibox)中使用的 CROSSTERM 的分支**。

Donate Travis Latest Version MIT docs Lines of Code Join us on Discord

跨平台终端操作库

Crossterm 是一个纯 Rust 的终端操作库,它使得编写跨平台的文本界面成为可能(见 功能)。它支持所有 UNIX 和 Windows 7 及以上版本的终端(并非所有终端都经过测试,更多信息请见 测试的终端)。

目录

功能

  • 跨平台
  • 多线程(发送、同步)
  • 详细的文档
  • 依赖项少
  • 完全控制输出缓冲区的写入和刷新
  • 是 tty
  • 光标
    • 移动光标 N 次(上、下、左、右)
    • 移动到上一行/下一行
    • 移动到列
    • 设置/获取光标位置
    • 存储光标位置并在以后恢复到它
    • 隐藏/显示光标
    • 启用/禁用光标闪烁(并非所有终端都支持此功能)
  • 样式输出
    • 前景色(16种基本颜色)
    • 背景色(16种基本颜色)
    • 256(ANSI)颜色支持(仅限 Windows 10 和 UNIX)
    • RGB 颜色支持(仅限 Windows 10 和 UNIX)
    • 文本属性,如粗体、斜体、下划线、删除线等
  • 终端
    • 清除(所有行、当前行、从光标向下和向上,直到新行)
    • 向上/向下滚动
    • 设置/获取终端大小
    • 退出当前进程
    • 备用屏幕
    • 原始屏幕
    • 设置终端标题
    • 启用/禁用自动换行
  • 事件
    • 输入事件
    • 鼠标事件(按下、释放、位置、按钮、拖动)
    • 终端大小调整事件
    • 支持鼠标和键盘事件的高级修饰符(SHIFT | ALT | CTRL)和
    • futures Stream(特性 'event-stream')
    • 轮询/读取 API

测试的终端

  • 控制台主机
    • Windows 10(专业版)
    • Windows 8.1(N版)
  • Ubuntu 桌面终端
    • Ubuntu 17.10
    • Pop!_OS(Ubuntu)20.04
  • (Arch、Manjaro)KDE Konsole
  • (Arch)Kitty
  • Linux Mint
  • (OpenSuse)Alacritty

此crate支持所有UNIX终端和Windows 7及以下版本的终端;然而,并非所有终端都经过测试。如果您在没有上述列表之外的终端上使用此库且没有问题,请随意将其添加到上述列表中 - 我非常感谢!

入门指南

请参阅示例目录文档以获取更多高级示例。

点击显示Cargo.toml。
[dependencies]
crossterm = "0.23"

use std::io::{stdout, Write};

use crossterm::{
    execute,
    style::{Color, Print, ResetColor, SetBackgroundColor, SetForegroundColor},
    ExecutableCommand, Result,
    event,
};

fn main() -> Result<()> {
    // using the macro
    execute!(
        stdout(),
        SetForegroundColor(Color::Blue),
        SetBackgroundColor(Color::Red),
        Print("Styled text here."),
        ResetColor
    )?;

    // or using functions
    stdout()
        .execute(SetForegroundColor(Color::Blue))?
        .execute(SetBackgroundColor(Color::Red))?
        .execute(Print("Styled text here."))?
        .execute(ResetColor)?;
    
    Ok(())
}

查看所有可能的命令列表

功能标志

[dependencies.crossterm]
version = "0.23"
features = ["event-stream"] 
特性 描述
event-stream futures::Stream产生Result<Event>
serde 事件序列的序列化和反序列化。

依赖项理由

依赖项 用于 包含
bitflags KeyModifiers,这些根据输入而不同。 always
parking_lot 带超时的锁定RwLock,const互斥锁。 always
libc UNIX终端_size/原始模式/set_title和其它一些底层功能。 仅限UNIX
Mio 事件就绪轮询,唤醒轮询器 仅限UNIX
signal-hook signalhook用于处理Mio的终端大小调整SIGNAL。 仅限UNIX
winapi 用于低级Windows系统调用,ANSI代码无法替代 仅限Windows
futures-core 用于事件异步流 仅与event-stream特性标志一起使用
serde 事件序列化和反序列化 仅与serde特性标志一起使用

其他资源

使用情况

贡献

我们非常感谢任何人对此crate的贡献。在您贡献之前,请阅读贡献指南

作者

  • Timon Post - 项目负责人 & 创始人

许可证

此项目,crossterm,包括crossterm_screencrossterm_cursorcrossterm_stylecrossterm_inputcrossterm_terminalcrossterm_winapicrossterm_utils均受MIT许可证许可 - 有关详细信息,请参阅LICENSE文件。

依赖项

~1–9.5MB
~82K SLoC