运行 Rust 中的命令 (vim)

Running commands in rust (vim)

std::process::Command::new("/usr/bin/sh")
    .arg("-c")
    .arg("vim")
    .arg("file")
    .spawn()
    .expect("Error: Failed to run editor");

当我运行这段代码时,一个vim过程是运行,正在编辑文件,虽然它没有在终端打开(不知道确切的术语)如何可以 I/is 可以在终端

中实际打开 vim

当我 运行 你的代码时,vim 确实在终端中打开,但我的 shell 也在同一个终端中 运行ning,并且两者都 vim 和 shell 争夺显示,他们都收到我键入的任何密钥。如果这也是您遇到的问题,您需要在子进程上 wait

std::process::Command::new("/usr/bin/sh")
    .arg("-c")
    .arg("vim")
    .arg("file")
    .spawn()
    .expect("Error: Failed to run editor")
    .wait()
    .expect("Error: Editor returned a non-zero status");