2012-04-03 201 views
14

當我嘗試設置我的終端程序使用顏色時,我遇到了xterm-color和xterm-256color兩個選項,即可以將TERM環境變量設置爲任意一個。xterm-color&xterm-256color有什麼區別?

我想知道是否有人可以描述兩者之間的區別?

我在我的ubuntu服務器以及我的mac上搜索了文檔,但是還沒有找到任何文檔。我只能在/ usr/share/terminfo中找到各種二進制文件

+0

您可以確定自己[您的終端是否支持256色](https://askubuntu.com/questions/821157/print-a-256-color-test-pattern-in-the-terminal)。 – 2017-12-22 22:10:39

回答

30

xterm-256color描述了支持啓用256色的Xterm。 xterm-color描述了支持16種顏色的Xterm的一個較老的分支。不建議使用xterm-color,因爲它描述了Xterm的一個變體,它的功能較差,您不太可能使用它。通常你會想要使用xterm,xterm-16colorxterm-256color

特別是,xterm-256color是從Mac OS X 10.7 Lion開始的默認終端,其次推薦值爲xterm-16colorxterm(僅描述對8種ANSI顏色的支持)。在10.7之前,xterm-color是默認值,因爲終端不支持推薦的Xterm terminfo值描述的一些關鍵特性,例如背景色擦除(BCE),用於切換主/備用屏幕的現代代碼,256色。

有時,人們明確將TERM設置爲xterm-color(與推薦的Xterm值相反)以禁用功能或解決特定計算機上的可用terminfo值與正在使用的終端仿真器之間不兼容的問題。

需要注意的是技術上的終端應該有精確地描述其特點是支持,而不是使用值的Xterm,自有了最新的terminfo值,但:

  1. 沒有一個是向上目前爲止。 nsterm代表NeXTSTEP的終端的祖先。最近有人更新了nsterm(過去幾年的某個時間),但我不知道這是否已經進入ncurses發行版,並且可能不會完全與10.7中的Terminal完全同步。
  2. 大量程序和shell定製腳本明確檢查$TERM是否以(或等於)xterm開頭。因此,有些用戶仍然需要了解如何在終端上使用推薦的Xterm值來與這些值兼容。

如果您不熟悉terminfo系統,請查看x-man-page:// 5/terminfo手冊頁。另外,您可以使用infocmp命令查看當前的terminfo設置或比較兩個不同的設置,例如,,infocmp xterm-color xterm-256color會告訴你這兩者之間的所有差異。

5

看來xterm-256color是OS/X上的Terminal.app。這些差異並不是很小 - 我在Ubuntu盒子上對xterm-color和xterm-256color進行了infocmp,並對它們進行了歸一化處理,並得到了一些不同。我甚至可以說xterm-256color不再是真正的xterm。

通常,當您使用特定的終端仿真器時,您需要「知道」哪一個terminfo條目最適合它。它們是一對匹配的,儘管有時候您可以使用EG,在vt220終端上使用vt100 terminfo條目。

從好的一面來看,今天幾乎所有的東西都是兼容vt100的。

+0

「我甚至可以說xterm-256color不再是xterm了。」你的意思不再是* xterm了,因爲幾個流行的終端仿真器支持許多相同的功能? – 2012-04-06 05:05:47