2008-10-05 37 views
7

Tôi có 256 màu làm việc tốt trong thiết bị đầu cuối của mình (test scripts here), nhưng nó ngừng hoạt động khi tôi sử dụng ncurses (thông qua Ruby-ncurses). In các trình tự thoát được đưa ra trên trang đó hoạt động tốt, nhưng khi tôi khởi tạo, lệnh 'ncurses' ngừng hoạt động và tôi không thể xuất màu bằng bất kỳ chức năng thay đổi chuỗi/thay đổi màu nào khác mà tôi đã tìm thấy. Đưa cái gì?Lấy 256 màu ra khỏi ruby-ncurses

Trả lời

5

njsf: Bạn là một phần ngay tại đây, và sau tinkering nhiều hơn tôi cuối cùng đã nhận nó để làm việc. Cảm ơn bạn đã giúp đỡ. Câu chuyện: XTerm (và rxvt, và Eterm) hỗ trợ 256 màu sắc thông qua các trình tự thoát (những gì tôi nhìn thấy) nhưng 'màu trị liệu' sẽ nói '8' và ncurses sẽ không thể nhận được chúng, bởi vì ncurses đang chơi đẹp và cố truy cập qua terminfo.

Để tiện lợi hơn bất cứ ai có đau tương tự:

tôi thấy tôi cần phải cài đặt ncurses hạn gói (Ubuntu) để có được/lib/terminfo/x/xterm-256color và 256color khác terminfo file . Sau đó, tôi đặt TERM của tôi thành xterm-256color và thêm dòng '* customization: -color' vào ~/.Xdefaults của tôi, chạy 'xrdb -merge ~/.Xdefaults' để tải nó, và từ đó tôi có 256 màu phù hợp hỗ trợ trong xterms mới.

+0

Yep , đến đây để đề nghị thiết lập thiết bị đầu cuối của bạn đúng cách .. Cũng là một chút-bit cho bất kỳ ổ đĩa của độc giả. Ví dụ, Mac OS X Terminal.app chỉ hỗ trợ 16 màu, vì vậy bạn có thể sử dụng iTerm hoặc XTerm trên X11 hoặc quên nó! – ocodo

7

Tôi không chắc chắn nếu điều này sẽ là tất cả các câu chuyện, nhưng chắc chắn rằng khả năng thiết bị đầu cuối của bạn thực sự cung cấp cho các mô tả 256 màu sắc.

Giá trị biến môi trường TERM là gì? Thử đặt nó thành xterm-256color và chạy lại nó. ncurses sau đó sẽ nhận được trình tự thoát màu phù hợp.

Bạn cũng có thể kiểm tra khả năng thiết bị đầu cuối và đầu ra màu thiết bị đầu cuối với chương trình chúng tôi sử dụng tại phát triển SXEmacs:

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

Compile với gcc -o tty-màu tty-colors.c -lncurses

EDIT: Lưu ý rằng chỉ vì các tập lệnh được tìm thấy trên đầu ra ròng 256 màu, đó không phải là "tất cả các thiết lập". Các chương trình nguyền rủa dựa vào terminfo và termcap và biến môi trường TERM để tìm hiểu cách tương tác với thiết bị đầu cuối. Vì vậy, để ứng dụng curses có thể sử dụng 256 màu, bạn nên đặt biến TERM thành tên thiết bị đầu cuối hiện có hỗ trợ 256 màu. Chương trình C trên sẽ cho bạn thấy những gì ncurses nghĩ về thiết bị đầu cuối của mình, không chỉ là đầu ra trình tự xterm giống như hầu hết các kịch bản làm [thậm chí một từ X.org]

2

thiết

ENV [ 'TERM'] + = '-256color' nếu ENV [ 'TERM'] == 'xterm' # kích hoạt 256 màu

công trình trên ubuntu 10.04 +