必须先验证终端中cargo和rustc可运行,否则Sublime的Rust功能静默失效;Windows需将.cargo\bin加入PATH并重启Sublime,macOS/Linux需用rustup default stable确保工具链激活,且必须安装rust-analyzer二进制并配置绝对路径。

cargo 和 rustc 必须在终端里能直接运行,否则 Sublime 里所有 Rust 功能都会静默失效——不是插件没装好,是编辑器根本调不动工具链。
验证 rustc 和 cargo 是否真可用
这是唯一不可跳过的前置步骤。Sublime 不会报错,只会让你以为“插件坏了”或“功能不全”,其实只是命令根本找不到。
- 打开系统终端(不是 Sublime 控制台),执行
cargo --version和rustc --version,两行都必须输出类似cargo 1.86.0 (x)的版本信息 - Windows 用户:rustup 安装后,
C:\Users\XXX\.cargo\bin必须加进系统 PATH,并重启 Sublime(它不读新环境变量) - macOS/Linux 用户:如果用
rustup install stable却没执行rustup default stable,cargo可能指向空工具链;用rustup show确认 active toolchain 是 installed 状态 - 常见假成功:iTerm 或 PowerShell 里能跑,但 Sublime 里 Ctrl+B 报
cargo not found——因为 Sublime 启动时没加载 shell 配置(如~/.zshrc),PATH 不完整
选 RustEnhanced,别装老版 Rust 插件
Package Control 搜 “Rust” 会出现两个名字接近的插件:Rust(by rust-lang)和 RustEnhanced。前者只提供语法高亮和折叠,2025 年起已基本停止维护;后者是当前唯一持续更新、完整对接 cargo 和 rust-analyzer 的插件。
-
RustEnhanced支持cargo run/test/clippy快捷键(Ctrl+Shift+B/Ctrl+Alt+T/Ctrl+Alt+L) - 装完
RustEnhanced后,务必禁用或卸载老版Rust插件,否则语法高亮会冲突,右下角状态栏可能卡在Plain Text - 如果你只写单文件小脚本、不碰依赖管理或调试,不装插件反而更干净——手动配构建系统就够了
rust-analyzer 不是可选,也不能用 cargo install
没有 rust-analyzer,你就只有语法高亮和构建能力,没有类型提示、悬停查看、Go to Definition、重命名重构——这些不是插件功能缺失,是根本没语言服务器响应。
-
cargo install rust-analyzer已废弃,2026 年起所有平台均不可靠 -
rustup component add rust-analyzer在 macOS 和部分 Linux 发行版上常因权限或架构问题失败 - 正确做法:去 rust-lang/rust-analyzer/releases 下载对应系统的二进制(如
rust-analyzer-x86_64-unknown-linux-gnu),解压后得到单个无后缀可执行文件 - 重命名为
rust-analyzer(Linux/macOS)或rust-analyzer.exe(Windows),放进$HOME/.cargo/bin(macOS/Linux)或C:\Users\XXX\.cargo\bin(Windows) - Sublime 插件设置中必须显式填入该路径,不能只写
rust-analyzer——它不解析$PATH,也不展开~
构建系统要手动选,且语法高亮必须对
改了构建配置不会自动生效,Sublime 不会重载,也不会猜你想要什么。很多“Ctrl+B 没反应”的问题,其实只是构建系统没启用或语法识别错了。
- 构建系统保存为
Rust.sublime-build后,必须手动点菜单Tools → Build System → Rust勾选它 - 打开
.rs文件后,右下角状态栏必须显示Rust,不是Plain Text;若显示错误,点击它手动切换,再进View → Syntax → Rust → Rust设为默认 - 推荐最小可用构建配置(支持单文件快速测试):
{ "cmd": ["cargo", "run", "--bin", "$file_base_name"], "working_dir": "$file_path", "selector": "source.rust" }注意:$file_base_name要求文件有fn main() { },且不能是 lib crate - 如果报错
error: no bin target,换用裸rustc:{ "cmd": ["rustc", "$file", "-o", "$file_path/$file_base_name"], "working_dir": "$file_path", "selector": "source.rust" }
rustfmt 路径必须写绝对路径,~ 不展开;rust-analyzer 的二进制必须可执行且路径明确;构建系统改完不手动选,就等于没配——这些不是细节,是 Sublime 处理 Rust 的底层逻辑。

















