Python 如何制作命令行文本编辑器?

Python 如何制作命令行文本编辑器?,python,text-editor,tui,Python,Text Editor,Tui,我已经熟悉了一些编程语言,我想尝试一下制作一个命令行文本编辑器——它可以在终端上运行,比如vim/emacs/nano,但是是纯文本的(请不要使用GUI)。最好是,我想用python来做这件事。我从哪里开始?是否有任何(python)库用于执行命令行应用程序?尝试python模块,它是一个命令行图形操作库。也可以查看和 那么,GUI是什么意思?如果您只想创建可以在控制台上使用的东西,请查看Python标准库中的curses模块,它允许您在控制台上模拟各种类型的原始GUI。curses类型库和资源

我已经熟悉了一些编程语言,我想尝试一下制作一个命令行文本编辑器——它可以在终端上运行,比如vim/emacs/nano,但是是纯文本的(请不要使用GUI)。最好是,我想用python来做这件事。我从哪里开始?是否有任何(python)库用于执行命令行应用程序?

尝试python模块,它是一个命令行图形操作库。

也可以查看和

那么,GUI是什么意思?如果您只想创建可以在控制台上使用的东西,请查看Python标准库中的
curses
模块,它允许您在控制台上模拟各种类型的原始GUI。

curses类型库和资源将使您进入文本用户界面,并提供非常好的,相对易于使用的窗口、菜单、编辑器等

然后,您将需要研究python的代码高亮显示模块

这是一个处理文本接口限制的有趣过程,沿着这条路走下去,您可以学到很多东西。祝你好运


-Adam

我推荐优秀的urwid工具包()-它比直接诅咒更容易使用。

如果您想编写TUI(文本用户界面)而不必陷入诅咒,另一个选项是,它附带了。

一个不太严肃的建议:可以在没有诅咒的情况下实现

当然,这些东西很原始,工作起来也没什么乐趣。但是它们可以用很少的代码来实现,并且会给您一个机会来玩弄各种各样的方案来快速地维护内存中的文件状态


他们会让你与七十年代早期的程序员取得联系(当时他们有电传打字机和第一台玻璃电传打字机,但打孔后的卡片就有点过时了……。

不太像Python库的参考资料,但Craig a.Finseth可能会让你感兴趣。

今天的孩子们!嘘!当我刚开始的时候,诅咒并没有被广泛使用

我的第一个文本编辑器使用实际的纸张在实际的机械电传打字机设备上工作(不是一个带有滚动屏幕的哲学“TTY”设备!)

这仍然是一种很好的编辑方式

使用
cmd
模块实现一系列命令。使用“ex”手册页获取有关所需内容的提示。不要阅读有关vi命令的信息;避免阅读有关vim的文章

查看旧版手册页中的“EX COMMANDS”部分。例如,这里:


执行追加、添加、更改、删除、全局、插入、加入、列出、移动、打印、退出、替换和写入命令,您会很高兴的。

另一个没有诅咒的选项是


是在俚语之上编写的库。

谢谢——您对上述代码突出显示模块有什么好的建议吗?我在翻阅pygments文档,但它看起来不像是为实时语法突出显示而构建的。pygments可以做实时语法突出显示吗?或者我应该检查其他模块吗?pygments可以做实时语法突出显示,但效率可能有点低。今天的孩子们!当我学习编码时,我们没有诅咒,我们有电传打字机!在我年轻的时候,我们甚至在开始之前就必须手工制作电路板;回到我的时代,我们用齿轮和蒸汽在绵延数英里的巨大篝火背景显示器上显示和隐藏1平方英尺的像素,除非你有一个至少100名侏儒的训练有素的团队,否则整个事情毫无意义。我与“计算机”的第一次互动是通过一个声音耦合的远程TTY。唉,它是爸爸办公室的一台主机,我不允许用它做任何有趣的事情。我的第一台TTY是硬连线的。大概110波特。我记得当300波特是一个大问题。如果你发现正在进行的项目,请让我们知道。我很想看到一个用python编写的类似vim的编辑器,并使用python作为脚本语言……看看