Rust:创建可编辑的CLI输入

0yg35tkg  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(170)

要在rust中读取用户输入,我们可以这样做:

use std::io;
let mut input = String::new();
print!("Edit username: ");
io::stdout().flush().ok();
io::stdin().readline(&mut input);

我想要的是一种创建可编辑输入文本的方法,比如用一些用户可以编辑的文本填充标准输入。

stdout              stdin
     |                  |
Edit username: <existing username>
7tofc5zh

7tofc5zh1#

如果您可以使用外部机箱,并且不需要tui(取决于termioncrossterm)之类的完整终端UI功能,则可以使用rustyline

use rustyline::{DefaultEditor, Result};

fn main() -> Result<()> {
    let mut rl = DefaultEditor::new()?;
    const DEFAULT_USERNAME: &str = "admin";
    let input = rl.readline_with_initial("Edit username: ", (DEFAULT_USERNAME, ""))?;
    println!("Your selected username: {input}");
    Ok(())
}

第一节第一节第一节第一节第一节第二节第一节
贷记this answer (How do I enable editable user input for a Rust terminal application?)

相关问题