rust-analyzer路径必须写死绝对路径,不能依赖$path;sublime的lsp插件不继承shell的path,尤其macos从dock、windows从快捷方式启动时path极简;右下角须显示rust而非plain text;cargo/rustc须在sublime控制台中真实可调用。

rust-analyzer 路径必须写死绝对路径,不能依赖 $PATH
Sublime 的 LSP 插件不继承 shell 的 $PATH,尤其 macOS 从 Dock 启动、Windows 从快捷方式启动时,os.environ['PATH'] 几乎只剩 /usr/bin:/bin 或 C:WindowsSystem32。写 "command": ["rust-analyzer"] 等于没配。
去 https://github.com/rust-lang/rust-analyzer/releases 下载对应平台的二进制(如 rust-analyzer-x86_64-unknown-linux-gnu),解压后得到无后缀可执行文件:
- Linux/macOS:放进
/usr/local/bin/rust-analyzer,终端运行rust-analyzer --version验证 - Windows:放进
%USERPROFILE%in ust-analyzer.exe(注意必须带.exe后缀)
LSP 设置中必须用绝对路径:
{
"clients": {
"rust-analyzer": {
"command": ["/usr/local/bin/rust-analyzer"],
"scopes": ["source.rust"],
"syntaxes": ["Packages/Rust/Rust.sublime-syntax"],
"languageId": "rust"
}
}
}
右下角必须显示 Rust,不是 Plain Text
Sublime 全靠这个标识匹配 selector 和 scopes。显示 Plain Text 就意味着语法高亮、构建系统、LSP 补全全部跳过——不是插件没装,是编辑器根本没识别当前文件为 Rust。
打开任意 .rs 文件,点击右下角状态栏的 Plain Text → 手动选 Rust;如果列表里没有 Rust,说明官方 Rust 插件(by rust-lang)未加载成功:
- 用 Package Control 安装
Rust(不是RustEnhanced) - 装完后进
View → Syntax → Rust → Rust设为默认 -
RustEnhanced和Rust插件共存会冲突,导致状态栏卡死、高亮错乱
构建系统要用 shell_cmd,别硬套 cmd
cmd 字段绕过 shell,直接调进程,在 Windows 上遇到空格路径(如 C:UsersJohn Doe)或权限问题极易失败;shell_cmd 则复用你终端里的 PATH 和环境,成功率高得多。
推荐构建配置(保存为 Rust.sublime-build):
{
"shell_cmd": "cargo run",
"working_dir": "${project_path:${folder}}",
"file_regex": "^(.+):([0-9]+):([0-9]+):\s*(.*)$",
"selector": "source.rust"
}
-
working_dir必须用${project_path:${folder}},否则在子目录打开src/main.rs时,cargo run会因找不到Cargo.toml报错 -
file_regex漏掉末尾$或多加空格,会导致错误行无法双击跳转 - 改完配置后,Sublime 不自动重载,必须手动选中该构建系统:
Tools → Build System → Rust
rustc/cargo 必须在 Sublime 控制台里真能调用
终端里能跑 cargo --version ≠ Sublime 里能调用。这是所有功能失效的根因,且静默失败——没报错,只是 Ctrl+B 没反应、LSP 不启动、格式化不触发。
按 Ctrl+` 打开 Sublime 控制台,执行:
import os; print(os.environ.get('PATH'))
确认输出中包含 .cargo/bin 路径(如 /Users/xxx/.cargo/bin 或 C:Usersxxx.cargoin):
- Windows:把
%USERPROFILE%.cargoin加进「系统环境变量」,然后彻底退出 Sublime(关窗口不算),再重开 - macOS/Linux:确保
~/.cargo/bin已写入~/.zshrc并source ~/.zshrc;但 GUI 启动的 Sublime 不加载它,更可靠的方式是从终端执行subl启动 - 验证方式:控制台里执行
import subprocess; subprocess.run(['cargo', '--version']),必须有输出
真正卡住人的地方,从来不是插件装得够不够多,而是 cargo 和 rustc 在 Sublime 进程里根本不存在——工具链没暴露给编辑器,所有上层功能都悬在半空。











