Le problème sous-jacent est que le mappage effectué screen
entre le terminal réel (identifié par la TERM
variable d'environnement à l'extérieur screen
) et l'émulation à l'intérieur screen
est incomplet.
Si vous le testez (en utilisant vttest ou tack ), vous pouvez remarquer des
- couleurs
- touches spéciales
Toute tentative de résoudre ces problèmes en mettant term
en .screenrc
a l'inconvénient qu'il ne fonctionne que pour un terminal réel donné, et n'est pas portable à d' autres implémentations terminaux. Les notes de documentation
L'utilisation du terme commande est déconseillée à des fins autres que celles par défaut.
Il existe une autre solution (avec un inconvénient différent), utilisant cette fonctionnalité de la screen
documentation :
Lorsque screen essaie de trouver un nom de terminal pour lui-même, il recherche d'abord une entrée nommée screen. terme , où terme est le contenu de votre $TERM
variable. Si aucune entrée de ce type n'existe, l'écran essaie screen
(ou screen-w
, si le terminal est large (132 cols ou plus)). Si même cette entrée est introuvable, vt100
est utilisée comme substitut.
ncurses fournit plusieurs descriptions de terminaux alternatives utiles dans ce cas, par exemple screen.xterm-new , pour réparer les problèmes de mappage de l'écran. En pratique, j'utilise TERM=xterm-new
, et lors de l'exécution de l'écran, j'obtiens un mappage utilisable des touches de fonction.
En vous référant au term
réglage de l'écran , lors des tests, vous remarquerez peut-être qu'il y a toujours des problèmes avec le mappage, qui sont résolus dans ces alternatives. S'il était possible d'obtenir une description précise du terminal en utilisant term
, ces alternatives seraient de simples alias screen
. Ils ne sont pas.
ncurses ne fournit passcreen.xterm
(sic) car:
TERM=xterm
est largement utilisé à mauvais escient pour les émulateurs terminaux qui diffèrent de xterm; l'ajout de ce mappage ne ferait qu'aggraver cette situation (voir par exemple Pourquoi ne pas simplement utiliser TERM défini sur "xterm"? dans la FAQ ncurses)
- le nom alternatif
screen.xterm
est moins susceptible d'être installé sur des systèmes distants (voir le commentaire de modification de juin 2015 dans la base de données du terminal).
Dans l'ensemble, cependant, l'utilisation des noms alternatifs est une amélioration par rapport à l'utilisation term
dans votre .screenrc
: elle résout plus de problèmes qu'elle n'en crée. L'inverse est vrai du term
réglage.
term xterm
à mon~/.screenrc
fichier l'a corrigé pour moi. Merci encore!