我最近学习了C,并且想启动一个项目来巩固我的知识。我决定制作一个非常简单的文本编辑器,例如vim。我面临的问题是,我真的不知道文本编辑器的工作原理,也不知道可以从谷歌那里学到什么。
对其进行谷歌搜索导致了vim的GitHub回购,这对我来说毫无用处,因为代码库很大而且代码使我感到困惑。我还找到了使用C制作文本编辑器的教程,其功能类似于vim。
尽管我考虑过学习这些教程,但感觉却像在作弊。vim开发人员如何在没有特定教程的情况下弄清楚如何编码vim?还是从更简单的文本编辑器开始?他们如何仅从语言知识及其文档中找出答案?
在不直接遵循教程的情况下开始编写此文本编辑器到底需要什么?我想想到的另一个示例是:Dennis Ritchie和Ken Thompson如何编写Unix的代码?我对OS的功能有所了解,但对如何将其放入代码中一无所知。我想念的是什么?如何将这种语言知识转化为实际的实际使用?