必须手动下载 rust-analyzer 二进制文件,因 cargo install 已失效;需从 github releases 下载对应平台可执行文件,设为绝对路径并配置 initializationoptions 才能正常工作。

rust-analyzer 二进制必须手动下载,cargo install rust-analyzer 已失效
2026 年起,cargo install rust-analyzer 不再生成真实可执行文件,只放一个 stub,LSP 启动时直接报 spawn ENOENT 或静默无响应。这不是你装错了,是官方已弃用该方式。
必须去 rust-lang/rust-analyzer/releases 下载对应平台的压缩包:
- Linux/macOS:选
rust-analyzer-x86_64-unknown-linux-gnu或rust-analyzer-aarch64-apple-darwin,解压后得到无后缀可执行文件(如/usr/local/bin/rust-analyzer) - Windows:选
rust-analyzer-x86_64-pc-windows-msvc.exe,解压后保留.exe后缀(如C:/tools/rust-analyzer.exe) - 路径中含空格(如
C:\Users\John Doe\)会导致 LSP 启动失败——建议挪到%USERPROFILE%\bin\rust-analyzer.exe或/usr/local/bin/rust-analyzer
终端里能跑 rust-analyzer --version ≠ Sublime 能调用它。验证方式:在 Sublime 控制台(Ctrl+`)运行 import subprocess; subprocess.run(["/path/to/rust-analyzer", "--version"]),看是否输出版本号。
LSP 设置必须写死绝对路径,~ 和 PATH 都不生效
Sublime 不继承 shell 的 PATH,尤其 macOS 从 Dock 启动时,os.environ.get('PATH') 常只有 /usr/bin:/bin。写 "command": ["rust-analyzer"] 等于没配。
打开 Preferences → Package Settings → LSP → Settings,在用户配置中填绝对路径:
- Linux/macOS:
"command": ["/usr/local/bin/rust-analyzer"](不能用~/或$HOME) - Windows:
"command": ["C:/tools/rust-analyzer.exe"](反斜杠需双写或改用正斜杠) - 路径错误最典型现象:状态栏 LSP 图标灰色、无日志、补全列表永远为空——不是插件问题,是根本没启动 server
如果报 Permission denied(Linux/macOS),执行 chmod +x /path/to/rust-analyzer。
initializationOptions 缺一不可,否则 Cargo 项目结构识别失败
只配 command 和 scopes,rust-analyzer 能连上但几乎不工作:use 标红、goto definition 失败、补全无内容——因为没传初始化参数。
必须在 LSP 用户设置中显式添加 initializationOptions:
-
"procMacro.enable": true:否则#[derive(Debug)]、serde等宏展开代码无法跳转或补全 -
"languageId": "rust":大小写敏感,写成"Rust"或"rust-lang"都会断连 -
"syntaxes": ["Packages/Rust/Rust.sublime-syntax"]:旧路径如Packages/RustEnhanced/不匹配,LSP 不触发
右下角状态栏必须显示 Rust(不是 Plain Text),否则 syntaxes 匹配失败,整个 LSP 配置被忽略。
Sublime 控制台必须能调用 cargo 和 rustc,否则诊断静默失效
现代 Rust 编译诊断(如实时 cargo check 错误)依赖 LSP 调用本地工具链。终端里 cargo --version 正常 ≠ Sublime 里可用。
在 Sublime 控制台运行:import os; print(os.environ.get('PATH')),确认输出含:
- macOS/Linux:
~/.cargo/bin(且已写入~/.zshrc并source过) - Windows:
%USERPROFILE%\.cargo\bin(必须加进「系统环境变量」,不是用户变量)
若 PATH 不对,重启 Sublime 前务必彻底退出进程(任务管理器杀干净),否则旧环境变量仍残留。Cargo.toml 存在但 cargo run 报 No such file or directory,基本就是这个原因。











