Em uma instalação limpa do Ubuntu 12.10, o terminal-gnome padrão está relatando que $ TERM é xterm, onde deveria estar realmente relatando xterm-256color. Qual é a melhor maneira de mudar isso? Estou evitando colocar isso no meu .bashrc, pois isso está apenas causando problemas.
gnome-terminal
Freddy
fonte
fonte
xterm
está errado porque a maioria dos aplicativos não funciona no modo de 256 cores a menos que sejaxterm-256color
ouscreen-256color
(vim e tmux são os principais que me interessam). Como o @Freddy, eu preferiria não defini-los no meu perfil de shell, porque posso estar conectando a partir de um tipo de terminal diferente pelo SSH e porque é realmente o trabalho do emulador de terminal definir isso. Estou surpreso que o gnome-terminal não forneça várias emulações.xterm-256colors
.Respostas:
Você foi aconselhado a não alterar seus scripts de inicialização, especialmente
~/.bashrc
. Qualquer "detecção de terminal" usando corrente$TERM
ou$COLORTERM
in~/.profile
é apenas um palpite e pode, como você disse, causar problemas ao usar outros terminais (por exemplo, Putty ou xterm). O emulador de terminal deve ser configurado$TERM
e isso não deve ser alterado de dentro do shell.O terminal Gnome, AFAIK, não oferece uma configuração para alterar sua
TERM
, mas permite alterar seu comando de inicialização, e isso é tudo que você precisa. Aqui está o truque:Em seguida, use o seguinte comando:
Apenas substitua
/bin/bash
pelo seu shell preferido, se for diferente. E não, você não pode usar"$SHELL"
nessa linha para detecção automática de shell;) Você precisa codificá-lofonte
Para conectar com um terminal que não é capaz de executar 256 cores.
Seria muito melhor detectar o terminal especificamente com
$COLORTERM
. Olhar para o Gnome-terminal, xfce4-terminal, etc, e , em seguida, definir a$TERM
variável paraxterm-256color
.Eu faço isso com:
fonte
COLORTERM
mais configurado .COLORTERM
você pode confiarVTE_VERSION
.Embora seja verdade que terminfo possui xterm + 256color (
/usr/share/terminfo/x/xterm+256color
), termcap possui apenas xterm (/usr/share/vte/termcap/xterm
), portanto, mudar$TERM
não deve ser aconselhável.De qualquer forma,
$TERM
não é definido pelo gnome-terminal, mas pelo vte. O valor padrão para essa variável de ambiente pode ser alterado no tempo de compilação (dando uma opção para o script configure) ou chamando avte_pty_set_term()
função Observando as fontes do gnome-terminal, vejo que issovte_pty_set_term
nunca é chamado, então posso dizer que não há maneiras de modificar$TERM
editando as configurações do gnome-terminal.O que você precisa fazer é colocar o seguinte pedaço de código no seu
~/.profile
:fonte
==
é uma sintaxe apenas de bash, não a use para trechos destinados a serem originados porsh
(como é o caso~/.profile
nos DEs). Além disso, a sintaxe "x $ .." não é necessária, pois você está citando corretamente a expansão var.