尽管 Linux 上存在臃肿/单一的包,ncurses 包的包维护者经常将 7Mb 的 terminfo 分成“基本”和“术语”块(并将其与库分开)。ncurses 的 MacPorts 维护者没有这样做。终端数据库是“ncurses”包的一部分。例如,我从
port contents ncurses@6.0_0+universal
在/选择下:
/opt/local/share/terminfo/73/screen.xterm-256color
这里还有一个系统(非端口)副本:
/usr/share/terminfo/78/xterm-256color
与 ncurses 链接的应用程序通常会使用其中一个,具体取决于它们是与端口库还是系统库链接。TERMINFO
但是,可以通过设置变量告诉 ncurses 查找其他位置。如果你碰巧从另一台机器上复制了一些定制到你的机器上.bashrc
,那可能已经设置好了TERMINFO
。
就其本身而言,tput
它不知道它在哪里寻找终端入口。您可以检查输出env
以查看是否TERMINFO
已设置。该infocmp
实用程序可以显示它的外观(自2011 年底以来),使用-D
选项,例如,
$ infocmp -D
/usr/local/ncurses/share/terminfo
/usr/share/terminfo
/opt/local/share/terminfo
顺便说一句,OSX 不(除非某些专用端口)使用termcap。它使用terminfo,作为某些给定 ncurses 版本的一部分(参见例如手册页tgetent
)。