sublime text 本身不编译 rust,只调用 cargo;配置失败主因是 cargo 在 sublime 进程中不可见或 working_dir 错误。应验证控制台 path 是否含 .cargo/bin、设 "working_dir": "${project_path:${folder}}"、加 "shell": true,并配准 file_regex 支持错误跳转。

Sublime Text 本身不编译 Rust,它只调用 cargo;配置失败的主因不是插件没装对,而是 cargo 在 Sublime 进程里根本找不到,或 working_dir 指向了错误目录。
Build System 中 cargo run 找不到命令?检查 PATH 是否真正生效
终端能跑 cargo --version ≠ Sublime 能调用 cargo。尤其 macOS 从 Dock 启动、Windows 未重启编辑器时,PATH 常被截断。
- 按
Ctrl+`打开 Sublime 控制台,执行import os; print(os.environ.get('PATH')),确认输出里包含.cargo/bin(macOS/Linux)或%USERPROFILE%.cargoin(Windows) - macOS/Linux 用户:确保
~/.cargo/bin已加进 shell 配置(如~/.zshrc),且执行过source ~/.zshrc - Windows 用户:检查系统环境变量是否含
%USERPROFILE%.cargoin,加完必须彻底关闭并重启 Sublime(仅关窗口无效) - Build System 中加
"shell": true是最稳妥的兜底方案——它让 Sublime 通过 shell 启动命令,能继承完整 PATH
working_dir 必须是项目根目录,否则 cargo run 直接报错
Sublime 默认用 ${file_path}(比如打开 src/main.rs 时是 src/ 目录),但 cargo run 必须在含 Cargo.toml 的目录下运行,否则提示 error: no Cargo.toml file found。
- Build System 中务必写
"working_dir": "${project_path:${folder}}",而不是"${file_path}" - 打开项目时,用
File → Open Folder加载整个文件夹(含Cargo.toml),别只双击单个.rs文件 - 右键标签页 →
Reveal in Side Bar确认当前视图是否在项目根目录层级
file_regex 不配,错误就只是纯文本,没法双击跳转
Build System 输出编译错误后,若不能双击直接跳到出错行,基本就是 file_regex 没设或格式不匹配。
- rustc/cargo 错误行典型格式是:
src/main.rs:2:5: error[E0308]: mismatched types - 对应正则应为:
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$" - 漏掉这行,所有错误都变成静态日志,失去可操作性
- 注意反斜杠要双写(JSON 字符串内),
\s*不能写成s*
单文件快速测试?别用 cargo run,改用 rustc
新建一个 hello.rs 就想立刻跑,又不想建完整 Cargo 项目?cargo run 在非项目目录下必然失败,但 rustc 可以直接编译单文件。
- 新建 Build System,内容如下:
{
"cmd": ["rustc", "$file", "-o", "$file_base_name"],
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$",
"working_dir": "$file_path",
"selector": "source.rust"
}
- 保存后按
Ctrl+B,生成同名可执行文件(如hello),再终端运行即可 - 注意:这种方式不支持
use外部 crate,仅适合语法验证或极简 demo - 若需依赖管理,必须回到
cargo和项目结构
最容易被忽略的是 working_dir 和 shell 的组合效果:即使 PATH 正确,working_dir 错了 cargo 就找不到 Cargo.toml;即使 working_dir 对了,shell 没开,Windows 下 cargo 又可能根本启动不了——这两项必须同时验证。











