Giới thiệu
Câu hỏi của tôi xuất phát từ sự cần thiết phải hiểu lý do tại sao bây giờ tôi (sau nhiều thử nghiệm) Terminal và tmux hỗ trợ 256 màu và tput colorsnói với tôi rằng chỉ có 8 trong số chúng.
Lý lịch
Hãy bắt đầu từ đầu.
Tôi đang sử dụng hộp Ubuntu , Guake , tmux , Vim và tôi thích chủ đề Solarized . Chúng trông khá khủng khiếp, vì vậy tôi quyết định kích hoạt hỗ trợ 256 màu và chơi một chút.
Hãy xem điều gì xảy ra với Terminal của tôi . tput colorscho biết có 8 màu. Cá nhân tôi đặt chúng thành màu tím, bên trái và tất nhiên bên phải chúng tôi có 2 màu xanh khác nhau. $TERMnói xterm. (Để có màu lstôi eval này trong của tôi .bashrc.)

Vim cũng có vẻ ổn, mặc dù thực tế là tôi gọi nó bằng 256cờ trong môi trường không hỗ trợ 256 màu .
set t_Co=256
let g:solarized_termcolors=256
colorscheme solarized
Anh chàng duy nhất phàn nàn về không gian màu giảm là tmux . Gọi điện tmuxcung cấp kết quả "sai" dự kiến.

Nhưng gọi tmuxbằng -2cờ làm cho mọi thứ hoạt động tốt, kỳ diệu .

Bây giờ điều duy nhất mà tôi hiểu -2là tương đương với export TERM=screen-256color( nguồn ).
Guake hành xử tương tự với Terminal và cả hai đều trả lời xtermcho câu hỏi echo $TERM.
Câu hỏi
Về cơ bản, có ai hiểu tại sao mọi thứ hoạt động ngay cả khi nó không nên?
- Tôi có buồn bã rằng tôi phàn nàn tại sao mọi thứ hoạt động? Có lẽ.
- Có một lý do tốt hơn? Chắc chắn: Tôi muốn sửa sự xuất hiện của các hộp Ubuntu khác trong văn phòng của mình và tôi muốn hiểu tại sao mọi thứ hoạt động hoặc không hoạt động.
Thí nghiệm bổ sung
Chạy tập lệnh này (sửa đổi một chút) trên tôi xtermcung cấp kết quả sau: 256 màu, nhưng chỉ có 16 màu được hiển thị chính xác.

Sau đó, thay đổi hồ sơ của thiết bị đầu cuối, 16 màu này cũng thay đổi.

Nhiều bài kiểm tra đang theo sau.
Từ trái sang phải, từ trên xuống dưới, chúng ta có chủ đề màu Solarized , dircolor ansi-darkvà 256darksau đó là phối màu mặc định ( Tango ) dircolor ansi-darkvà 256dark.

Quan sát : trên lý thuyết, bảng màu dircolor ansi-darktrên Solarized phải phù hợp chặt chẽ với dircolor 256dark. Điều này không rõ ràng xảy ra cho các tập tin được liệt kê cụ thể. Thay vào đó, điều này khá xảy ra khi trong thư mục làm việc có các thư mục , tệp văn bản và các liên kết tượng trưng . Kết luận : không chú ý nhiều như đã được trả tiền trong khi mã hóa 256darkmàu sắc.
Kết luận sơ bộ
xtermhỗ trợ 256 màu, bất chấp những gì tput colorsnói. Các chương trình có thể tham khảo ansibảng màu (người dùng có thể tùy chỉnh) hoặc xác định màu sắc của chúng, chọn từ tổng số 256 màu.
tput colorslà một bài kiểm tra không đáng tin cậy. Bạn có thể kiểm tra kết luận sơ bộ của tôi ?
tput colorschỉ có thể trả về một giá trị và trong các thiết bị đầu cuối hỗ trợ bất kỳ 2,8,16,88 hoặc 256 màu, chỉ có giá trị đầu tiên (8 trong trường hợp của bạn) được trả về. Để có được giá trị thực sự, hãy sử dụng tập lệnh từ bình luận cuối cùng của tôi. Điều đó trở lại là gì?
vui lòng nhấp chuột phải / xem hình ảnh để kiểm tra ở độ phân giải đầy đủ
bản đồ tham chiếu dircolors "xuống cấp"