手动设置 $TERM 变量是否正确?

San*_*u72 11 terminal xterm x-resources

我设置了$TERM将这一行添加XTerm*termName: xterm-256color到我的.Xresources文件中的变量。当我这样做时,我不知道这究竟意味着什么(我正在按照在线指南更改 的外观xterm),但现在我读了更多,并且担心我所做的是否有误。具体来说,我想知道$TERM手动设置变量有什么不好,如果是,我该如何恢复我的错误。

如果您需要,我正在运行 Fedora 20 和xterm.

Gil*_*il' 8

大多数情况下,您不应TERM手动设置。该变量始终是自动设置的,并且只有少数情况下默认值不正确。

的值TERM需要在系统的terminfo数据库中引用(或者对于一些老式系统,在termcap数据库中)。Terminfo 和 Termcap 将终端类型映射到应用程序使用的终端功能的描述。的值TERM是终端类型。

您有时可能需要更改的主要原因TERM是如果您远程登录,当本地机器和远程机器具有不同的终端数据库时。

与前一个相关的另一个原因是,有时一个终端有多个相似的条目,但功能略有不同。这往往发生在新终端出现时,该终端与现有终端兼容,但具有更多功能。然后,您可以选择使用传统名称(所有机器都能理解,但仅宣传传统功能),或使用较新的名称(宣传所有新功能但某些机器无法识别)。

这方面的一个例子是具有 16 种颜色的 xterm 与具有 256 种颜色的 xterm。传统的 xterm 仅支持 16 种颜色,因此这是xterm终端数据库指定的。更改xterm条目将使较新 xterm 版本的用户满意,但会破坏远程登录的较旧 xterm 版本用户的配置。切换到新名称 —  xterm-256color— 在可用时提供更新的功能,但如果您远程登录到具有旧终端数据库的机器,则无法识别。因为没有可以满足所有人的解决方案,所以你有一个选择:要么坚持xterm不得到 256 色,要么使用xterm-256color如果你登录到不支持它的远程机器时不起作用。

因此,保留默认值xterm并将termName资源设置为xterm-256color(这会导致环境变量TERM设置为相同的值)都是明智的选择。设置TERM为任意值是行不通的,但都xtermxterm-256color有意义。


gol*_*cks 4

我设置 $TERM 变量,将 XTerm*termName: xterm-256color 行添加到我的 .Xresources 文件中。

没关系,只要你意识到自己做了什么;大多数 GUI 终端都支持这一点。

您还可以从命令行或脚本中设置它

export TERM=xterm-256color
Run Code Online (Sandbox Code Playgroud)

这仅适用于该终端或后续子终端。

可移植的默认值是 just xterm,这意味着支持 16 种颜色。如果您设置了 256 色,而您的终端不支持它,则运行 256 色 TUI 应用程序会看起来很奇怪;您可能会立即注意到。但这不应该是危险的。