Yanıtlar:
Kırmızı bilgi isteminin nasıl ayarlanacağına ilişkin bir örnek:
PS1=$'\e[0;31m$ \e[0m'
Sihir \e[0;31m
(kırmızı ön planı aç) ve \e[0m
(karakter özelliklerini kapat). Bunlara kaçış dizileri denir. Farklı kaçış dizileri size mutlak imleç konumlandırmasından renge, pencerenizin başlık çubuğunu değiştirebilmenize kadar farklı sonuçlar verir.
Kaçış dizileri hakkında daha fazla bilgi için , ANSI kaçış kodlarındaki wikipedia girişine bakın .
Bunu yaz ~/.zshrc
:
autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "
Desteklenen Renkler:
red
, blue
, green
, cyan
, yellow
, magenta
, black
, & white
(gelen bu yanıt ) farklı bilgisayarlar farklı geçerli seçenekler olabilir rağmen.
Renk kodlarını (ve diğer yazdırılamayan karakterleri) %{....%}
. Bu, metin kaydırmanın doğru çalışması içindir.
Ayrıca, burada bu dizin-kırparak ile çalışmak için böyle ulaşır burada .
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%(5~|%-1~/.../%3~|%4~) %{$reset_color%}%% "
zsh: colors: function definition file not found
%{...%}
dizisi baskı sırasında imlecin hareket olmayacak kadar içeriği değişmez bir çıkış dizisi olarak yorumlanacaktır olduğu anlamına gelir. Bunu kullanmazsanız, renk kodları aslında imleci hareket ettirebilir ve istenmeyen etkiler yaratabilir. Bu, zshmisc kılavuz sayfasındakiVisual Effects
bölümde belgelenmiştir
Zsh, yerleşik renkli istemlerle birlikte gelir. Deneyin
autoload -U promptinit && promptinit
ve sonra prompt -l
mevcut istemleri listeler -p fire
, "ateş" isteminin önizlemesini yapar, -s fire
onu ayarlar.
Bir istem eklemeye hazır olduğunuzda yukarıdaki otomatik yükleme satırının altına şuna benzer bir şey ekleyin:
prompt fade red
Artık buna autoload -U colors && colors
ihtiyaç olduğunu düşünmüyorum ve biri basitçe yapılabilir:
PS1="%{%F{red}%}%n%{%f%}@%{%F{blue}%}%m %{%F{yellow}%}%~ %{$%f%}%% "
FireDude'un cevabıyla aynı sonucu elde etmek için . Daha fazla bilgi için ZSH belgelerine bakın .
autoload -U colors && colors
autoload
üzerinde çalışması daha olası .
autoload on
?
autoload -U colors
, bu, dağıtımınızın başka bir zsh başlatma dosyasında zaten bulunduğu anlamına gelir. Başkalarıyla paylaşmak istediğiniz komut dosyalarına yine de eklemelisiniz.
for i in {1..256}; do print -P "%F{$i}Color : $i"; done;
%F{118}
(1 ila 256)$FG[018]
(1 ila 256)$fg[magenta]
(macenta, kırmızı, beyaz, sarı, siyah, mavi, camgöbeği, yeşil)PS1='%(?.%F{green}.%F{green})%n@%m:%~%# %f'
PS1='%{$fg[gray]%}[%T][%n@%m%{$reset_color%}:%c%{$reset_color%}%{$fg[gray]%}$(git_prompt_info)]$(prompt_char)%{$reset_color%} '
Değişken tanımının (PS1 / PROMPT) eklenmesi gerekir ~/.zshrc
Hemen test etmek için mevcut komut isteminde PS1 değişkenini yeniden tanımlayabiliriz (değişiklikler kaydedilmez).
Yukarıdaki Bryan Oakley'nin cevabı, daha önce de belirtildiği gibi ve Andrew Marshall tarafından sunulan çözümde aksaklıkları taşımamasına rağmen, yine de kullanılan renkler üzerinde çok fazla özelleştirme yapılmasını açık hale getirmiyor.
MacOS Catalina bundan sonra zsh'nin varsayılan kabuk olmasını istediğinden, birkaç kişinin istemlerini özelleştirmek isteyebileceğini ve bir cevap için buraya gelebileceğini düşünüyorum. Bu yüzden, daha geniş bir özet vermeye ve daha fazla özelleştirmeye izin veren çok yakından ilişkili diğer kavramlara değinmeye çalışacağımı düşündüm.
Çeşitli Renkler için 3 Haneli Kodlar. Öncelikle, burada çeşitli renkler için 3 basamaklı kodlar bulabiliriz: https://unix.stackexchange.com/a/124409/194343 . Örneğin, 214 bir çeşit turuncu renktir.
Ön Plan ve Arka Plan. Diğer önemli bilgi, F oreground ve bac K zemin renkleri için, sırasıyla F ve K ile istediklerini tanımlayabilmesidir . Kaynak, görsel efektlerle ilgili zsh kılavuzudur: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Visual-effects
Örneğin, aşağıdaki iki komut
autoload -U colors && colors
export PS1="%F{214}%K{000}%m%F{015}%K{000}:%F{039}%K{000}%~%F{015}%K{000}\$ "
ana bilgisayar adını siyah arka planlı turuncu renkte, ardından siyah arka planlı beyaz iki nokta üst üste, ardından siyah arka planlı parlak mavi geçerli çalışma dizinini ve ardından siyah arka planlı beyaz dolar işaretini sunun.
Daha fazla ilgili bilgi aşağıda bulunur.
Sağ tarafta bilgi istemi. Örneğin, bir zaman damgası eklemek. Bkz https://superuser.com/a/1251045/290299 . Elbette bu renk kodlu olabilir, örneğin bazı açık mavi / morumsu bir renkle, şöyle:
RPROMPT="%F{111}%K{000}[%D{%f/%m/%y}|%@]"
Renkler ls
. Ls için kılavuzu okuduktan sonra, örneğin ls
aşağıdaki iki komutu kullanmak için renkleri etkinleştirebilirsiniz :
export CLICOLOR=1
export LSCOLORS=gafacadabaegedabagacad
Son olarak, yapılandırmamdan memnun olduğum için test etmediğime dair son bir açıklama olarak, başka bir yol, birisinin bağlantı coreutils
noktasını MacPorts'tan kurması ve sonra kullanması olabilir gdircolors
(kaynak: https://unix.stackexchange.com/a/174596 / 194343 ). (Yukarıdakilerin tümü günlük hayatı çok daha eğlenceli ve başa çıkmayı kolaylaştıran ilgili parçalar olduğundan, bu son bölümü gelecekte düzenleyebilirim.)
Zsh5 (Debian Jessie'de varsayılan olan) ile tüm bu çözümlerin çalıştığını buldum:
$'\e[00m
$fg[white]
$fg{white}
Şimdi, bir problemleri var: İmleci hareket ettirecekler ve sekme sırasında çirkin bir çıkartmaya neden olacaklar (otomatik tamamlama için). Çözüm basitçe kaçış dizilerini çevrelemektir %{FOOBAR%}
. Bunu anlamam biraz zaman aldı. 2. ve 3. çözümler için yükleme colors
modülü zorunludur. 1. çözümü okunabilir tutmak için, kullandığınız renkler için değişkenler tanımlamanız yeterlidir.
Son komutun çıkış durumuna bağlı olarak bir renk istemi almak için şunu kullanabilirsiniz:
PS1='%(?.%F{green}.%F{red})%n@%m:%~%# %f'
Sadece bu satırı ~/.zshrc
.
Dokümantasyon olası tutucuları listeler.
Favorimi dene: koy
~/.zshrc
bu hat:
PROMPT='%F{240}%n%F{red}@%F{green}%m:%F{141}%d$ %F{reset}'
unutma
source ~/.zshrc
değişiklikleri test etmek için
tabii ki renkleri / renk kodlarını değiştirebilirsiniz :-)
man zshall ve hızlı genişleme için arama
Buradaki mevcut cevapları okuduktan sonra, birkaçı çelişkili. Zsh 4.2 ve 5+ çalıştıran sistemlerde çeşitli yaklaşımları denedim ve bu yanıtların çelişkili olmasının nedeninin, ZSH'nin hangi sürümünü hedeflediklerini söylememeleri olduğunu gördüm. Farklı sürümler bunun için farklı sözdizimi kullanır ve bazıları çeşitli otomatik yüklemeler gerektirir.
Bu nedenle, en iyi bahis muhtemelen zshall'a bakmak ve sizin özel zsh kurulumunuz için tüm kuralları bulmak için İSTENMELİ GENİŞLETME'yi aramaktır. Yorumlarda, "Ubuntu 11.04 veya 10.4 veya OSX kullanıyorum" gibi şeyler, ZSH'nin hangi sürümünü kullandığınız belirsiz olduğundan çok anlamlı değildir. Ubuntu 11.04, ubuntu 10.04'ten daha yeni bir ZSH sürümü anlamına gelmez. Daha eski bir sürümün kurulmasının birçok nedeni olabilir. Bu nedenle ZSH'nin daha yeni bir sürümü, ZSH'nin hangi sürümü olduğunu bilmeden hangi sözdiziminin kullanılacağı anlamına gelmez.
Yukarıdaki yanıtların tümünü tamamlamak için başka bir kullanışlı numara, renkli komut istemi ayarlarını bir zsh işlevine yerleştirmektir. Orada, daha uzun komutlara takma ad vermek için yerel değişkenler tanımlayabilir, örneğin rc=$reset_color
kendi renk değişkenlerinizi tanımlayabilirsiniz. .zshrc
Dosyanıza yerleştirmeyi ve tanımladığınız işlevi çağırmayı unutmayın :
# Coloured prompt
autoload -U colors && colors
function myprompt {
local rc=$reset_color
export PS1="%F{cyan}%n%{$rc%}@%F{green}%m%{$rc%}:%F{magenta}%~%{$rc%}%# "
}
myprompt