进一步阅读

进一步阅读

我最近从rxvt-unicode英石。这意味着我从$TERM=rxvt-unicode-256color$TERM=st-256color

我对这个开关很满意,并想继续使用st。但是,我注意到某些终端应用程序对新$TERM值不满意。例如,emacs不会加载st全彩色支持,除非我“欺骗”它认为它$TERM是可识别的,例如$TERM=xterm-256color.

我的问题是:简单设置有什么风险$TERM=xterm-256color?在我看来,重要的部分$TERM=*-256color就是256color部分,而价值*似乎不太重要。

答案1

的值的重要部分TERM是它与 terminfo 或 termcap 数据库中的条目匹配,并且该条目正确地描述了您的终端。

您无法合理地告诉软件您的终端是 XTerm,而它显然不是。认为其他终端仿真器使用与 XTerm 相同的输入/输出控制序列或提供所有相同的功能是完全错误的。

-256color只是一个的一部分姓名,它对大多数软件没有固有意义(尽管极少数软件确实会寻找功能后缀)。它(主要)仅对人类有意义,因为是人类根据名称将 terminfo/termcap 数据库中的条目分组为家族。终端类型名称中的功能后缀主要用于人类,而不是软件。

对软件来说有意义的是数据库中的记录是否就是这么命名的表示该终端支持 256 色,并提供了在该类型终端上使用它们的控制序列。

也就是说,emacs 确实做了自己的事情,并且不仅仅依赖于 terminfo/termcap 数据库。例如,已知它的函数与againstframe-set-background-mode的值匹配,这在现在可能是错误的。这里正确的方法是修复 emacs,以便它最终能够正确识别终端类型(以及、和其他类型)。 TERM^\\(xterm\\|\\rxvt\\|dtterm\\|eterm\\)st-256colorputty-256colorvte-256color

进一步阅读

相关内容