我已经了解了几种编程语言,我想尝试制作一个命令行文本编辑器——在终端中运行的东西,比如 vim/emacs/nano,但是是纯文本(请不要guis)。最好,我想在 python 中执行此操作。我从哪里开始?是否有任何(python)库来执行命令行应用程序?
10 回答
试试python curses module,它是一个命令行图形操作库。
今天的孩子们!嘘!当我刚开始的时候,curses 并没有被广泛使用!
我的第一个文本编辑器使用实际的纸在实际的机械电传打字设备上工作(不是带有滚动屏幕的哲学“TTY”设备!)
这仍然可以很好地作为一种编辑方式。
使用该cmd
模块来实现一堆命令。使用“ex”手册页来提示您需要什么。不要阅读有关 vi 命令的内容;避免阅读有关 vim 的内容。
仅查看“EX COMMANDS”部分的旧手册页。例如,这里: http: //www.manpagez.com/man/1/ex/。
实现追加、添加、更改、删除、全局、插入、加入、列出、移动、打印、退出、替换和写入命令,您会很高兴。
Curses 类型库和资源将带您进入文本用户界面,并提供非常漂亮、相对易于使用的窗口、菜单、编辑器等。
然后,您将需要查看 python 的代码突出显示模块。
处理文本界面的限制是一个有趣的过程,沿着这条路走下去你可以学到很多东西。祝你好运!
-亚当
我会推荐优秀的 urwid 工具包(http://excess.org/article/2009/03/urwid-0984-released)——它比直接诅咒更容易使用。
那么,GUI 是什么意思?如果您只想创建可以在控制台上使用的东西,请查看curses
Python 标准库中的模块,它允许您在控制台上模拟各种原始 GUI。
一个不是很严肃的建议:可以在没有诅咒的情况下实现行编辑器。
当然,这些东西非常原始,而且工作起来没有什么乐趣。但是它们可以用很少的代码来实现,并且会给你一个机会来玩弄各种方案来快速维护内存中的文件状态.
他们会让你与七十年代初的程序员联系(当时他们有电传打字机和第一台玻璃电传打字机,但打孔卡有点过时了......)。
不完全是对 Python 库的引用,但您可能会对 Craig A. Finseth的 The Craft of Text Editing感兴趣。