sublime text 运行 cargo run 失败的主因是 path 未透传、working_dir 错误或右下角语法未设为 rust;三者缺一即导致 ctrl+b 静默失败或报“no build system”,需分别验证控制台 path、设 "${project_path:${folder}}" 为 working_dir、手动切换状态栏至 rust。

Sublime Text 跑不了 cargo run,不是插件装少了,而是 PATH 没透传、working_dir 指错了、右下角没设成 Rust —— 这三处任一缺失,Ctrl+B 就静默失败或报 No build system。
验证 Sublime 进程里 cargo 真的可用
终端能跑 cargo --version ≠ Sublime 里能调用。GUI 启动的 Sublime 不读你的 ~/.zshrc 或系统环境变量,PATH 往往被截断。
- 按
Ctrl+`打开 Sublime 控制台,执行:import os; print(os.environ.get('PATH'))确认输出中含~/.cargo/bin(macOS/Linux)或%USERPROFILE%.cargoin(Windows) - macOS/Linux:把
export PATH="$HOME/.cargo/bin:$PATH"加进~/.zshrc,再执行source ~/.zshrc;更可靠的是从终端启动:subl . - Windows:把
%USERPROFILE%.cargoin加进「系统环境变量」(不是用户变量),然后彻底退出 Sublime(右键任务栏图标 → 退出),再重开 - 验证是否真可用:
import subprocess; subprocess.run(['cargo', '--version'])
若报FileNotFoundError,说明 PATH 还没生效
构建系统必须写对 shell_cmd、working_dir 和 file_regex
网上抄的 JSON 常漏字段,导致 cargo 找不到 Cargo.toml,或错误不能双击跳转。
- 用
"shell_cmd": "cargo run",别用"cmd":前者走 shell,能继承 PATH 和 alias;后者直调进程,Windows 上路径含空格时大概率崩 -
"working_dir": "${project_path:${folder}}"必须写死:否则 Sublime 默认用${file_path}(比如打开src/main.rs时是src/目录),但cargo run必须在含Cargo.toml的根目录下运行,否则报error: no Cargo.toml file found - 打开项目必须用
File → Open Folder,加载整个文件夹(含Cargo.toml);别只双击单个.rs文件 -
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$"必须配:rustc 错误典型格式是src/main.rs:2:5: error[E0308]: mismatched types;漏掉这行,错误就只是纯文本,没法双击跳转
右下角状态栏必须显示 Rust,不是 Plain Text
Sublime 全靠这个标识匹配 source.rust selector,语法高亮、构建系统触发、LSP 补全都依赖它。不手动切,就全挂。
- 打开任意
.rs文件,点右下角状态栏(默认显示Plain Text),手动选Rust - 如果列表里没有
Rust,说明插件没加载:用 Package Control 安装Rust(by rust-lang),不是RustEnhanced;二者共存会冲突,导致状态栏卡死 - 装完后进
View → Syntax → Rust → Rust,设为默认,避免每次手动切
rust-analyzer 启动失败?别用 cargo install,改用绝对路径
2026 年起 cargo install rust-analyzer 已废弃,rustup component add rust-analyzer 在 macOS/Linux 上常静默失败(尤其 Apple Silicon)。
- 去 GitHub releases 下载对应平台二进制(如
rust-analyzer-aarch64-apple-darwin),解压得单个无后缀可执行文件 - 放进固定路径:
/usr/local/bin/rust-analyzer(macOS/Linux)或C: ools ust-analyzer.exe(Windows),并确保该路径已加入系统 PATH - LSP 配置中
"command"必须写绝对路径:"command": ["/usr/local/bin/rust-analyzer"],不能只写["rust-analyzer"]—— PATH 不一致时 macOS/Linux 下极易找不到 - 再次确认 Sublime 控制台里
import os; print(os.environ.get('PATH'))输出含该路径
最容易被忽略的是 working_dir 和右下角语法切换:很多人反复检查 PATH 却忘了 ${file_path} 默认指向子目录,也有人装完插件就以为自动识别了 .rs 文件——其实 Sublime 从不猜,不手动点一下状态栏,它永远当你是 Plain Text。











