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

时间:2010-11-15 02:49:50

标签: shell console curses

我想了解像vimman这样的程序如何在shell中运行。他们如何让用户滚动,刷新显示器等?

它们似乎与某些控制台库交互,因此操纵我们看到的内容。真的发生了什么?

2 个答案:

答案 0 :(得分:7)

终端具有所谓的终端驱动程序。这不是硬件接口意义上的驱动程序,而是解释导致它执行诸如滚动,文本属性等操作的某些字符序列。

字符序列存储在 terminfo数据库中。名为 curses 的库(或其现代等价物 ncurses )读取terminfo数据库,并根据所调用的函数发出各种字符序列。

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

答案 1 :(得分:3)

这是一个很棒的操作方法:

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