Gnome终端报告$ TERM为`xterm`


21

在全新安装的Ubuntu 12.10上,默认的gnome-terminal报告$ TERM为xterm,而实际上应报告xterm-256color。改变这种状况的最好方法是什么?我避免将其放在我的.bashrc中,因为这只是在麻烦。


2
小心解释为什么xterm是错误的?Afaik我们都有xterm。除此之外:还要注意解释为什么将其放入bashrc会带来麻烦?
Rinzwind

4
xterm这是错误的,因为除非xterm-256color或,否则大多数应用程序都无法在256色模式下工作screen-256color(vim和tmux是我关注的主要对象)。像@Freddy一样,我也不想在我的shell配置文件中设置这些设置,因为我可能是通过SSH通过不同的终端类型进行连接的,并且设置它实际上是终端仿真器的工作。我很惊讶gnome-terminal没有提供多种仿真。
Jim Stewart

3
vte-0.40(可能会在Ubuntu 15.10中出现)将默认值更改为xterm-256colors
egmont 2015年

Answers:


17

强烈建议您不要更改启动脚本,特别是~/.bashrc。任何“终端检测”使用电流$TERM$COLORTERM~/.profile仅是猜测,并且可以通过在使用其它终端(比方说,腻子或xterm中)当所述,造成麻烦。终端仿真器应该集$TERM,这应该 被从外壳内改变。

Gnome终端AFAIK不提供更改其配置的配置TERM,但它允许您更改启动命令,仅此而已。这是窍门:

Profile Preferences => Title and Command => Run a custom command instead of my shell

然后使用以下命令:

env TERM=xterm-256color /bin/bash

/bin/bash如果不同,只需用您喜欢的外壳替换即可。不,您不能"$SHELL"在该行中使用它进行外壳自动检测;)您必须对其进行硬编码


这些设置中有一个选项“命令退出时:”。选项包括“退出终端”,“重新启动命令”和“保持终端打开”。我应该选择哪一个?
Caleb Jay

@CalebJay:无论您喜欢哪个,该选项都与端子颜色无关。命令结束时该怎么做纯粹是优先考虑的问题。
MestreLion

12

用于与无法执行256色的终端连接。

最好使用专门检测终端$COLORTERM。查找gnome-terminal,xfce4-terminal等,然后$TERM变量设置为xterm-256color

我这样做:

if [ "$COLORTERM" = "gnome-terminal" ] || [ "$COLORTERM" = "xfce4-terminal" ]
then
    export TERM=xterm-256color
elif [ "$COLORTERM" = "rxvt-xpm" ]
then
    export TERM=rxvt-256color
fi

4
请注意,从3.13开始的Gnome Terminal不再设置COLORTERM
MestreLion,2015年

2
对于不再设置的版本,COLORTERM您可以依靠VTE_VERSION
egmont

6

虽然terminfo具有xterm + 256color(/usr/share/terminfo/x/xterm+256color)是正确的,而termcap只有xterm(/usr/share/vte/termcap/xterm),所以$TERM不建议进行更改。

无论如何,$TERM不是由gnome-terminal设置,而是由vte设置。可以在编译时(为configure脚本提供一个选项)或通过调用该vte_pty_set_term()函数来更改该环境变量的默认值。查看gnome-terminal的来源,我发现它vte_pty_set_term从未被调用过,因此我可以说没有办法$TERM通过编辑gnome-terminal的设置进行修改。

您要做的就是将以下代码片段放入您的~/.profile

if [ "$TERM" = "xterm" ]
then
    export TERM=xterm-256color
fi

==是仅用于bash的语法,请勿将其用于打算由其来源的代码片段sh~/.profile在DE中就是这种情况)。另外,由于您正确引用了var扩展,因此不需要“ x $ ..”语法。
MestreLion

@MestreLion:随时编辑我的问题。
Andrea Corbellini 2015年

我尝试过,但非盟要求更改的字符数必须超过6个字符,因此,注释
MestreLion 2015年
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.