Bagaimana cara kerja palet warna tmux?


140

Saya mencoba untuk mengatur sesuatu menjadi abu-abu, tetapi tidak tahu caranya. Satu-satunya info di halaman manual tentang warna yang dapat saya temukan adalah:

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.

Saya juga menemukan posting blog yang beralih melalui warna, tapi saya tidak bisa mengerti, dan tidak ingin duduk di terminal sepanjang hari menebak angka warna sampai satu berfungsi.

Jawaban:


223

Anda bisa mendapatkan daftar dengan bashcuplikan ini :

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

Kemudian gunakan colourxxxdengan tmux.


18
gunakan $ reset untuk mendapatkan kembali warna prompt Anda:>
lkraav

mungkin Anda membutuhkan tiga digit warna? Script ini menghasilkan seperti color12tapi itu tidak diterima oleh tmux sebagai warna yang valid.
artfulrobot

6
My tmux(1.6) menerima warna genap seperti colour12(mind the "u").
cYrus

1
Jawaban ini masih membantu! Membantu saya memilih warna yang saya inginkan.
asfallows

6
ya Tuhan! Pelangi di terminal saya. Tepat pada waktunya untuk merayakan kesetaraan pernikahan di AS!
garbelini

75

Saya menemukan gambar ini mencerahkan.

masukkan deskripsi gambar di sini


16
Anda dapat membuatnya denganfor i in {0..255}; do printf "\x1b[38;5;${i}mcolor%-5i\x1b[0m" $i ; if ! (( ($i + 1 ) % 8 )); then echo ; fi ; done
12431234123412341234123

22

Dalam Subversion (apa yang akan menjadi tmux 1.5) Anda juga dapat menggunakan warna #abcdef hex-style yang dipetakan ke entri palet 256 warna terdekat. Anda perlu mengutip karena diperlakukan sebagai string, sedangkan nama warna biasa diperlakukan sebagai konstanta bernama. Perhatikan juga steno 3 huruf (# f00) tidak valid.

Contoh:

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

1
Bisakah kamu? Saya tidak bisa melihat bagaimana ...
Eric

5
set-option message-bg "#abcdef"; Kutipan diperlukan.
chepner

Anda juga tampaknya harus menggunakan 6 karakter hex penuh, tidak ada 3 pintas char yaitu #ffftidak akan berfungsi, Anda harus menggunakan#ffffff
bschlueter



6

Membangun jawaban @cYrus, saya menulis sebuah skrip untuk memecah keluaran warna menjadi sejumlah N kolom, di mana N adalah argumen pertama

# 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

Cobalah dengan menyimpannya ke file bernama colors.sh, lalu ./colors.sh 4

Jangan lupa chmod +x colors.shdulu.


3
Script show-256-colors.sh dapat berguna untuk menampilkan warna latar belakang juga.
Maxim Suslov

Anda harus secara default mengatakan, setidaknya 4 kolom, untuk membedakannya dari skrip asal.
dbkeys
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.