sublime text中cargo运行失败的主因是path未透传、working_dir未设为项目根目录、file_regex缺失或错误;需在控制台验证path含.cargo/bin、设"working_dir": "${project_path:${folder}}"、配"file_regex": "^(.+):([0-9]+):([0-9]+):s(.)$"并手动选择rust语法。

cargo 在 Sublime Text 里跑不起来,不是 Rust 没装好,而是 Sublime 进程根本看不见它——PATH、working_dir、file_regex 三者缺一不可,少一个 Ctrl+B 就静默失败或报错跳不到行。
Sublime 控制台里 cargo --version 报错?先查 PATH
终端能跑 ≠ Sublime 能调用。GUI 启动的 Sublime 不加载 ~/.zshrc 或 PATH 环境变量,尤其 macOS 从 Dock 启动、Windows 未彻底退出重开时最常见。
- 按
Ctrl+`打开 Sublime 控制台,执行:import os; print(os.environ.get('PATH')) - 确认输出含
~/.cargo/bin(macOS/Linux)或%USERPROFILE%.cargoin(Windows) - macOS/Linux:确保
~/.cargo/bin已写入 shell 配置并执行过source ~/.zshrc;更可靠的是从终端运行subl启动编辑器 - Windows:把
%USERPROFILE%.cargoin加进「系统环境变量」(不是用户变量),加完必须右键任务栏图标 →「退出」,再重开 Sublime - 实在搞不定?在 Build System 里加
"shell": true,让命令走 shell 启动,能继承完整 PATH
working_dir 写成 ${file_path} 就会报 no Cargo.toml file found
cargo run 必须在含 Cargo.toml 的项目根目录下执行,而 Sublime 默认的 ${file_path} 是当前 .rs 文件所在目录(比如 src/),不是项目根。
- Build System 中必须写:
"working_dir": "${project_path:${folder}}" - 打开项目时,用 File → Open Folder 加载整个文件夹(含
Cargo.toml),别双击单个main.rs - 右键标签页 → Reveal in Side Bar,确认左侧边栏显示的是项目根目录层级
- 如果只是临时跑单文件(如
hello.rs),别用cargo run,改用:"shell_cmd": "rustc hello.rs && ./hello"
错误信息不能双击跳转?file_regex 格式错了
没配 file_regex,编译错误就只是纯文本日志,失去可操作性。rustc/cargo 错误典型格式是:src/main.rs:2:5: error[E0308]: mismatched types。
- Build System 中必须加:
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$" - 注意反斜杠要双写(JSON 字符串内),
\s*不能写成s* - 漏掉这行,所有错误都变成静态日志,没法双击直接跳到出错行
- 验证方式:故意写个语法错,触发编译,看输出行是否高亮可点击
右下角显示 Plain Text?Rust 语法根本没生效
Sublime 全靠右下角这个标识匹配 source.rust selector,语法高亮、构建系统、LSP 补全都依赖它。不手动选,就全挂。
- 打开任意
.rs文件,点右下角状态栏(显示Plain Text的地方),手动选Rust - 如果列表里没有
Rust,说明插件没加载:用 Package Control 安装Rust(by rust-lang),不是RustEnhanced;二者共存会导致状态栏卡死 - 装完后进 View → Syntax → Rust → Rust,设为默认,避免每次手动切
- 别信“自动识别”——
.rs文件默认就是Plain Text,不手动选,selector 就不匹配,构建系统根本不会触发
working_dir 指向了子目录、file_regex 少了两个反斜杠——这些细节不显眼,但每一条都会让 Ctrl+B 彻底失语。











