Notepad++需通过NppExec调用系统Rust工具链实现编译运行,前提是已安装rustup且cargo在PATH中;推荐用“cargo run”脚本,单文件可用rustc但不支持多文件或外部依赖。

Notepad++ 本身不支持 Rust 编译,必须靠外部工具链 + NppExec 驱动
Notepad++ 是纯文本编辑器,没有内置编译器或 Cargo 集成。所谓“配置编译运行”,本质是让 Notepad++ 调用系统已安装的 cargo 或 rustc 命令,并捕获输出。前提是:你本地已通过 rustup 安装了 Rust 工具链,且 cargo 在 PATH 中可执行(终端里输入 cargo --version 能正常返回)。
别指望插件管理器里搜“Rust Compiler”能装上可用插件——Notepad++ 7.9+ 已停用旧式插件架构,官方也从未发布过 Rust 编译插件。所有有效方案都绕不开 NppExec。
- 去「插件」→「插件管理器」→ 搜索
NppExec并安装,重启 Notepad++ - 确认
cargo可被调用:打开 Notepad++,按F6弹出 NppExec 控制台,输入cmd /c cargo --version,回车看是否输出版本号 - 如果报“不是内部或外部命令”,说明 Rust 未正确加入系统 PATH,需先修复环境变量,否则后续全部失败
用 NppExec 配置 cargo run 一键执行(推荐用于二进制 crate)
对大多数 Rust 项目(bin 类型),cargo run 是最直接的“保存即运行”方式。它自动处理依赖、增量编译和执行,比手动调 rustc 稳定得多。
操作步骤:
- 按
F6打开 NppExec 对话框 - 粘贴以下命令(注意换行与空格):
npp_save cd $(CURRENT_DIRECTORY) cargo run
- 点「Save...」,起个名字如
Rust - cargo run,确定 - 以后在
.rs文件中,按F6→ 选该脚本,或绑定快捷键(NppExec 设置里可配)
⚠️ 注意:该命令默认在项目根目录下运行。如果你打开的是子目录里的 main.rs,但 Cargo.toml 不在同级,会报错 no Cargo.toml。此时应先确保当前文件属于一个合法 Cargo 项目,且 Cargo.toml 位于 $(CURRENT_DIRECTORY) 或其上级目录。
rustc 单文件编译运行(适合学习/小实验,不推荐用于多文件项目)
若只是写单个 hello.rs 练手,不想建完整 Cargo 项目,可用 rustc 直接编译。但要注意 Windows 和类 Unix 系统的可执行名差异。
在 NppExec 中新建脚本,内容如下:
npp_save cd $(CURRENT_DIRECTORY) rustc $(FILE_NAME) -o $(NAME_PART).exe $(NAME_PART).exe
- Linux/macOS 用户请把最后一行换成
./$(NAME_PART)(去掉.exe) -
rustc不处理依赖,也不支持use外部 crate,仅限 std 内置功能 - 编译失败时错误信息会直接显示在 NppExec 输出面板,但不会跳转到出错行——这是 Notepad++ 的固有限制
常见失败原因和绕过方法
即使脚本写对,也常因以下原因卡住:
-
error: could not compile `xxx` due to previous error:Rust 编译失败,检查语法(比如忘记分号、类型不匹配),NppExec 不会高亮错误位置,得靠肉眼扫或切到终端复现 - 输出窗口一闪而过:程序运行完立即退出,看不到
println!结果。可在代码末尾加std::io::stdin().read_line(&mut String::new()).unwrap();暂停,或改用cargo run后手动在终端里运行生成的二进制 -
error: file not found for module `xxx`:你在用rustc编译多文件项目,这不可行。必须用cargo管理模块结构 - 中文路径或空格导致命令失败:Notepad++ 的
$(CURRENT_DIRECTORY)若含空格,cd命令可能截断。稳妥写法是加引号:cd "$(CURRENT_DIRECTORY)"
真正麻烦的从来不是配置命令,而是 Rust 本身的构建模型和 Notepad++ 的零上下文感知——它不知道什么是 crate root,不解析 mod 声明,也不理解 Cargo.lock。所以别强求“像 VS Code 那样智能”,把它当带语法高亮的终端前置界面更现实。

















