2008-10-05 58 views
7

我有256種顏色在我的終端中很好用(test scripts here),但當我使用ncurses(通過Ruby-ncurses)時,它停止工作。打印在該頁面上給出的轉義序列工作正常,但是當我初始化ncurses'puts'停止工作,並且我無法用任何我發現的各種ncurses顏色改變/字符串輸出函數輸出顏色。是什麼賦予了?從ruby-ncurses中獲取256種顏色

回答

5

njsf:你是部分就在這裏,和後修補更多我最終得到它的工作。謝謝你的幫助。故事:XTerm(和rxvt和Eterm)通過轉義序列(我所看到的)支持256種顏色,但'輸出顏色'會說'8',而ncurses將無法獲得它們,因爲ncurses在播放很好並嘗試通過terminfo進行訪問。

對於具有相似痛苦的人的利益:

我發現我需要安裝ncurses的期限(Ubuntu的)包以獲得/ lib中/的terminfo/X/xterm方式256color等256color terminfo的文件。然後,我將TERM設置爲xterm-256color並將'* customization:-color'添加到我的〜/ .Xdefaults中,運行'xrdb -merge〜/ .Xdefaults'加載它,從此我有適當的256色支持新的xterm。

+0

是的,來到這裏建議適當地設置您的終端。對於任何駕駛型讀卡器來說,這也是一個小點。例如Mac OS X Terminal.app僅支持16種顏色,因此您可以在X11上使用iTerm或XTerm,或者忘記它! – ocodo 2011-01-25 03:58:21

7

我不確定這是否是所有的故事,但請確保您的終端功能確實提供了256種顏色描述。

什麼是TERM環境變量值?嘗試將其設置爲xterm-256color並重新運行它。 ncurses應該得到正確的顏色轉義序列。

您還可以測試終端的能力和終端的彩色輸出與我們在SXEmacs開發使用的程序:

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

編譯使用gcc -o TTY的顏色TTY-colors.c -lncurses

編輯: 請注意,只是因爲在網上找到的腳本輸出256色,這不是「全部設置」。 Curses程序依賴terminfo和termcap以及TERM環境變量來找出如何與終端進行交互。 因此,爲了讓curses應用程序能夠使用256色,人們應該將TERM變量設置爲支持256色的現有終端名稱。上述 C程序會告訴你 ncurses的想着你的終端,而不僅僅是輸出最喜歡的腳本xterm的序列做[甚至從X.org一]什麼

2

設置

ENV [ 'TERM'] + = '-256color' 如果ENV [ 'TERM'] == '的xterm' #激活ubuntu上256個色

作品10.04 +