Sublime Text需通过LSP插件+rust-analyzer实现Rust语法检查,核心是确保rust-analyzer二进制已安装、可执行且PATH正确;LSP配置中command须为数组形式,项目必须在含Cargo.toml的目录下打开,调试时优先查看LSP日志。
Sublime Text 本身不内置 Rust 语法检查,必须通过 LSP 插件 + rust-analyzer 语言服务器实现。直接装插件不配置路径或环境,lsp-rust-analyzer 会报 "server crashed" / "command not found" —— 核心问题从来不是插件没装,而是 rust-analyzer 二进制没被找到或没权限运行。
Sublime 的 LSP 插件不会自动下载 rust-analyzer,必须手动安装并确保终端能调用:
rustup component add rust-analyzer(推荐方式,版本与 toolchain 同步)rust-analyzer 二进制,重命名为 rust-analyzer,放入 /usr/local/bin(macOS/Linux)或 %USERPROFILE%\bin(Windows)并加入 PATH
rust-analyzer --version,有输出才说明可用;若提示 Permission denied(Linux/macOS),需 chmod +x 该文件仅装 LSP 插件不够,还需启用 rust-analyzer 作为 Rust 语言服务器:
LSP(不是 “LSP-rust-analyzer” —— 这个是旧/废弃包)Preferences → Package Settings → LSP → Settings,在用户设置中写入:
{
"clients": {
"rust-analyzer": {
"enabled": true,
"command": ["rust-analyzer"],
"selector": "source.rust",
"initializationOptions": {
"cargo": {
"loadOutDirsFromCheck": true
},
"procMacro": {
"enable": true
}
}
}
}
}
注意:"command" 值必须是数组形式;如果 rust-analyzer 不在 PATH 中,这里要写绝对路径,例如 ["/home/you/.cargo/bin/rust-analyzer"]。
rust-analyzer 需要识别 Cargo.toml 才能加载依赖和宏,常见失效场景:
.rs 文件,而非整个 crate 目录(即没在包含 Cargo.toml 的文件夹里右键 → Open Folder)Cargo.toml(此时需在 workspace 子 crate 目录下打开)target 目录被误删或 cargo check 没跑过,rust-analyzer 可能卡在“loading”状态 —— 手动执行一次 cargo check 再重启 Sublime如果保存后无错误提示、跳转无效、hover 不显示类型,先看 LSP 控制台:
Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(macOS),输入 LSP: Toggle Log Panel 打开日志"Failed to start server: command 'rust-analyzer' not found" → 检查 PATH 或 command 路径"server process exited with code 1" → 多半是 rust-analyzer 二进制损坏或架构不匹配(如 M1 Mac 装了 x86 版)"project root not found" → 当前视图未关联到含 Cargo.toml 的目录真正麻烦的永远不是配置步骤,而是 Sublime 启动时继承的 PATH 和 shell 环境不一致 —— 尤其 macOS GUI 应用默认
不读 ~/.zshrc,得靠 launchctl setenv PATH ... 或改用 subl . 从终端启动。