在终端中执行以下命令来初始化一个新的Rust项目:
cargo new text_editor
然后,进入项目目录:
cd text_editor
现在,我们可以编辑 src/main.rs 文件来编写我们的文本编辑器代码:
use std::io::{self, Write};
fn main() {
println!("简单文本编辑器");
println!("================");
let mut buffer = String::new(); // 创建一个字符串缓冲区来存储用户输入的文本
loop {
print!("> ");
io::stdout().flush().unwrap(); // 确保打印的提示信息被立即输出到终端
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap(); // 读取用户输入的命令
let input = input.trim(); // 移除输入中的空白字符
match input {
"quit" => {
println!("退出编辑器");
break;
}
"save" => {
save_to_file(&buffer);
}
_ => {
buffer.push_str(input); // 将用户输入的文本添加到缓冲区
buffer.push('\n'); // 添加换行符
}
}
}
}
fn save_to_file(buffer: &str) {
print!("输入文件名: ");
io::stdout().flush().unwrap();
let mut filename = String::new();
io::stdin().read_line(&mut filename).unwrap();
let filename = filename.trim();
let mut file = std::fs::File::create(filename).expect("无法创建文件");
file.write_all(buffer.as_bytes()).expect("无法写入文件");
println!("文件保存成功");
}