É correto definir manualmente a variável $ TERM?

9

Eu defino a variável $TERM adicionando a linha XTerm*termName: xterm-256color ao meu arquivo .Xresources . Quando eu fiz isso eu não sabia exatamente o que isso significava (eu estava seguindo um guia online para mudar a aparência de xterm ), mas agora eu li um pouco mais e estou preocupado se o que fiz foi errado. Especificamente, quero saber se há algo ruim ao definir manualmente a variável $TERM e, caso seja, como posso reverter meu erro.

Caso você precise, eu estou executando o Fedora 20 com xterm .

    
por Santaru72 08.01.2014 / 15:51

2 respostas

6

Na maior parte, você não deve definir TERM manualmente. A variável é sempre definida automaticamente e há apenas um conjunto restrito de circunstâncias em que o valor padrão está incorreto.

O valor de TERM precisa ser referenciado no banco de dados do terminfo do sistema (ou para alguns bancos de dados antigos sistema, no banco de dados termcap ). Terminfo e Termcap mapeiam os tipos de terminal para a descrição dos recursos do terminal que os aplicativos usam. O valor de TERM é o tipo de terminal.

O principal motivo pelo qual você pode precisar alterar TERM é se você efetuar login remotamente, quando a máquina local e a máquina remota tiverem bancos de dados de terminal diferentes.

Outro motivo, relacionado ao anterior, é que às vezes há várias entradas semelhantes para um terminal, com recursos ligeiramente diferentes. Isso tende a acontecer principalmente quando surge um novo terminal compatível com um terminal existente, mas com mais recursos. Você então pode escolher entre usar o nome tradicional, que todas as máquinas entendem, mas que anuncia apenas os recursos tradicionais ou o nome mais novo, que anuncia todos os novos recursos, mas que algumas máquinas não entenderão.

Um exemplo disso é xterm com 16 cores vs xterm com 256 cores. Um xterm tradicional suporta apenas 16 cores, e é isso que o banco de dados do terminal xterm especifica. Alterar a entrada xterm tornaria os usuários das versões mais recentes do xterm felizes, mas quebraria a configuração dos usuários de versões antigas do xterm que fazem login remotamente. A mudança para um novo nome - xterm-256color - fornece os recursos mais recentes sempre que disponíveis, mas não é reconhecida se você efetuar login remotamente em máquinas com um banco de dados de terminal mais antigo. Como não há solução que possa satisfazer a todos, você tem uma escolha: ficar com xterm e não obter as 256 cores, ou usar xterm-256color , o que não funciona se você fizer login em máquinas remotas que não usam t apoiá-lo.

Deixar o valor padrão de xterm e definir o recurso termName como xterm-256color (o que faz com que a variável de ambiente TERM seja definida para o mesmo valor) são, portanto, escolhas sensatas. A configuração de TERM para valores arbitrários não funcionaria, mas ambos, xterm e xterm-256color , fazem sentido.

    
por 09.01.2014 / 01:22
3

I set the $TERM variable adding the line XTerm*termName: xterm-256color to my .Xresources file.

Tudo bem, desde que você esteja ciente do que fez; a maioria dos terminais GUI suportam isso.

Você também pode configurá-lo a partir da linha de comando ou em um script

export TERM=xterm-256color

Isso se aplica apenas a esse terminal ou a filhos subsequentes.

Um padrão portátil seria apenas xterm , o que significa suporte a 16 cores. Se você tem um conjunto de 256 cores e seu terminal não suporta, rodar aplicativos TUI de 256 cores parecerá estranho; você provavelmente notará imediatamente. Mas não deve ser perigoso.

    
por 08.01.2014 / 16:17