sublime text中rust补全必须依赖lsp插件与rust-analyzer配合,原生不支持语法解析、cargo.toml读取或crate索引;需验证rust-analyzer在path中、lsp全局启用rust-analyzer、右下角语法设为rust、lsp配置中command/scopes/syntaxes字段准确、并添加auto_complete_triggers触发点号和双冒号。

Sublime Text 里 Rust 补全根本不会自动弹出,除非你装了 LSP 并配对 rust-analyzer
原生 Sublime 不解析 Rust 语法、不读 Cargo.toml、不索引 std 或依赖 crate,所以敲 Vec:: 或 std::fs:: 时什么都不会提示。所谓“自动补全”,必须靠 LSP 插件桥接本地 rust-analyzer 进程——这是当前唯一稳定路径。别试 RustEnhanced 或 SublimeCodeIntel,前者已停止维护,后者对 Rust 完全无支持。
装 LSP + rust-analyzer 的三步验证法
装完插件不等于能用,必须逐项验证:
-
rust-analyzer必须在系统 PATH 中:终端运行rust-analyzer --version有输出;Windows 用户需确认%USERPROFILE%.cargoin已加入「系统环境变量」,且 Sublime 是**重启后**打开的 -
LSP插件要启用 rust-analyzer:菜单 →Ctrl+Shift+P→ 输入LSP: Enable Language Server Globally→ 选rust-analyzer;状态栏左下角应显示LSP-rust-analyzer active - 右下角语法必须是
Rust:打开任意.rs文件,点状态栏右侧,手动选Rust(不是Plain Text);若列表无此选项,说明Rust插件未加载,用 Package Control 安装Rust(by rust-lang),**卸载 RustEnhanced**(二者冲突)
LSP.sublime-settings 里 rust-analyzer 配置不能漏字段
菜单 → Preferences → Package Settings → LSP → Settings,在右侧用户设置中填入客户端配置。错一个字段,LSP 就静默失效:
-
"command"必须是绝对路径或可执行名:["rust-analyzer"](PATH 可达)或["/home/xxx/.cargo/bin/rust-analyzer"](Linux/macOS)、["C:\Users\xxx\.cargo\bin\rust-analyzer.exe"](Windows) -
"languageId"必须是"rust",不是"Rust"或"rustlang" -
"scopes"必须是["source.rust"](注意小写,和右下角语法名一致) -
"syntaxes"必须指向 Sublime 自带语法定义:"Packages/Rust/Rust.sublime-syntax"(路径拼错就无法激活)
补全仍不触发?检查 auto_complete_triggers 和 Tab 行为
即使 LSP 连上了,. 或 :: 后也不会自动弹窗——因为 Sublime 默认只监听字母数字输入。必须手动告诉它:
- 在
Preferences → Settings (用户)中加这行:"auto_complete_triggers": [{"selector": "source.rust", "characters": ".:"}] - 确保
"auto_complete_commit_on_tab": true已启用,否则按Tab只插入制表符,不选中补全项 - 如果用了
AutoFileName或All Autocomplete,它们会劫持Tab,临时禁用测试是否冲突 - 某些中文输入法(如搜狗)会拦截
Tab,切英文输入法再试
最易忽略的一点:rust-analyzer 启动需要时间,首次打开 .rs 文件后,等 2–5 秒,看到状态栏出现 LSP-rust-analyzer active 再开始敲代码,否则补全请求直接被丢弃。











