ZShell'de 16 Renk


11

Zshell istemimde sadece 8 rengi arayabiliyor gibiyim.

Misal:

PROMPT="[%n@%{$fg[magenta]%}%m%{$reset_color%} %.]
%# "

İyi çalışıyor. Ancak,

PROMPT="[%n@%{$fg[brmagenta]%}%m%{$reset_color%} %.]
%# "

Çalışmıyor. Temel olarak, "parlak" renk varyasyonlarının hiçbiri görünmez.

Biraz araştırma yaptıktan sonra, zsh'ın renklerinin "renkler" setopt tarafından çağrıldığını gördüm.

echo ${(o)color}

bu çıktıyı verir:

00 01 02 03 04 05 07 08 22 23 24 25 27 28 30 30 30 30 31 31 32 32 33 33 34 34 35 35 36 36
37 37 39 39 40 40 41 42 43 44 45 46 47 49 bg-black bg-blue bg-cyan bg-default bg-green
bg-magenta bg-red bg-white bg-yellow black blink blue bold conceal cyan default faint green
magenta no-blink no-conceal no-reverse no-standout no-underline none normal red reverse
standout underline white yellow

Gördüğünüz gibi, sadece standart 8 renk mevcuttur. Ben de varsayılan metin rengi olarak çıkış bırakın "bg-" varyantları kullanmayı denedim.

Sağlayabileceğiniz herhangi bir yardım çok takdir edilecektir. Elbette, normal renklerden birini kullanabilirdim, ama sonra hiçbir şey öğrenemezdim!

Yanıtlar:


9

Hangi terminal emülatörünü kullanıyorsunuz? Desteklenen renk sayısını çalıştırarak kontrol edebilirsiniz echotc Co. Örneğin, urxvt88 rengi desteklerim, ancak xtermsadece 8'i destekler ve parlak varyasyonlar dahil değildir.

Eğer çalıştırırsam urxvt:

# Dark magenta/violet:
PS1="[%F{34}%n%F{reset}@%F{magenta}%m%F{reset} %.] " 
# Bright Thistle purple:
PS1="[%F{54}%n%F{reset}@%F{magenta}%m%F{reset} %.] "

Kaynaklar: man zshall


4

Bahsettiğiniz tüm “renkler” sadece bir formdaki kaçış dizileridir \e[{color_code}m. Zsh işlevi colors, insan tarafından okunabilen renk adlarını terminal çıkış sıralarına eşleyen birkaç zsh ilişkisel dizi değişkeni eklemekten başka bir şey yapmaz. Böylece doğrudan

PS1=%{$'\e[54m'%}...

veya @Mischa Arefiev'in cevabını deneyin, daha okunabilir. Kaçış dizilerinin herhangi bir kabukta çalıştığını, ancak inşaatların %F{54}...sadece zsh olarak çalıştığını unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.