Sublime中cargo run报command not found是PATH未继承所致,需确保~/.cargo/bin(macOS/Linux)或%USERPROFILE%.cargoin(Windows)已加入系统环境变量并重启Sublime,同时构建系统配置working_dir和file_regex。

Sublime Text里cargo run报command not found,但终端能跑
这不是插件没装对,是 Sublime 进程压根没继承到你的 cargo 路径。终端里 cargo --version 成功 ≠ Sublime 控制台能调用它。
验证方式:按 Ctrl+` 打开 Sublime 控制台,执行:
import os; print(os.environ.get('PATH'))
检查输出是否含 ~/.cargo/bin(macOS/Linux)或 %USERPROFILE%.cargoin(Windows)。不出现就说明 PATH 没透传进来。
- macOS/Linux:确保
~/.cargo/bin已写入~/.zshrc(或你实际用的 shell 配置),并执行过source ~/.zshrc;更可靠的是从终端启动:open -a "Sublime Text" - Windows:把
%USERPROFILE%.cargoin加进「系统环境变量」(不是用户变量),加完必须右键任务栏图标 → 退出 Sublime,再重开 - 加
"shell": true到 Build System 是最稳的兜底方案——它让命令走系统 shell,能复用完整 PATH
Build System 中 cargo run 找不到 Cargo.toml
错误提示通常是 error: no Cargo.toml file found,根本原因不是项目没建好,而是 working_dir 指向了错误位置。
Sublime 默认用 ${file_path}(比如打开 src/main.rs 时是 src/ 目录),但 cargo run 必须在含 Cargo.toml 的项目根目录下运行。
- Build System 中必须写
"working_dir": "${project_path:${folder}}",不能写"${file_path}" - 打开项目时,务必用
File → Open Folder加载整个文件夹(含Cargo.toml),别只双击单个.rs文件 - 右键标签页 →
Reveal in Side Bar,确认当前视图是否在项目根目录层级
错误信息无法双击跳转到源码行
Build 输出的报错只是纯文本,没法点就跳,基本就是 file_regex 没设或格式不对。
Rust 编译错误典型格式是:src/main.rs:2:5: error[E0308]: mismatched types
- 对应正则应为:
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$"(注意反斜杠要双写) - 漏掉这行,所有错误都变成静态日志,失去可操作性
-
rustc单文件编译错误格式略有不同,若混用rustc和cargo,建议分两个 Build System 配置
rust-analyzer 启动失败,显示 client not started
这不是 LSP 插件坏了,是它根本找不到 rust-analyzer 可执行文件。2026 年起 cargo install rust-analyzer 已废弃,rustup component add rust-analyzer 在 macOS/Linux 上常静默失败。
- 必须手动下载二进制:去 GitHub 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')输出
open 启动的行为都不一样。调优不是堆插件,而是先让 cargo、rust-analyzer、file_regex 这三样东西在 Sublime 内部真正“活”起来。


















