sublime的rust智能感知和重构必须依赖手动下载的rust-analyzer二进制,不能用cargo install(自rust 1.75+已废弃),需在lsp设置中写死绝对路径并打开含cargo.toml的项目根目录触发workspace初始化。

Sublime 的 Rust 智能感知(hover、goto definition、rename)和代码重构(如重命名符号)必须依赖 rust-analyzer 作为语言服务器,且它**不能通过 cargo install rust-analyzer 安装**——该命令自 Rust 1.75+ 起已废弃,生成的是无效 stub,LSP 插件调用时静默失败或报 spawn ENOENT。
rust-analyzer 二进制必须手动下载并写死绝对路径
LSP 插件(如 Sublime 的 LSP 包)不继承 shell 的 PATH,哪怕你在终端里 which rust-analyzer 能输出,Sublime 启动时也找不到它。
- 去
https://github.com/rust-lang/rust-analyzer/releases下载对应平台的压缩包(如rust-analyzer-x86_64-unknown-linux-gnu.gz) - 解压后得到单个无后缀可执行文件(Linux/macOS)或带
.exe后缀的文件(Windows) - 把它放到固定路径,例如:
/home/username/.cargo/bin/rust-analyzer(Linux/macOS)或C:/Users/username/.cargo/bin/rust-analyzer.exe(Windows) - 在终端运行
rust-analyzer --version验证可执行;若失败,说明路径或权限问题,但没关系——LSP 配置里只认绝对路径 - 打开
Preferences → Package Settings → LSP → Settings,在用户配置中写明完整路径:
{
"clients": {
"rust-analyzer": {
"command": ["/home/username/.cargo/bin/rust-analyzer"],
"enabled": true,
"initializationOptions": {
"cargo": { "loadOutDirsFromCheck": true },
"procMacro": { "enable": true }
},
"languages": [{
"languageId": "rust",
"scopes": ["source.rust"],
"syntaxes": ["Packages/Rust/Rust.sublime-syntax"]
}]
}
}
}
Windows 用户注意反斜杠要双写或统一用正斜杠;initializationOptions 中两项缺一不可,否则宏展开(如 serde)不补全、target/ 下依赖无法加载。
重命名(Rename symbol)没反应?检查 workspace 和光标位置
右键菜单里没有 Rename symbol,或按 Ctrl+Shift+P → LSP: Rename 无响应,大概率不是插件没装,而是语义分析未就绪。
- 必须用
File → Open Folder...打开含Cargo.toml的项目根目录,LSP 才会初始化 workspace;只打开单个.rs文件不会触发 - 光标必须落在变量/函数/结构体名“内部”,不能停在点号后、括号里、字符串中、空格或注释行
- 按
Ctrl+Shift+P → LSP: Show log,确认日志里有connected to rust-analyzer;若只有starting rust-analyzer...卡住,就是command路径错或二进制损坏 - 别指望它改字符串里的同名文本——这是语义重命名,只作用于 AST 中声明/引用的符号
构建系统与 rustfmt 路径也要写绝对路径
Sublime 不解析 ~,也不读 shell 配置,所有外部命令路径都必须写死。
- 在
Preferences → Package Settings → RustEnhanced → Settings中,rustfmt_path必须是绝对路径,例如:"/home/username/.cargo/bin/rustfmt"(Linux/macOS)或"C:/Users/username/.cargo/bin/rustfmt.exe"(Windows) - 构建系统(
.sublime-build)里也一样:"shell_cmd": "cargo build"在 Windows 或 PATH 未继承时大概率失败;稳妥写法是"shell_cmd": "/home/username/.cargo/bin/cargo build"或"shell_cmd": "bash -c 'cargo build'" - 保存自动格式化失效?打开控制台(
Ctrl+`),看是否报rustfmt: command not found;有则说明rustfmt_path错了,或rustfmt本身没装(Rust 1.75+ 后需手动cargo install rustfmt)
最常被忽略的一点:所有路径(rust-analyzer、cargo、rustfmt)都必须指向真实可执行文件,且 Sublime 启动前这些文件就得存在——改完配置不重启 Sublime,或下载完二进制不验证 --version,90% 的“没反应”问题都出在这儿。











