Question

J'ai 256 couleurs qui fonctionnent très bien dans mon terminal ( des scripts de test ici ), mais il ne fonctionne plus lorsque j'utilise ncurses (via Ruby-ncurses). L'impression des séquences d'échappement données sur cette page fonctionne bien, mais lorsque j'initialise ncurses, les «commandes» cessent de fonctionner et je ne peux pas imprimer les couleurs avec les différentes fonctions de changement de couleur / chaîne que j'ai trouvées de ncurses. Qu'est-ce qui donne?

Était-ce utile?

La solution 2

njsf: Vous étiez en partie ici et après avoir bricolé beaucoup plus, je l'ai finalement fait fonctionner. Merci de votre aide. L'histoire: XTerm (et rxvt et Eterm) prennent en charge 256 couleurs via des séquences d'échappement (ce que je voyais), mais "tput colors" indiquera "8" et ncurses ne pourra pas les obtenir, car ncurses joue bien. et tenter d'accéder via terminfo.

Pour le bénéfice de tous ceux qui souffrent de la même douleur:

J'ai constaté que je devais installer le paquet ncurses-term (Ubuntu) pour obtenir / lib / terminfo / x / xterm-256color et d'autres fichiers terminfo en 256 couleurs. Ensuite, j'ai défini mon terme TERM sur xterm-256color et ajouté la ligne '* customization: -color' à mon ~ / .Xdefaults, j'ai lancé 'xrdb -merge ~ / .Xdefaults' pour le charger, puis j'ai la couleur 256 appropriée support dans les nouveaux xterms.

Autres conseils

Je ne sais pas si ce sera toute l'histoire, mais assurez-vous que les capacités de votre terminal fournissent bien la description en 256 couleurs.

Quelle est la valeur de la variable d’environnement TERM? Essayez de le définir sur xterm-256color et réexécutez-le. ncurses devrait alors obtenir les séquences d’échappement de couleur appropriées.

Vous pouvez également tester les capacités du terminal et la sortie couleur du terminal avec le programme utilisé lors du développement de SXEmacs:

http://www.triatlantico.org/tmp/tty-colors.c

Compiler avec gcc -o tty-colors tty-colors.c -lncurses

EDIT: Notez que, du fait que les scripts trouvés sur le réseau affichent les 256 couleurs, ils ne sont pas "tous définis". Les programmes curses s'appuient sur terminfo, termcap et la variable d'environnement TERM pour savoir comment interagir avec le terminal. Ainsi, pour qu'une application curses puisse utiliser les 256 couleurs, vous devez définir la variable TERM sur un nom de terminal existant prenant en charge 256 couleurs. Le programme C ci-dessus vous montrera ce que pense ncurses à propos de votre terminal, pas seulement en sortie des séquences xterm comme le font la plupart des scripts [même celui de X.org]

réglage

ENV ['TERM'] + = '-256color' si ENV ['TERM'] == 'xterm' # active 256 couleurs

fonctionne sur Ubuntu 10.04 +

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top