Por que o tmux define a variável TERM para a tela?

Por que o tmux define a variável TERM para a tela?

Citando tmuxa 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 tmuxa sessão pode ser anexada a qualquer terminal (por exemplo, remoto), screensendo 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 screendescriçã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

informação relacionada