Linux: renklendirme komut istemini satırbaşını kıracak


24

Bilgi bashistemini bu şekilde renklendirmeye çalıştığımda :

export PS1="\e[0;31m[\u@\h \W]\$ \e[m "

satırbaşını keser (satır dolduğunda yeni bir satıra gitmek yerine, aynı satırda başlar ve giriş metnini siler).

Renk sırasını kaldırırsam iyi çalışıyor.
Ubuntu 11.10 ve terminal kullanıyorum (guake'de de aynı hata var).


Garip. RedHat 5 ve Mac OS X'te herhangi bir sorun olmadan çalışır
Matteo

Yanıtlar:


42

Sen arasındaki tüm çıkış sıralarını kaydırmak zorundadır \[ve \]doğru istemi en görünür uzunluğunu hesaplamak için 'taleb' için sırayla. Bunlar olmadan, 'readline' istemin ondan daha uzun olduğunu düşünüyor ve metnin marja ulaştığını bilmiyor.

PS1 = " \ [ \ e [; 31m \] [\ u @ \ h \ W] \ $ \ [ \ e [m \] "

4
Bir ton teşekkürler! resmi belgelerde bazı belgeler bulmaya çalışıyordum ama bulamadım - 'hisse senedi' renk istemi bu 'numarayı kullanıyor' ve ilk başta tam olarak ne için olduğunu bulmakta zorlandım. up --- btw, aslında 684 satırındaki 'man readline 3' belgesindeki dokümantasyon kaynağını buldum ve bu dokümantasyonun nerede olduğunu bilmek isteyenler için aslında buna "skip-csi-array" deniyor. Bağlantı kurmadan önce başarısız olmama rağmen beni okuma çizgisine (3) işaret etmeden bulmuş olacağımı sanmıyorum.
osirisgothra

"Wrap" ne anlama geliyor? Eğer her şeyi sarmak anlamına mı İÇİNDE bir \[, \]? Sanırım öyle, ama benim için çalışıyor gibi görünmüyor.
Max Howell

2
@ osirisgothra: Belgeler aslında farklı bir şeyden bahsediyor - özel tuşlar tarafından üretilen giriş dizilerini skip-csi-sequencebastırmak için .
Grawity

1
@ MaxHowell \e[xxmtüm diziyi değil, her diziyi sarmanız gerekir .
Enrico

Teşekkürler. Benim durumumda ben sadece değiştirilir \e[39mile \[\e[;39m\]ve gayet iyi çalışıyor
Herrgott

1

[ve] ipucu da OS X 10.8.2'de bash üzerinde çalıştı.

Kullanırım:

PS1 = "[\ e [0; 37m \ W \ $ (git şube 2> / dev / null | grep -e '*' | sed 's / ^ .. (. *) / {\ 1} /') \ $ \ e [m] "

bu bana şu an kullandığım git şubesini gösteriyor.


"__Git_ps1" hakkında bir şey biliyor musunuz?
rafak

nopes. Ne büyülü şey yapacak?
taş meyvesi
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.