2008-10-05 10 views
7

Tengo 256 colores funcionando perfectamente en mi terminal (test scripts here), pero deja de funcionar cuando uso ncurses (a través de Ruby-ncurses). Imprimir las secuencias de escape dadas en esa página funciona bien, pero cuando inicializo ncurses 'puts' deja de funcionar y no puedo mostrar los colores con cualquiera de las diversas funciones ncurses de cambio de color/salida de cadena que he encontrado. ¿Lo que da?Obteniendo 256 colores de ruby-ncurses

Respuesta

5

njsf: Usted fue parcialmente aquí, y después de jugando mucho más Eventualmente lo conseguí. Gracias por tu ayuda. La historia: XTerm (y rxvt, y Eterm) admiten 256 colores a través de secuencias de escape (lo que estaba viendo) pero 'tput colors' dirá '8' y ncurses no podrá acceder a ellos, porque ncurses está jugando bien e intentando acceder a través de terminfo.

Para el beneficio de cualquier persona con un dolor similar:

He encontrado que necesito para instalar el paquete ncurses plazo (Ubuntu) para obtener/lib/terminfo/x/xterm-256color y otra 256color terminfo archivos . Luego establecí mi TERM en xterm-256color y agregué la línea '* customization: -color' a mis ~/.Xdefaults, ejecuté 'xrdb -merge ~/.Xdefaults' para cargarlo, y desde entonces tengo 256 colores adecuados soporte en nuevos xterms.

+0

Sí , vino aquí para sugerir la configuración adecuada de su terminal. También es un tid-bit para los lectores drive-by. Mac OS X Terminal.app, por ejemplo, solo admite 16 colores, por lo que puedes usar iTerm o XTerm en X11 o ¡olvídalo! – ocodo

7

No estoy seguro de si esta sería toda la historia, pero asegúrese de que las capacidades de su terminal sí proporcionan la descripción de 256 colores.

¿Cuál es el valor de variable de entorno TERM? Intente configurarlo en xterm-256color y vuelva a ejecutarlo. ncurses debería obtener las secuencias de escape de color adecuadas.

También puede probar las capacidades del terminal y terminal de salida de color con el programa que utilizamos en el desarrollo SXEmacs:

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

compilar con gcc -o TTY TTY-colores-colors.c -lncurses

EDITAR: Tenga en cuenta que solo porque los scripts que se encuentran en la red generan 256 colores, eso no está "todo listo". Los programas de maldiciones dependen de terminfo y termcap y de la variable de entorno TERM para averiguar cómo interactuar con el terminal. Para que una aplicación de curses pueda usar 256 colores, se debe establecer la variable TERM en un nombre de terminal existente que admita 256 colores. El programa C por encima le mostrará lo ncurses piensa en su terminal, no sólo las secuencias de salida xterm como la mayoría de los guiones hacen [incluso la de X.org]

2

establecer

ENV [TERM] + = '-256color' si ENV [ 'TERM'] == 'xterm' # activan 256 colores

obras en ubuntu 10.04 +