在Rust中更改终端光标位置

时间:2016-11-04 15:24:59

标签: rust

为了编写游戏,我需要在终端的不同位置写一些字符。我用了

println!("{c:>width$}", c="*", width=x);

x位置几乎可以,但是当我按 space 时,我想更改y位置。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:6)

对于终端控制,我建议使用诸如Termion之类的包。使用Termion看起来像:

fn main() {
    let mut stdout = stdout().into_raw_mode().unwrap();

    writeln!(stdout, "{}Placed at 3,7",
       termion::cursor::Goto(3, 7));
}

请参阅examples

答案 1 :(得分:4)

你也可以使用ncurses-rs,这是一个围绕ncurse库的瘦包装,或Cursive,这是一个更高级别,允许你在终端创建各种小部件。

答案 2 :(得分:0)

您也可以为此使用crossterm,它为您提供了一种处理光标移动和许多其他跨平台内容的方法。

如果您不想拥有其他东西,将会很快发布具有功能标记以禁用其他功能的版本。