【发布时间】:2013-08-17 10:14:57
【问题描述】:
vim、top 或 alsamixer 等程序会输出多行文本,并以某种方式操纵已写入的文本行。
我知道将\r 字符写入stdout,它将光标返回到行首,允许覆盖当前行,但不能覆盖之前的任何行。
这些程序做了什么来让这些更高级的 UI 具有花哨的终端操作?在我的情况下,我正在寻找 Python 解决方案,但任何一般信息都将不胜感激。
【问题讨论】:
vim、top 或 alsamixer 等程序会输出多行文本,并以某种方式操纵已写入的文本行。
我知道将\r 字符写入stdout,它将光标返回到行首,允许覆盖当前行,但不能覆盖之前的任何行。
这些程序做了什么来让这些更高级的 UI 具有花哨的终端操作?在我的情况下,我正在寻找 Python 解决方案,但任何一般信息都将不胜感激。
【问题讨论】:
您需要查看 python curses 库。
curses 模块提供了一个到 curses 库的接口, 便携式高级终端处理的事实标准。
虽然 curses 在 Unix 环境中使用最广泛,但版本是 可用于 DOS、OS/2 和可能的其他系统。这个 扩展模块旨在匹配 ncurses 的 API,一个 托管在 Linux 和 BSD 变体上的开源 curses 库 Unix。
【讨论】:
nano 或 top 等主要 C 程序使用的吗?