我多次开启和关闭c ++但从未使用它编写真正的应用程序。 很长一段时间我一直在想编写文本编辑器会非常有趣,现在我正在寻找一个用c或c ++编写的简单但不错的文本编辑器,我可以从中获得灵感并学习如何自己编写文本编辑器。
你们可以向我推荐一个用c或c ++编写的“简单却不错”的文本编辑器吗?
答案 0 :(得分:19)
您可能希望查看Zile或nvi。两者都相当简单; Zile和Emacs一样,nvi是Berkeley vi
。另一个要看的是Nano,这是一个简单的文本编辑器,旨在为新用户提供便利。不过,我不知道代码在这些方面有多干净。
我还建议阅读The Craft of Text Editing: Emacs for the Modern World。本书调查了编写文本编辑器时需要解决的许多具体问题,以及解决这些问题的方法,策略和算法。即使你的编辑器看起来不像Emacs,它的内容应该是相关和有用的。
答案 1 :(得分:9)
你想看到的听起来更像是一个教程,而不是一个实际的应用程序(我认为像Notepad++这样的应用程序在开始时会有很多东西要深入研究)。由于您未提及要编入的任何环境,因此可以查看QT Text Editor演示。 QT是一个跨平台的GUI工具包,因此您不必绑定到特定的操作系统,但可能更难在Windows中设置Visual Studio环境。
对于Windows,您可能需要考虑按照this question中的建议更多地深入.NET平台(例如C#)。它无助于学习C ++,但它使GUI开发变得更加容易。
答案 2 :(得分:4)
获取vi。 像vi / vim一样缺乏真正的编辑;) 我的意思是有很多编辑器,如记事本/记事本++, 但很少有编辑器具有单独的命令/控制模式。 所以你可以看一下vi来源,激励自己,介绍革命性的东西。
答案 3 :(得分:4)
Notepad++是一个用C ++编写的优秀的开源编辑器。
答案 4 :(得分:2)
Notepad++了解“简单”的一些定义。
答案 5 :(得分:2)
您还可以查看Scintilla编辑组件。
答案 6 :(得分:1)
JuffEd。由于使用Qt和QScintilla,它是用C ++编写的,跨平台的。 Notepad ++也使用Scintilla文本编辑器组件,但它仅限于Windows平台。
答案 7 :(得分:1)
您想制作什么样的文字编辑器?
第一个问题是基于GUI还是基于控制台?
基于GUI,你想制作像记事本这样的东西吗?在什么平台上?如果它是基于MS Windows的,我可以建议选择MFC吗?
如果它是基于文本的,那么您可以使用许多开源解决方案。我的建议是查看最简单的ed或ed等编辑器。
答案 8 :(得分:0)
掠夺QT这是跨平台,拥有RICHTEXT COMPONENT(小部件)。在QT中编写第一个应用程序将为您提供实际知识。我建议按书学习QT