Pourquoi tmux définit-il la variable TERM sur écran?

19

Citant la tmuxpage de manuel:

La variable d'environnement TERM doit être définie sur «écran» pour tous les programmes exécutés dans tmux. Les nouvelles fenêtres auront automatiquement «TERM = screen» ajouté à leur environnement, mais il faut faire attention de ne pas le réinitialiser dans les fichiers de démarrage du shell.

Est-ce parce que la tmuxsession peut être attachée à n'importe quel terminal (par exemple distant), screenétant le plus petit dénominateur commun? Si je connais mon terminal, puis-je le forcer sans résultats inattendus, ou certaines capacités non prises en charge se briseraient-elles (comme le défilement)?

sevo
la source

Réponses:

13

Il le fait pour tirer parti de la description du terminal précédemment installée pour l'écran GNU.

Les deux tmux et écran fournissent des applications avec (plus ou moins) les descriptions de terminaux « mêmes » pour simplifier la connexion de différents terminaux. Les programmes tmux et screen sont censés gérer les différences entre l'interne (TERM = écran) et l'externe (xterm, linux, etc.). La screendescription du terminal a donc été installée "partout" (généralement par ncurses).

Il y a quelques différences:

  • L'écran GNU a un très vieux problème représentant la fonctionnalité "standout" (qui n'est techniquement pas une fonctionnalité de terminal spécifique mais plutôt une abstraction pour la commodité des applications curses). tmux n'a pas cette limitation. Mais le TERM = tmux amélioré n'est pas nécessairement "partout".
  • L'écran GNU a une fonction pour utiliser des descriptions de terminaux hybrides. Étant donné le TERM = xterm externe et l'existence de "screen.xterm", il choisira cela pour la valeur TERM interne. (voir par exemple la base de données du terminal ). tmux ne fait pas ça.
Thomas Dickey
la source
5

Depuis tmux 2.1 , vous pouvez utiliser le tmux terminfo :

'default-terminal' est maintenant une option de session. De plus, si ce paramètre est défini sur «screen- *», émulez ce que fait l'écran. Si l'italique est souhaité, cela peut être défini sur 'tmux' mais c'est toujours nouveau et pas nécessairement pris en charge sur toutes les plateformes avec des installations ncurses plus anciennes

jasonwryan
la source