装完rustup后需手动安装rust-analyzer插件并确保工具链在PATH中,否则语法高亮、跳转等功能失效;禁用旧Rust插件,配置项目级.vscode/settings.json启用宏展开和增量检查;避免删除target/目录,出错时执行Reload Workspace重建索引。

装完 rustup 后,VS Code 本身不自带 Rust 支持,必须手动装插件并确认工具链就绪,否则连基础语法高亮和跳转都会失效。
安装 rust-analyzer 而不是 Rust(rls)插件
rust-analyzer 是当前唯一稳定、响应快、支持最新 Rust 特性的语言服务器;rls 已归档,VS Code 商店里若看到“Rust”官方插件(图标是红黑熊),它默认仍走已废弃的 RLS 协议,实际无法工作。
- 在 VS Code 扩展市场搜
rust-analyzer,认准作者是rust-lang - 禁用或卸载名为
Rust(by rust-lang)的旧插件,避免冲突 - 安装后重启 VS Code,底部状态栏应出现
rust-analyzer加载进度,完成后显示Ready
确保 rustup 和 cargo 工具链在 PATH 中可用
即使 rustup 装好了,VS Code 的集成终端可能无法识别 cargo 或 rustc,导致插件报错 Failed to run cargo metadata 或无法加载项目。
- 在系统终端运行
which cargo(macOS/Linux)或where cargo(Windows),确认路径存在 - 如果 VS Code 是从桌面图标启动的,macOS 上需用
code --new-window从终端打开,否则 shell 环境变量(如$HOME/.cargo/bin)不会被继承 - Windows 用户若用 Scoop 安装
rustup,检查%USERPROFILE%\scoop\shims是否在系统 PATH 中
配置 workspace-level rust-analyzer 设置(非全局)
多人协作或跨项目时,不同 crate 可能依赖不同 edition 或 feature,全局设置会互相干扰;rust-analyzer 推荐用 .vscode/settings.json 按项目定制。
- 在项目根目录创建
.vscode/settings.json,写入:
{
"rust-analyzer.cargo.loadOutDirsFromCheck": true,
"rust-analyzer.procMacro.enable": true,
"rust-analyzer.checkOnSave.command": "check"
}
其中 "rust-analyzer.cargo.loadOutDirsFromCheck" 能让插件正确识别 build.rs 输出的路径;"rust-analyzer.procMacro.enable" 开启宏展开支持(比如 serde、sqlx 的 derive 宏);"check" 比默认 clippy 更轻量,适合中小型项目。
遇到 “unresolved import” 却代码能编译通过?检查 target 目录是否被误删
cargo check 成功但 rust-analyzer 报大量未解析符号,常见原因是手动清空了 target/,而插件依赖该目录下的 rustc 产物生成语义索引。
- 不要用
rm -rf target/彻底删除(尤其在开发中频繁触发) - 改用
cargo clean --release清理特定 profile,或仅删target/debug/deps缓存 - 删完后,在 VS Code 中按
Ctrl+Shift+P(Win/macOS)或Cmd+Shift+P(macOS),输入Rust Analyzer: Reload Workspace强制重建索引
真正卡住的点往往不在插件安装,而在 cargo 工具链和 VS Code 进程之间的环境变量传递,以及 target/ 目录状态与插件缓存的一致性。这两个地方出问题,所有功能都会退化成纯文本编辑器。


















