hecto:用 Rust 构建你自己的文本编辑器
欢迎!这是一系列教你如何用 Rust 构建文本编辑器的博客文章。
这是对 antirez 的 kilo 编辑器用 Rust 进行的重实现,同时也融合了 Paige Ruten 用 C 语言实现相同功能的教程。整个项目包含约 3000 行 Rust 代码,分散在几个文件中,依赖项很少。它实现了你对一个极简编辑器的所有基础功能期待,包括语法高亮和搜索功能。
这些文章将引导你通过多个小步骤来构建编辑器并学习 Rust。在最初的步骤中,你只需添加、修改或删除几行代码。大多数情况下,你都能立即编译并运行程序来观察所做的更改。当你对 Rust 有了扎实的理解后,会获得下一步要解决的问题描述,并有机会在对照我的解决方案之前先自行尝试解决。
我来自工程领域的不同方向,编写本教程是为了更深入地理解 Rust。如果你处于类似情况,本教程正适合你。如果你已掌握 Rust 但想了解文本编辑器的内部原理,本教程同样适合你。
我会逐步解释每个环节,有时会非常详细,当然内容并不总是与 Rust 相关。你可以随意浏览或跳过说明文字, [2] 因为本教程的核心在于:你将通过从零开始构建文本编辑器来学习 Rust!沿途学到的任何知识都是额外收获,仅通过输入代码变更并观察结果就能学到很多。
关于本教程的更多信息(包括遇到困难时该如何处理以及如何获取帮助),请参阅附录部分。
如果你已准备就绪,请直接跳转至第一章!
译者附
本文是参照philippflenker.com的hecto编辑器教程制作的翻译件。本文采用DeepSeekR1完成中文翻译,有任何问题,请联系译者。译者的初心是不想继续中英对照,所以采用机器翻译进行简单翻译后阅读。没有任何盈利目的。若有任何侵权,请联系译者。
目录
- 但如果你只想阅读而不想亲自编码,那也没问题
- 本教程篇幅较长,这是有意为之的。如果你想用 Rust 构建同样的文本编辑器,但希望减少叙述性内容和旁支细节,可以参考 Kofi Otuo 的 pound 项目。不过,当我们进行到布置实践环节时,你可以轻松跳过解释部分,直接完成一个接一个的实践任务。