Rustlings 练习时如何配置 VS Code 与 rust-analyzer 编辑环境?
【免费下载链接】rustlings:crab: Small exercises to get you used to reading and writing Rust code!项目地址: https://gitcode.com/gh_mirrors/ru/rustlings
本文解决一个具体问题:安装好 Rustlings 后,如何把 VS Code 与 rust-analyzer 配置成能直接用于练习的编辑环境。官方推荐的工作组合是VS Code + rust-analyzer 插件,并且任何支持 rust-analyzer 的编辑器都可以完成练习(见 安装文档)。配置完成后的目标效果是:用 VS Code 打开rustlings/目录即可获得 Rust 语言支持,clippy 检查覆盖所有练习文件,且在 VS Code 集成终端里运行rustlings时,当前练习文件会自动在编辑器中打开。
前提条件:已安装最新版 Rust(同时会安装 Cargo),并且已用cargo install rustlings装好了 Rustlings 命令。6.5.0 版本起,Rustlings 要求最低 Rust 版本为1.88(见 CHANGELOG)。
安装准备
按 安装文档 的要求准备工具链:
- 安装最新版 Rust;安装 Rustlings 前先用
rustup update确认版本是最新的。 - Linux需要
gcc作为链接器:Debian 用sudo apt install gcc,Fedora 用sudo dnf install gcc。 - macOS需要 Xcode 及其开发者工具:
xcode-select --install。
cargo install rustlings如果安装失败,文档给出的处理顺序是:先运行rustup update更新 Rust,再尝试加--locked标志:
cargo install rustlings --locked另外注意:rustlings init会检查 Clippy 是否可用(内部执行cargo clippy --version),缺失时会直接报错并中止初始化,所以初始化前应确保工具链里带有 clippy 组件。
初始化:生成 rust-analyzer 与 VS Code 配置
在一个空白目录下运行初始化命令。它会在当前目录创建rustlings/目录,其中包含练习文件exercises/、答案目录solutions/,以及下面两个与编辑环境直接相关的文件(生成逻辑见 src/init.rs):
rust-analyzer.toml,内容固定为(src/init.rs):
check.command = "clippy" check.extraArgs = ["--profile", "test"] cargo.targetDir = true这是 rust-analyzer 的配置文件,让语言服务器用 clippy 作为检查命令,并以--profile test运行检查——也就是说 clippy 的 lint 会在所有练习文件上显示,而不仅是 clippy 专题练习(见 CHANGELOG 6.0.0 的说明)。
.vscode/extensions.json,内容固定为(src/init.rs):
{"recommendations":["rust-lang.rust-analyzer"]}VS Code 打开该目录时会依据这个文件提示你安装 rust-analyzer 扩展。
初始化成功后终端输出Initialization done ✓,并提示cd rustlings进入目录、运行rustlings开始。
关于语言服务器的历史说明:旧版本需要手动执行rustlings lsp生成rust-project.json才能启用 rust-analyzer;6.0.0 起 Rustlings 直接基于生成的Cargo.toml工作,不需要执行任何额外命令来激活 rust-analyzer(见 CHANGELOG 6.0.0 “LSP support out of the box”)。所以配置过程中不要去寻找rustlings lsp这一步,当前版本已经不再需要它。
在 VS Code 中打开并完成安装
- 用 VS Code 打开初始化生成的
rustlings/目录(注意是rustlings/子目录,不是仓库本身)。 - VS Code 检测到
.vscode/extensions.json后,会弹出“该工作区推荐安装扩展”的提示,点击安装其中的rust-lang.rust-analyzer。也可以手动从扩展市场安装同一个扩展。 - 在 Windows 上建议配合 Windows Terminal 使用;Linux 和 macOS 的默认终端即可(终端建议同样来自 安装文档)。
终端里建议直接留在 VS Code 的集成终端中工作:从 CHANGELOG 的 Unreleased 条目可知,当rustlings运行在 VS Code 终端内时,它会自动打开当前练习文件,无需手动定位。两个相关参数(定义见 src/cli.rs):
--no-editor:禁用“自动打开当前文件”的行为;--edit-cmd:指定用哪个外部命令打开练习文件,但该参数在 VS Code 内会被忽略(VS Code 终端有自己的文件链接处理)。
开始练习并验证环境
进入目录启动 watch 模式:
cd rustlings/ rustlings按 使用文档 验证环境是否可用:
- watch 模式会按预定义顺序带你做练习,每次你在编辑器中改动
exercises/下的练习文件,它就会自动重新运行当前练习,终端给出编译或测试结果; - 练习文件里用
TODO/todo!()标记需要修改的位置,输入h可看提示; - 打开一个练习文件(如
exercises/00_intro/intro1.rs),rust-analyzer 已接管语言支持,clippy lint 随编辑显示,配合 watch 模式的自动重跑,编译错误能立刻反馈。
如果 watch 模式检测不到文件变化(常见于容器、WSL 等环境),加--manual-run标志启动,之后在 watch 模式里输入r手动重跑当前练习:
rustlings --manual-run离线练习时,可以用rustup doc --book或rustup doc --std打开本地的 Rust 书或标准库文档(见 安装文档)。
常见问题
rustlings命令找不到:常见于通过包管理器安装 Rust 的 Linux 环境——包管理器没有把~/.cargo/bin加入PATH。手动把该目录加入PATH,或改用 rustup 官方安装方式重装 Rust。
初始化报 Clippy 缺失:提示原文为 “Clippy, the official Rust linter, is missing. Please install it first before initializing Rustlings.”,先给工具链补上 clippy 组件再重新rustlings init。
提示目录已存在或已初始化:若当前目录下已有rustlings/,说明你很可能已经初始化过,直接cd rustlings后运行rustlings;若是在已初始化的目录里重复执行 init,按其提示换一个目录执行。
小结
这条配置路径的落点是三个可核对的结果:rustlings/rust-analyzer.toml与rustlings/.vscode/extensions.json已由rustlings init生成、VS Code 中 rust-analyzer 扩展已安装并在练习文件上工作、watch 模式能自动重跑你在编辑器里修改的练习。环境限制主要有两点:Rust 版本不低于1.88,且工具链必须包含 clippy;除此之外 rust-analyzer 不需要任何手动激活步骤。
【免费下载链接】rustlings:crab: Small exercises to get you used to reading and writing Rust code!项目地址: https://gitcode.com/gh_mirrors/ru/rustlings
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考