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


10

我设置$TERM将行添加XTerm*termName: xterm-256color.Xresources文件的变量。当我这样做时,我不知道确切的含义(我正在遵循在线指南来更改的外观xterm),但是现在我读了更多的书,并担心我做错了什么。具体来说,我想知道$TERM手动设置变量有什么不好,如果是的话,如何恢复错误。

如果需要,我将通过运行Fedora 20 xterm


这是一个通用的编程问题。取决于您将要做什么。如果您可以认为桌面环境是合理的,并且没有远程连接,则可以。如果不是,则必须使用错误检查来处理所有可能的情况。
1754年

@uprego您能否详细说明“远程连接的缺失”?
Santaru72

您可能正在使用带有256色选项的永久性tmux会话,但是如果从ssh会话中附加它,则可能的情况扩展得太多,无法列出。根据每个程序员的能力,每个应用程序将产生或不产生预期的效果。正如@goldilocks在他的回答中指出的那样,这不应该是危险的,但是“不应该”和“不能”之间是有区别的。
1754年

@uprego:实际上,我应该说“不能”,除非您将难以理解的输出视为“危险”。
goldilocks 2014年

Answers:


7

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

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

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

与上一个相关的另一个原因是,有时一个终端会有多个相似的条目,但功能略有不同。当出现与现有终端兼容但功能更多的新终端时,这种情况通常会发生。然后,您可以选择使用所有机器都可以理解的传统名称,但只能宣传传统功能,还是使用较新的名称,可以宣传所有新功能,但是有些机器不了解。

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

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


3

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

只要您知道自己做了什么就可以了。大多数GUI终端都支持此功能。

您也可以从命令行或脚本中进行设置

export TERM=xterm-256color

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

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


所以设置XTerm*termName: xterm而不是XTerm*termName: xterm-256color我应该没事吧?
Santaru72

如果那是您想要的,请不要进行任何设置;xtermxterm;)的默认设置,但表示16种颜色。使用的主要要点xterm-256color告诉应用程序终端支持256色。如果您不这样做,它们将假定16种颜色。
goldilocks 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.