交互式控制台程序是如何工作的?

3
我希望了解像vimman这样的程序在shell中是如何工作的。它们如何让用户滚动、刷新显示等操作?
它们似乎与某些控制台库进行交互,并因此操纵我们所看到的内容。到底发生了什么?
2个回答

7
终端有一个称为“终端驱动程序”的东西。这不是硬件接口的驱动程序,而是解释某些字符序列,导致它执行操作,例如滚动、文本属性等。
这些字符序列存储在“terminfo数据库”中。一个名为curses(或其现代等效物ncurses)的库读取terminfo数据库,并根据被调用的函数发出各种字符序列。
将terminfo数据库与终端驱动程序分离可以使程序支持多个终端,如xterm、文本控制台、网络客户端,甚至通过串行线连接的远程智能终端。

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接