根本原因是Sublime GUI启动不继承shell的PATH环境变量,导致找不到cargo;需将~/.cargo/bin(macOS/Linux)或%USERPROFILE%.cargoin(Windows)加入系统级PATH,并通过subl命令或重启Sublime生效,同时构建系统中设"working_dir": "${project_path:${folder}}"并配准file_regex。

Sublime Text里cargo run报command not found
根本原因不是没装cargo,而是Sublime进程的PATH没继承你shell里的配置。终端能跑cargo --version≠ Sublime能调用cargo。
验证方式:按Ctrl+`打开控制台,执行:
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,再重开 - 兜底方案:在Build System中加
"shell": true,让命令走shell启动,PATH就完整了
working_dir设错导致no Cargo.toml file found
cargo run必须在含Cargo.toml的目录下执行,而Sublime默认${file_path}指向当前.rs文件所在目录(比如src/),不是项目根目录。
- 错误写法:
"working_dir": "${file_path}" - 正确写法:
"working_dir": "${project_path:${folder}}" - 前提:必须用
File → Open Folder加载整个项目文件夹,不能只双击单个.rs文件 - 确认方式:右键标签页 →
Reveal in Side Bar,看侧边栏顶部是否显示含Cargo.toml的文件夹名
错误信息无法双击跳转到源码行
这是file_regex没配或格式不匹配。rustc/cargo错误典型格式是:src/main.rs:2:5: error[E0308]: mismatched types,不配这个,错误就只是静态文本。
- 必须加这行:
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$" - 注意:
\s*是双反斜杠——JSON字符串内要转义 - 别漏掉
^和$,否则可能匹配失败 - 如果用了
shell_cmd(推荐),file_regex仍需单独配,它不自动继承shell行为
rust-analyzer启动失败:client not started
2026年起cargo install rust-analyzer已废弃,rustup component add rust-analyzer在macOS/Linux上常静默失败。LSP插件找不到可执行文件,不是PATH问题,而是根本没二进制。
- 手动下载:去
https://github.com/rust-lang/rust-analyzer/releases,选对应平台(如rust-analyzer-aarch64-apple-darwin) - 解压后得到单个无后缀文件(macOS/Linux)或
.exe(Windows),放进固定路径:/usr/local/bin/rust-analyzer或C: ools ust-analyzer.exe - LSP配置中
"command"必须写绝对路径:["/usr/local/bin/rust-analyzer"],不能只写["rust-analyzer"] - 确保该路径已加入
PATH,并在Sublime控制台验证os.environ.get('PATH')输出里有它
Rust就全白搭——.rs文件被当Plain Text处理,构建系统根本不会触发,语法高亮、LSP补全、错误定位全部失效。这个点最容易被忽略,也最难排查。


















