2008-10-05 6 views
7

У меня 256 цветов, отлично работающих на моем терминале (test scripts here), но он перестает работать, когда я использую ncurses (через Ruby-ncurses). Печать escape-последовательностей, заданных на этой странице, отлично работает, но когда я инициализирую работу ncurses «puts» перестает работать, и я не могу вывести цвета с помощью любой из различных функций изменения цвета/вывода строк ncurses, которые я нашел. Что дает?Получение 256 цветов из ruby-ncurses

ответ

5

njsf: Вы были частично здесь, и после того, как возиться гораздо больше, я в конечном итоге получил его на работу. Спасибо за вашу помощь. История: XTerm (и rxvt и Eterm) поддерживают 256 цветов с помощью управляющих последовательностей (что я видел), но «цвета tput» будут говорить «8», и ncurses не смогут их получить, потому что ncurses играет хорошо и пытается получить доступ через terminfo.

В пользу тех, кто с подобной болью:

я обнаружил, что нужно установить Ncurses перспективу пакет (Ubuntu), чтобы получить/Библиотеку/Terminfo/х/XTERM-256-цветной и другие файлы Terminfo 256-цветной , Затем я установил свой TERM на xterm-256color и добавил строку '* customization: -color' в мои файлы ~/.Xdefaults, запустил 'xrdb -merge ~/.Xdefaults', чтобы загрузить его, и с этого момента у меня есть собственный цвет 256 поддержка новых xterms.

+0

Yep , пришел сюда, чтобы предложить правильную настройку вашего терминала. Кроме того, это может быть бит для чтения с любого диска. Mac OS X Terminal.app, например, поддерживает только 16 цветов, поэтому вы либо используете iTerm, либо XTerm на X11, либо забудьте об этом! – ocodo 2011-01-25 03:58:21

7

Я не уверен, что это будет вся история, но убедитесь, что ваши возможности терминала действительно обеспечивают 256 цветов.

Какова ценность переменной среды TERM? Попробуйте установить его на xterm-256color и повторите его. ncurses должны затем получить правильные последовательности выделения цвета.

Вы также можете проверить возможности терминала и вывод цветов терминала с программой мы используем при разработке SXEmacs:

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

Compile с GCC -o TTY-цвет TTY-colors.c -lncurses

EDIT: Обратите внимание, что только потому, что скрипты, найденные в сети, выводят 256 цветов, которые не «все установлены». Программы Curses полагаются на terminfo и termcap и переменную среды TERM, чтобы узнать, как взаимодействовать с терминалом. Итак, чтобы приложение curses могло использовать 256 цветов, нужно установить переменную TERM в существующее имя терминала, которое поддерживает 256 цветов. Программа C выше покажет вам, что Ncurses думает о вашем терминале, а не просто выходной XTERM последовательности, как и большинство сценариев делать [даже один из X.org]

2

установка

ENV [ 'TERM'] + = '-256color', если ENV [ 'TERM'] == '' XTERM # активировать 256 цветов

работает на Ubuntu 10.04 +

Смежные вопросы