4 votes

Quel terminal l'application Terminal de Mountain Lion émule-t-elle ?

J'ai récemment migré de la version 10.6 à la version 10.8. J'utilise Terminal pour se connecter à diverses boîtes linux où la variable TERM est observée comme étant xterm-color . Cela semble cohérent avec le réglage 10.6 de TERM.

Cependant, depuis la mise à jour, j'ai des problèmes avec mes Terminal Si je les redimensionne à une taille supérieure à 80x24, j'aurai l'occasion d'assister à des séances d'information. Ce qui devrait normalement être de très longues lignes de texte semble s'enrouler sur 80 colonnes. jusqu'à Je redimensionne à nouveau, et l'écran s'affiche alors correctement. En d'autres termes, c'est comme si la largeur était bloquée à la dernière taille (enveloppant tout à la largeur précédente) jusqu'à ce qu'un redimensionnement soit effectué après avoir affiché quelque chose qui s'attendait à une plus grande largeur.

Cela ressemble un peu à l'entrée [n]curses pour xterm-color a été modifié (ce n'est pas le cas) ou que terminal n'est pas vraiment une émulation d'un xterm-color dispositif. Le comportement est différent (peut-être meilleur - je suis encore en train d'évaluer) si l'on spécifie un simple xterm .

Existe-t-il un meilleur réglage pour TERM lorsque l'on utilise le système d'exploitation de Mountain Lion ? Terminal ?

8voto

Chris Page Points 7394

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.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X