在全新安装的 Ubuntu 12.10 上,默认的 gnome-terminal 将 $TERM 报告为 xterm,而实际上它应该报告 xterm-256color。改变这种情况的最佳方法是什么?我避免将其放入 .bashrc 中,因为那只会自找麻烦。
答案1
我们强烈建议您不要更改启动脚本,特别是。任何使用 current或in 的~/.bashrc
“终端检测”都只是猜测,并且如您所说,在使用其他终端(例如 Putty 或 xterm)时可能会造成麻烦。终端仿真器应该设置,这应该$TERM
$COLORTERM
~/.profile
$TERM
不是 可以从 shell 内部进行更改。
据我所知,Gnome 终端不提供更改其配置TERM
,但它允许您更改启动命令,这就是您所需要的。以下是技巧:
Profile Preferences => Title and Command => Run a custom command instead of my shell
然后使用以下命令:
env TERM=xterm-256color /bin/bash
/bin/bash
如果不同,只需将其替换为您喜欢的 shell。不,您不能"$SHELL"
在该行中使用 shell 自动检测 ;) 您必须对其进行硬编码
答案2
用于连接无法实现 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
答案3
虽然 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