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 colors
nó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 colors
cho 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. $TERM
nói xterm
. (Để có màu ls
tô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 256
cờ 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 tmux
cung cấp kết quả "sai" dự kiến.
Nhưng gọi tmux
bằng -2
cờ 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 -2
là 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 xterm
cho 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 xterm
cung 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-dark
và 256dark
sau đó là phối màu mặc định ( Tango ) dircolor
ansi-dark
và 256dark
.
Quan sát : trên lý thuyết, bảng màu dircolor
ansi-dark
trê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 256dark
màu sắc.
Kết luận sơ bộ
xterm
hỗ trợ 256 màu, bất chấp những gì tput colors
nói. Các chương trình có thể tham khảo ansi
bả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 colors
là 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 colors
chỉ 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ì?