Làm thế nào để bảng màu tmux hoạt động?


120

Tôi đang cố gắng đặt một cái gì đó thành màu xám, nhưng không thể tìm ra cách. Thông tin duy nhất trong trang hướng dẫn về màu sắc tôi có thể tìm thấy là:

message-bg colour
  Set status line message background colour, where colour is one of:
  black, red, green, yellow, blue, magenta, cyan, white, colour0 to
  colour255 from the 256-colour palette, or default.

Tôi cũng tìm thấy một bài đăng trên blog mà lặp đi lặp lại qua các màu sắc, nhưng tôi không thể mò mẫm nó, và không muốn ngồi ở thiết bị đầu cuối cả ngày để đoán số màu cho đến khi một cái hoạt động.

Câu trả lời:


199

Bạn có thể nhận được một danh sách với điều này bash đoạn trích:

for i in {0..255}; do
    printf "\x1b[38;5;${i}mcolour${i}\x1b[0m\n"
done

Sau đó sử dụng colourxxx với tmux.


18
sử dụng $ reset để lấy lại màu nhắc của bạn: & gt;
lkraav

có lẽ bạn cần ba chữ số màu? Kịch bản này xuất ra như color12 nhưng điều đó không được tmux chấp nhận là màu hợp lệ.
artfulrobot

6
Của tôi tmux (1.6) chấp nhận ngay cả các màu như colour12 (nhớ "u").
cYrus

1
Câu trả lời này vẫn hữu ích! Giúp tôi chọn màu tôi muốn.
asfallows

6
Chúa ơi! Một cầu vồng trên thiết bị đầu cuối của tôi. Chỉ trong thời gian để kỷ niệm bình đẳng hôn nhân ở Mỹ!
garbelini

55

Tôi tìm thấy hình ảnh này để được khai sáng.

enter image description here


12
Bạn có thể tạo nó với for i in {0..255}; do printf "\x1b[38;5;${i}mcolor%-5i\x1b[0m" $i ; if ! (( ($i + 1 ) % 8 )); then echo ; fi ; done
12431234123412341234123

20

Trong Subversion (sẽ là tmux 1.5), bạn cũng có thể sử dụng các màu theo kiểu hex #abcdef được ánh xạ tới mục nhập bảng màu 256 gần nhất. Bạn cần dấu ngoặc kép vì nó được coi là một chuỗi, trong khi các tên màu thông thường được coi là hằng số được đặt tên. Cũng lưu ý rằng tốc ký 3 ký tự (# f00) không hợp lệ.

Thí dụ:

set pane-active-border-bg red # no quotes for name
set pane-active-border-bg "#ff0000" # quotes for rgb

1
Bạn có thể? Tôi không thể thấy cách ...
Eric

5
tùy chọn cài đặt tin nhắn-bg "#abcdef"; các trích dẫn là cần thiết.
chepner

Bạn dường như cũng phải sử dụng 6 ký tự hex đầy đủ, không có 3 phím tắt char, tức là #fff sẽ không hoạt động, bạn phải sử dụng #ffffff
bschlueter



3

Dựa trên câu trả lời của @cYrus, tôi đã viết một tập lệnh để chia đầu ra của các màu thành N số cột, trong đó N là đối số đầu tiên

# colors.sh

#!/bin/bash
if [ -z $1 ]; then
    BREAK=1
else
    BREAK=$1
fi
for i in {0..255} ; do
    printf "\x1b[38;5;${i}mcolour${i} \t"
    if [ $(( i % $BREAK )) -eq $(($BREAK-1)) ] ; then
        printf "\n"
    fi
done

Hãy thử nó bằng cách lưu nó vào một tệp có tên colors.sh, sau đó ./colors.sh 4

Đừng quên chmod +x colors.sh Đầu tiên.


2
Kịch bản hiển thị-256-colors.sh có thể hữu ích để hiển thị màu nền là tốt.
Maxim Suslov
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.