Chr*_*age 39
xterm-256color描述Xterm支持256色启用.xterm-color描述了一个支持16种颜色的旧版Xterm分支.xterm-color不推荐使用,因为它描述了Xterm的一个变体,它的功能较少且您不太可能使用它.通常你会想要使用xterm,xterm-16color或xterm-256color.
特别是,xterm-256color从Mac OS X 10.7 Lion开始的终端的默认值是,其次是最佳建议值xterm-16color或xterm(仅描述对8种ANSI颜色的支持).在10.7之前,xterm-color是默认值,因为终端不支持推荐的Xterm terminfo值描述的一些关键功能,例如,背景颜色擦除(BCE),用于切换主/备用屏幕的现代代码,256种颜色.
有时,人们明确设置TERM到xterm-color(而不是在Xterm的推荐值)来禁用功能或解决现有的terminfo值之间的不兼容特定的计算机和终端模拟器上使用.
请注意,从技术上讲,终端应该有自己的最新terminfo值,它们准确描述它支持的功能,而不是使用Xterm的值,但是:
nsterm代表NeXTSTEP的终端祖先.有人显然nsterm最近已经更新了(过去几年的某个时候),但我不知道是否已经进入了ncurses发行版,并且它可能不完全与10.7中的终端保持同步.$TERM以(或等于)开头xterm.因此,一些用户仍然需要知道使用推荐的Xterm值与终端兼容.如果您不熟悉terminfo系统,请查看x-man-page:// 5/terminfo手册页.此外,您可以使用该infocmp命令查看当前的terminfo设置或比较两个不同的设置,例如,infocmp xterm-color xterm-256color将显示这两者之间的所有差异.
似乎xterm-256color是OS/X上的Terminal.app.差异并不小 - 我在Ubuntu盒子上输入了xterm-color和xterm-256color,并将它们标准化了一些,并且有很多不同之处.我甚至可能会说xterm-256color不再是xterm了.
通常,当您使用特定的终端仿真器时,您需要"只知道"哪个terminfo条目最适合它.它们是匹配对,但有时您可以在vt220终端上使用vt100 terminfo条目.
从好的方面来说,今天几乎所有东西都与vt100兼容.
根据ncurses FAQ,xterm-color早已过时:
最初,xterm-color 对应于 20 世纪 90 年代中期的 color_xterm。1996 年被 XFree86 xterm 取代。
终端数据库提供详细信息。它最初的目的是作为通用终端描述,但从一开始就从未成功,因为它与XFree86 xterm不匹配,特别是颜色行为(即背景颜色擦除功能)。现在没有人使用nxterm。
xterm -256color终端描述是通过修改颜色行为(添加更多颜色,但不添加背景颜色擦除功能)从 (XFree86) xterm 终端描述构建的。使用infocmp查看差异:
$ infocmp xterm-color xterm-256color |wc -l
122
$ infocmp xterm xterm-256color |wc -l
14
$ infocmp xterm xterm-256color
comparing xterm to xterm-256color.
comparing booleans.
ccc: F:T.
comparing numbers.
colors: 8, 256.
pairs: 64, 32767.
comparing strings.
initc: NULL, '\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\'.
oc: NULL, '\E]104\007'.
rs1: '\Ec', '\Ec\E]104\007'.
setab: '\E[4%p1%dm', '\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m'.
setaf: '\E[3%p1%dm', '\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m'.
setb: '\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m', NULL.
setf: '\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m', NULL.
Run Code Online (Sandbox Code Playgroud)
由于 xterm-color 已经过时,它在很大程度上被忽略了,直到 Apple 的一些(当然是匿名的)开发人员决定将其重用于 Terminal.app(在 10.5 Leopard中),尽管它不太合适。ncurses 中的nsterm -16color描述是由某人(显然是 Apple 外部的)贡献的,以匹配 10.5 的行为。尽管 xterm-color 使用8 种颜色,但人们可能会猜测 nsterm-16color 使用16 种颜色。也许这导致了用户的困惑。无论如何,为 Terminal.app 选择终端描述除了设置TERM环境变量外,对 Terminal.app 没有任何影响,许多应用程序使用环境变量来决定如何使用终端。
有趣的是,尽管 MacOS 用户区的大部分来自 BSD,但它的 ncurses 配置却并非如此。与 BSD 不同,MacOS 有 tic/infocmp 实用程序(尽管 Apple 已经十多年没有更新它了:ncurses 5.7 于2008 年发布)。在 MacOS 的后续版本中,Terminal.app 的开发人员更改了菜单以提供“xterm-256color”而不是“xterm-color”。这并没有改善用户体验,因为使用相应终端描述的终端行为仍然不同。ncurses常见问题解答提到:
此外,据报道,Mac OS X 10.7 使用 xterm-256color 作为默认的 $TERM 值。这在几个方面与 xterm-color 不同,特别是对 bce 的支持。它还与推荐的 nsterm-256color 不同(infocmp 报告有 111 个差异)。