Sublime Text 配置 Rust 开发环境需确保四点:PATH 包含 .cargo/bin、右下角语法设为 Rust、构建系统配对 shell_cmd/working_dir/file_regex、rust-analyzer/rustfmt 用绝对路径;任一缺失均导致 Ctrl+B 失败或功能失效。

Sublime Text 本身不编译 Rust,所谓“完整环境”就是让 cargo 和 rustc 在 Sublime 内部能被调用、文件被识别为 Rust、错误能跳转、构建命令能跑通——缺一环,Ctrl+B 就静默失败或报 “No build system”。
验证 cargo 和 rustc 在 Sublime 控制台里真可用
终端里能跑不等于 Sublime 里能跑。Sublime 启动时读的是自己的环境变量,和 shell 配置无关。
- 按
Ctrl+`打开 Sublime 控制台,输入import os; print(os.environ.get('PATH')),确认输出中包含.cargo/bin路径(如/Users/xxx/.cargo/bin或C:\Users\xxx\.cargo\bin) - Windows 用户:必须把
%USERPROFILE%\.cargo\bin加进「系统环境变量」,加完彻底退出 Sublime(不是关窗口),再重开 - macOS/Linux 用户:如果用 zsh/fish,确保
~/.cargo/bin已写入~/.zshrc或对应配置,并执行source ~/.zshrc;但 GUI 启动的 Sublime 不加载它,推荐从终端用subl启动 - 常见假成功:iTerm 里
cargo --version有输出,但 Sublime 控制台里import subprocess; subprocess.run(['cargo', '--version'])报FileNotFoundError—— 就是 PATH 没继承到
右下角必须显示 Rust,不是 Plain Text
Sublime 全靠这个标识匹配 selector(比如 source.rust),语法高亮、构建系统、LSP 补全都依赖它。选错就全挂。
- 打开任意
.rs文件,点右下角状态栏(显示Plain Text的地方),手动选Rust - 如果列表里没有
Rust,说明插件没加载:用 Package Control 安装Rust(by rust-lang),**不是**RustEnhanced;二者共存会冲突,导致状态栏卡死在Plain Text - 装完后进
View → Syntax → Rust → Rust,设为默认,避免每次手动切 - 别信“自动识别”——Sublime 不会猜,
.rs文件默认就是Plain Text,不手动选,selector就不匹配,构建系统根本不会触发
构建系统必须配对 shell_cmd、working_dir 和 file_regex
网上抄的 JSON 常漏关键字段,导致 cargo 找不到 Cargo.toml,或错误信息无法双击跳转。
- 推荐用
"shell_cmd": "cargo run",不是"cmd":前者走系统 shell,能复用 PATH 和别名;后者直调进程,Windows 上空格路径大概率崩 -
"working_dir": "${project_path:${folder}}"必须写:否则 cargo 在当前文件目录执行,找不到项目根下的Cargo.toml,直接报no Cargo.toml found -
"file_regex": "^(.*?):([0-9]+):([0-9]+):.*$"必须加:否则错误行只是纯文本,双击无法跳转;注意末尾必须有$,多一个空格或少一个$都会导致正则失效 - 单文件快速测试?改用
"shell_cmd": "rustc $file -o $file_path/$file_base_name",但只适用于含fn main() { }的独立文件;cargo run依赖Cargo.toml,没项目结构就别硬套
rust-analyzer 和 rustfmt 要用绝对路径,不能写 ~ 或依赖 $PATH
Sublime 不展开波浪号,也不读 shell 的 $PATH。路径写错,补全、格式化就静默失效,控制台都不报错,只能靠 Ctrl+` 看到 command not found 才知道出问题。
-
rustfmt:Rust 1.75+ 不再默认附带,必须手动cargo install rustfmt;然后用which rustfmt(macOS/Linux)或where rustfmt(Windows)查真实路径;在 RustEnhanced 设置里填绝对路径,例如"rustfmt_path": "/Users/xxx/.cargo/bin/rustfmt" -
rust-analyzer:不能cargo install rust-analyzer(该命令已废弃),必须去 GitHub releases 下载二进制,放进.cargo/bin,并在 LSP 设置里用绝对路径指定"command": ["/Users/xxx/.cargo/bin/rust-analyzer"] - 别写
~/.cargo/bin/rustfmt:Sublime 不解析~,写了等于没写 - rust-analyzer 只在 Cargo 项目根目录下稳定工作:LSP 客户端靠
Cargo.toml启动分析器,打开单个.rs文件时,它可能连不上
最常被忽略的其实是工作目录和语法识别——working_dir 错了 cargo 就找不到项目,Plain Text 选错了整个构建链就断掉。这两处一错,其他所有配置都白搭,还查不出明显报错。


















