rust-analyzer二进制必须手动下载,因2026年起cargo install仅生成stub导致lsp启动失败;需从github releases下载对应平台二进制,放固定路径并用绝对路径配置lsp的"command",同时启用procmacro、设languageid为"rust"、语法设为rust。

rust-analyzer 二进制必须手动下载,cargo install 已失效
2026 年起 cargo install rust-analyzer 不再生成真实可执行文件,只放一个 stub,LSP 启动时直接报 spawn ENOENT 或静默无响应。你看到终端里能跑 rust-analyzer --version,不代表 Sublime 能调用它。
- 去 rust-lang/rust-analyzer/releases 下载对应平台的压缩包(如
rust-analyzer-x86_64-unknown-linux-gnu.gz或rust-analyzer-aarch64-apple-darwin) - 解压后得到单个文件:Linux/macOS 无后缀(如
/usr/local/bin/rust-analyzer),Windows 带.exe(如C:/tools/rust-analyzer.exe) - 路径中含空格(如
C:\Users\John Doe\)会导致启动失败,建议移到%USERPROFILE%\bin\rust-analyzer.exe或/usr/local/bin/rust-analyzer - 验证方式:在终端直接运行该绝对路径,应输出版本号;Linux/macOS 若报
Permission denied,需chmod +x
LSP 设置里 "command" 必须写死绝对路径,~ 和相对路径都不展开
Sublime 不继承 shell 的 PATH,尤其 macOS 从 Dock 启动时 PATH 几乎只剩 /usr/bin:/bin。写 "command": ["rust-analyzer"] 或 "command": ["~/bin/rust-analyzer"] 全部无效。
- 打开 Preferences → Package Settings → LSP → Settings
- 在用户配置中写入完整路径:
Linux/macOS 示例:"command": ["/usr/local/bin/rust-analyzer"]
Windows 示例(反斜杠需双写或改用正斜杠):"command": ["C:/tools/rust-analyzer.exe"] - 常见现象:状态栏图标灰色、无日志、补全列表永远为空——基本就是这条路径错了
initializationOptions 缺一不可,否则 Cargo 项目结构识别失败
只配 command 和 scopes,rust-analyzer 能连上但几乎不工作:use 标红、goto definition 失败、补全无内容——因为没传初始化参数。
- 必须包含以下三项(大小写敏感):
"procMacro.enable": true(否则#[derive(Debug)]、serde宏展开代码无法跳转)"languageId": "rust"(写成"Rust"或"rust-lang"都断连)"syntaxes": ["Packages/Rust/Rust.sublime-syntax"](旧路径如Packages/RustEnhanced/不匹配) - 输出的
target目录默认不被索引,符号解析延迟或缺失,加了这些才真正激活 Cargo workspace 解析
右下角必须显示 Rust,不是 Plain Text
Sublime 全靠这个标识匹配 source.rust selector,语法高亮、构建系统、LSP 补全都依赖它。选错就全挂。
- 打开任意
.rs文件,点击右下角状态栏的Plain Text→ 手动选Rust - 如果列表里没有
Rust,说明插件没加载:用 Package Control 安装官方Rust(by rust-lang),不是RustEnhanced;二者共存会冲突,导致状态栏卡死 - 装完后进 View → Syntax → Rust → Rust,设为默认,避免每次手动切
"procMacro.enable": true,或者右下角仍显示 Plain Text —— 这两个点一错,补全就只剩基础变量名,宏、trait、impl 里的符号全丢。











