![Por que o tmux define a variável TERM para a tela?](https://rvso.com/image/76417/Por%20que%20o%20tmux%20define%20a%20vari%C3%A1vel%20TERM%20para%20a%20tela%3F.png)
Citando tmux
a página de manual:
A variável de ambiente TERM deve ser definida como “tela” para todos os programas executados dentro do tmux. Novas janelas terão automaticamente “TERM=screen” adicionado ao seu ambiente, mas deve-se tomar cuidado para não redefinir isso nos arquivos de inicialização do shell.
Isso ocorre porque tmux
a sessão pode ser anexada a qualquer terminal (por exemplo, remoto), screen
sendo o menor denominador comum? Se eu conhecer meu terminal, posso forçá-lo sem resultados inesperados ou alguns recursos não suportados serão interrompidos (como rolagem)?
Responder1
Isso é feito para aproveitar a descrição do terminal instalado anteriormente para a tela GNU.
Ambostmuxetelaforneça aos aplicativos (mais ou menos) as "mesmas" descrições de terminal para simplificar a conexão de diferentes terminais. Os programas tmux e screen devem lidar com as diferenças entre o interno (TERM=screen) e o externo (xterm, linux, etc). Portanto, a screen
descrição do terminal foi instalada "em todos os lugares" (geralmente por ncurses).
Existem algumas diferenças:
- A tela GNU tem umproblema muito antigorepresentando o recurso "destacado" (que tecnicamente não é um recurso específico do terminal, mas sim uma abstração para a conveniência dos aplicativos de maldições). tmux não tem essa limitação. Mas o melhoradoTERMO=tmuxnão está necessariamente "em todo lugar".
- A tela GNU possui um recurso para usar descrições de terminais híbridos. Dado o TERM=xterm externo e a existência de "screen.xterm", ele irá escolher isso para o valor TERM interno. (veja por exemplo obanco de dados de terminal). tmux não faz isso.
Responder2
A partir detmux 2.1, você pode usar otmux
informações do termo:
'default-terminal' agora é uma opção de sessão. Além disso, se estiver definido como 'screen-*', emule o que a tela faz. Se desejar itálico, pode ser definido como 'tmux', mas ainda é novo e não necessariamente suportado em todas as plataformas com instalações mais antigas do ncurses