news 2026/9/9 22:22:31

Rustlings 练习时如何配置 VS Code 与 rust-analyzer 编辑环境?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Rustlings 练习时如何配置 VS Code 与 rust-analyzer 编辑环境?

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):

  1. 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 的说明)。

  1. .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 中打开并完成安装

  1. 用 VS Code 打开初始化生成的rustlings/目录(注意是rustlings/子目录,不是仓库本身)。
  2. VS Code 检测到.vscode/extensions.json后,会弹出“该工作区推荐安装扩展”的提示,点击安装其中的rust-lang.rust-analyzer。也可以手动从扩展市场安装同一个扩展。
  3. 在 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 --bookrustup 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.tomlrustlings/.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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 22:22:09

碎片成果输出:把临时脚本变成可复用工具的整理方法

你有没有过这种状态:电脑某个文件夹里躺着一堆奇奇怪怪的小脚本、半成品方案、临时梳理的思路稿,既舍不得删,又从来没回头看过第二次。我就是在这种“囤积”状态下过了很久,直到某天需要找一个三个月前写过的批量处理逻辑&#xf…

作者头像 李华
网站建设 2026/9/9 22:19:43

MySQL 8.0压缩版Windows安装实战:从下载到配置全流程

1. 先从"为什么选压缩版"说起 如果你在搜索引擎里敲过"MySQL安装",八成会看到一堆安装包版教程,下一步下一步下一步就完事了。但我个人一直推荐动手能力强的朋友直接上压缩版,也就是ZIP Archive版本。原因并不复杂&#…

作者头像 李华
网站建设 2026/9/9 22:17:58

如何把 CodeGraph 作为 TypeScript 库嵌入 Node.js/Electron 应用?

如何把 CodeGraph 作为 TypeScript 库嵌入 Node.js/Electron 应用? 【免费下载链接】codegraph Pre-indexed code knowledge graph, auto syncs on code changes, for Claude Code, Codex, Gemini, Cursor, OpenCode, AntiGravity, Kiro, CoPilot, and Hermes Agent…

作者头像 李华
网站建设 2026/9/9 22:16:34

IDA*算法求解15-puzzle的优化实践:从曼哈顿距离到线性冲突

简介:面向人工智能学习者与算法竞赛爱好者的IDA 算法求解15-puzzle问题完整Python实现。项目不仅实现了经典的迭代加深A 搜索,还针对启发式函数、节点扩展、剪枝策略等环节做了多处优化,并对15-puzzle的状态表示、移动生成与查重逻辑进行了…

作者头像 李华
网站建设 2026/9/9 22:16:26

Langflow 怎么在不丢数据库和 Flow 的情况下升级 Docker 镜像?

Langflow 怎么在不丢数据库和 Flow 的情况下升级 Docker 镜像? 【免费下载链接】langflow Langflow is a powerful tool for building and deploying AI-powered agents and workflows. 项目地址: https://gitcode.com/GitHub_Trending/la/langflow 如果你的…

作者头像 李华
网站建设 2026/9/9 22:15:00

grblHAL:从8位到32位,运动控制固件的架构升级与实战解析

简介:面向嵌入式开发者和CNC爱好者的grblHAL源码包,是以grbl 1.1f为基础进行硬件抽象层改造的固件项目。它可运行于ESP32、STM32、Teensy 4、MSP432等常见三十二位处理器,解决了传统并行端口控制方案在新型单片机上移植与扩展困难的痛点。压缩…

作者头像 李华