Comme de nombreux émulateurs de terminaux, Terminal émule la plupart des fonctions d'un VT100, ainsi que certaines fonctions des terminaux plus récents et certaines extensions courantes de xterm et d'autres émulateurs.
Il n'existe pas de fichier terminfo qui corresponde exactement à Terminal, mais la correspondance la plus proche était auparavant xterm-color
qui représente une ancienne version de xterm. Cependant, dans les versions récentes, Terminal est plus compatible avec xterm et xterm-256color
est la nouvelle valeur par défaut du TERM
variable d'environnement.
En Préférences > Réglages > [profil] > Avancé > Emulation il y a un menu contextuel Déclarer le terminal comme : qui fixe la valeur de TERM
(et c'est tout ce qu'il fait - il ne modifie pas les fonctionnalités prises en charge par Terminal). Si vous utilisez un Mac mis à niveau à partir d'une ancienne version du système d'exploitation, vous pouvez vouloir/devoir mettre à jour le paramètre pour qu'il corresponde à la nouvelle valeur par défaut recommandée s'il est toujours réglé sur xterm-color
. En utilisant xterm-color
n'est pas recommandé et il est possible qu'il cause des problèmes parce qu'il ne correspond pas aussi bien à l'ensemble des fonctionnalités actuelles du terminal.
Bien que l'installation de ncurses doive inclure tous les fichiers terminfo, certaines distros Linux ne le font pas, et en particulier certaines d'entre elles omettent xterm-256color
. Si c'est le cas, vous verrez des programmes se plaindre de diverses manières de ne pas pouvoir le trouver, et la solution consiste à installer l'ensemble des fichiers terminfo, ou au moins tous les fichiers xterm.
Si xterm-256color
n'est pas disponible, la meilleure solution suivante est le xterm-16color
, suivi de xterm
. Ces trois éléments sont compatibles et représentent la version actuelle de xterm, avec un nombre décroissant de couleurs prises en charge ( xterm
ne déclare que les huit couleurs de base ANSI, bien que de nombreux programmes l'ignorent et supposent que seize couleurs sont prises en charge, mais xterm-16color
est celui qu'il faut choisir si l'on veut déclarer explicitement la prise en charge de seize couleurs).
Il est difficile de dire exactement ce qui peut être à l'origine du problème que vous rencontrez, mais la première chose à faire est d'exécuter la commande infocmp
sur l'hôte distant pour voir ce qu'il dit. Vous saurez ainsi quel terminfo il attend et s'il a été trouvé.
S'il s'agit d'un problème générique lié à ncurses ou terminfo, il est probable qu'il se produise avec d'autres programmes, comme vim. Vous pourriez essayer de lancer vim ou less, par exemple, pour comparer les comportements. Si vous vous sentez motivé, vous pouvez lancer vttest http://invisible-island.net/vttest/ sur l'hôte distant et vérifiez que le terminal répond correctement aux tests de dessin des attributs de texte, de redimensionnement de l'affichage et de passage à/de l'écran alternatif.
Lorsque vous redimensionnez une fenêtre de terminal, le programme de terminal en informe le périphérique tty, qui envoie un message d'erreur à l'utilisateur. SIGWINCH
aux processus qui lui sont connectés. Les programmes sont chargés de répondre au signal de manière appropriée. Une chose à tester est de savoir si le signal LINES
y COLUMNS
sont mises à jour dans bash lorsque vous redimensionnez la fenêtre du terminal. Si cela fonctionne, c'est que le mécanisme de signal se comporte correctement.
Une autre possibilité est que le programme ne passe pas correctement de l'écran alternatif à l'écran alternatif (ce qui peut être dû au fait qu'un terminfo incompatible a été sélectionné). Vous pouvez vérifier le Affichage > Masquer/Afficher l'écran alternatif pour savoir quel écran est actuellement actif. Si l'écran affiché n'est pas le bon, vous pouvez essayer de le changer manuellement à l'aide de l'élément de menu et voir si cela résout le problème.