Cargo未安装或未添加到PATH导致Sublime中cargo run报command not found,需验证控制台PATH是否含~/.cargo/bin(macOS/Linux)或%USERPROFILE%.cargoin(Windows),并确保working_dir设为"${project_path:${folder}}"、右下角语法设为Rust。

Sublime Text 里 cargo run 报 command not found 怎么办
这不是插件没装,是 Sublime 进程根本找不到 cargo。终端能跑 cargo --version ≠ Sublime 能调用它——GUI 启动的 Sublime 不读你的 ~/.zshrc 或系统环境变量。
- 按
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;更稳的方式是用终端启动:open -a "Sublime Text" - Windows:把
%USERPROFILE%.cargoin加进「系统环境变量」(不是用户变量),加完必须彻底退出 Sublime(右键任务栏 → 退出),再重开 - 加
"shell": true到 Build System 是最快兜底方案——它让命令走 shell,能继承完整 PATH
Build System 配置 cargo run 时 working_dir 错在哪
cargo run 必须在含 Cargo.toml 的目录下执行,否则报 error: no Cargo.toml file found。Sublime 默认的 ${file_path}(比如打开 src/main.rs 时是 src/ 目录)完全不对。
- 务必写
"working_dir": "${project_path:${folder}}",不是${file_path}或空值 - 打开项目必须用
File → Open Folder加载整个文件夹(含Cargo.toml),别双击单个.rs文件 - 右键标签页 →
Reveal in Side Bar确认当前视图是否在项目根目录层级;如果只看到src/或target/,说明没加载对 - 单文件快速测试?别硬套
cargo run,直接用rustc hello.rs && ./hello更快
错误信息不能双击跳转,file_regex 怎么写才有效
不配 file_regex,编译错误就只是纯文本日志,没法点一下跳到出错行。典型 rustc/cargo 错误格式是:src/main.rs:2:5: error[E0308]: mismatched types。
- 正则必须严格匹配该结构:
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$"(注意\s*是双反斜杠,JSON 字符串内需转义) - 漏掉这行,所有错误都失去可操作性;写成
s*或s(单反斜杠)会直接失效 - 验证方法:手动在 Build System 输出里找一行错误,看光标悬停时是否显示“Go to line”提示;没提示就是正则没命中
- 如果项目用了 workspace 或多 crate,确保
Cargo.toml在顶层,否则路径解析可能偏移
Rust 语法不亮、状态栏显示 Plain Text 怎么修复
Sublime 不会自动识别 .rs 文件为 Rust 代码,默认就是 Plain Text。所有高亮、构建、LSP 补全都依赖这个标识。
- 打开任意
.rs文件,点右下角状态栏(显示Plain Text的地方),手动选Rust - 如果菜单里没有
Rust,说明插件没加载:用 Package Control 安装Rust(by rust-lang),**不是**RustEnhanced;二者共存会导致状态栏卡死 - 装完后进
View → Syntax → Rust → Rust设为默认,避免每次手动切 - 检查
Cargo.toml是否也高亮:需额外装 TOML 插件(推荐sublimelsp/TOML),且安装后必须重启 Sublime,否则source.tomlscope 不注册
配置真正生效的关键点不在插件数量,而在三处:Sublime 进程是否真有 cargo 的 PATH、working_dir 是否指向 Cargo.toml 所在目录、右下角是否显示 Rust。漏掉任一,Ctrl+B 就静默失败或报错不可操作。


















