sublime text 的 rust 配置需同步调整构建系统、插件设置、环境变量、语法识别四部分;working_dir 必须设为项目根目录,file_regex 要严格匹配 rustc 错误格式,path 需包含 ~/.cargo/bin,且 .rs 文件语法必须手动设为 rust。

Sublime Text 里 Rust 相关配置不是“改一个地方就全好”,而是分散在构建系统、插件设置、环境变量、语法识别四块;改错任意一块,Ctrl+B 就静默失败或报 command not found: cargo。
构建系统中 working_dir 必须指向 Cargo.toml 所在目录
很多人把 "working_dir": "${file_path}" 当成默认写法,但 Rust 项目运行 cargo run 时只认项目根目录(含 Cargo.toml 的那一层),不是当前打开的 src/main.rs 所在路径。
- 正确写法是:
"working_dir": "${project_path:${folder}}" - 前提是:必须用 File → Open Folder 加载整个项目文件夹,不能双击单个
.rs文件启动 - 验证方式:右键标签页 → Reveal in Side Bar,确认左侧边栏顶部显示的是项目根目录(能看到
Cargo.toml) - 如果没开项目,
${project_path}为空,${folder}会 fallback 到当前文件所在目录——仍可能错
file_regex 不配或格式错,错误行就无法双击跳转
构建失败后输出类似 src/main.rs:2:5: error[E0308]: mismatched types,但双击没反应?基本就是 file_regex 没生效。
- 标准正则应为:
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$"(注意\s*是双反斜杠,JSON 字符串内需转义) - 漏掉这行,所有错误只是纯文本日志,失去可操作性
- 别抄网上简化的版本(比如去掉
\s*或写成s*),rustc 输出末尾有空格和冒号,不匹配就失效
PATH 在 Sublime 进程里不可见,cargo/rustc 就根本调不动
终端里 cargo --version 正常 ≠ Sublime 能调用 cargo。GUI 启动的 Sublime 不加载 ~/.zshrc 或系统环境变量,PATH 常被截断。
- 验证方式:按
Ctrl+`打开控制台,执行import os; print(os.environ.get('PATH')) - macOS/Linux:输出里必须含
~/.cargo/bin(如/Users/xxx/.cargo/bin) - Windows:必须含
%USERPROFILE%.cargoin(且加在「系统环境变量」,不是用户变量) - 兜底方案:在构建系统 JSON 中加
"shell": true,让命令走 shell 启动,能继承完整 PATH
Rust 语法未手动设为 Rust,整个构建链就启动不了
Sublime 默认把 .rs 文件当 Plain Text,不会触发任何 Rust 相关构建系统或 LSP 功能。
- 打开任意
.rs文件,点右下角状态栏(显示Plain Text的位置),手动选Rust - 如果列表里没有
Rust,说明插件没装对:用 Package Control 安装Rust(by rust-lang),不是RustEnhanced;二者共存会导致状态栏卡死 - 进 View → Syntax → Rust → Rust 设为默认,避免每次手动切
最容易被忽略的是:Sublime 的 PATH 隔离问题在 macOS 和 Windows 上表现不同,但后果一致——cargo 找不到;而 working_dir 错误和 file_regex 不匹配,又会让构建看起来“成功”实则没效果。改配置前,先在控制台验证 PATH 和项目结构,比反复重装插件管用得多。











