Rust Analyzer 是主流 Rust 语言服务器,需通过 LSP 插件在 Sublime Text 中配置;先用 rustup 安装并验证命令可用,再在 LSP 设置中指定 command 和 initializationOptions(含 loadOutDirsFromCheck 和 procMacro.enable),且必须以 Cargo 项目根目录为工作区,开启日志可定位 spawn ENOENT 等连接问题。

安装 Rust Analyzer 作为 LSP 服务器
Rust Analyzer 是目前最主流的 Rust 语言服务器,Sublime Text 本身不内置支持,必须通过第三方插件桥接。关键不是装个“Rust 插件”,而是让 Sublime 能调用 rust-analyzer 可执行文件并正确通信。
- 先确保已安装
rust-analyzer:推荐用rustup component add rust-analyzer(需 Rust 1.70+),它会把二进制放到~/.rustup/toolchains/xxx/bin/rust-analyzer(Linux/macOS)或%USERPROFILE%\.rustup\toolchains\xxx\bin\rust-analyzer.exe(Windows) - 不要手动下载 release zip 并解压到任意路径——容易因路径含空格、中文或权限问题导致 Sublime 启动失败
- 运行
rust-analyzer --version验证命令可用;若报 “command not found”,需将对应bin目录加入系统PATH,或在 Sublime 的 LSP 设置中显式指定完整路径
配置 LSP 插件指向 rust-analyzer
Sublime 需要 LSP 插件(由 Sublimelsp 团队维护)作为 LSP 客户端,它不自带任何语言支持,一切靠 clients 配置驱动。
- 安装
LSP插件后,在Preferences → Package Settings → LSP → Settings中编辑用户配置 - 添加
rust-analyzer客户端定义,核心是command和initializationOptions;漏掉后者会导致无法识别Cargo.toml或跳转失败 - 务必设置
"settings": { "rust-analyzer.cargo.loadOutDirsFromCheck": true },否则cargo check的输出目录不会被索引,补全和诊断会延迟甚至缺失
{
"clients": {
"rust-analyzer": {
"command": ["rust-analyzer"],
"enabled": true,
"initializationOptions": {
"cargo": {
"loadOutDirsFromCheck": true
},
"procMacro": {
"enable": true
}
},
"languages": [
{
"languageId": "rust",
"scopes": ["source.rust"],
"syntaxes": ["Packages/Rust/Rust.sublime-syntax"]
}
]
}
}
}
解决常见错误:no workspace folder、unresolved import
即使 rust-analyzer 进程启动成功,也常出现 “No workspace folder” 提示或符号无法解析——这不是 Sublime 的错,而是项目结构或 LSP 初始化时机问题。
- 打开 Sublime 时,**必须以 Cargo 项目根目录为工作区**(即包含
Cargo.toml的文件夹),不能只打开单个.rs文件;否则rust-analyzer不知道从哪读取依赖和配置 - 首次打开项目后,等待右下角状态栏出现
LSP: rust-analyzer (ready),再进行跳转或补全;冷启动可能耗时 5–20 秒(取决于依赖规模) - 如果仍提示
unresolved import,检查Cargo.toml是否有语法错误,或运行cargo metadata --format-version=1 >/dev/null确认元数据可正常解析 - 禁用其他 Rust 相关插件(如
RustEnhanced),它们会冲突并劫持语法高亮或构建命令
调试与日志:定位连接失败的真实原因
当 rust-analyzer 显示 disconnected 或无响应,LSP 默认不暴露底层错误。需要主动开启日志才能看到真实问题。
- 在 LSP 用户设置中添加
"log_debug": true和"log_server": true - 重启 Sublime,打开
View → Show Console,搜索[lsp] rust-analyzer或stderr关键字 - 典型日志线索:
spawn ENOENT表示找不到rust-analyzer二进制;connection closed后跟 panic 日志,说明rust-analyzer自身崩溃(常见于旧版或不兼容的 toolchain) - 临时绕过验证:在
initializationOptions中加"checkOnSave.command": "check",强制启用保存时检查,能更快暴露编译错误而非静默失败
rust-analyzer --version 是否通、Sublime 是否打开的是项目根目录、控制台日志里有没有 spawn 或 stderr 报错。










