我想了解类似的程序 vim 或者 man 在外壳中工作。他们如何让用户滚动,刷新显示等?

他们似乎与某些控制台库进行互动,因此操纵了我们所看到的。到底发生了什么?

有帮助吗?

解决方案

终端有所谓的 终端驱动程序. 。从硬件接口的意义上讲,这不是驱动程序,而是解释某些字符序列,这些序列使其执行滚动,文本属性等操作。

字符序列存储在 Terminfo数据库. 。一个库 诅咒 (或它的现代等价物, ncurses)读取终端数据库,并根据所谓的函数排放各种字符序列。

将终端数据库与终端驱动程序本身分开,允许程序支持许多终端,例如XTERM,文本控制台,网络客户端,甚至通过串行线连接的远程哑D终端。

其他提示

这是一个很好的方法:

您可能想查看第17章 - 使用终端。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top