2011-09-25 13 views
6

Terminalim'in istemini renklendirirken can sıkıcı bir hata buldum. Başka bir deyişleTerminalde renkler ayarlanması garip karakter satır sınırına yol açar

enter image description here

, benim satır: Ben giriş satırında bazı boyut olsun kırmak için

export PS1='\e[1;34m[\e[0;31m\D{%Hh%M} \e[0;32m\u\e[[email protected]\e[0;35m\h\e[0m:\e[0;36m\w\e[1;34m]\e[0m $ ' 

o zaman başlar

gibi renkli bir birine benim istemi, ayarlarsanız bir sınır ulaşır, kendi üzerinden başlıyor! Aynı çizgiyi tekrar doldurduğumda, bir sonraki çizgiye doğru gidiyor.

Bu problemi de gören var mı? Bir çözümün var mı? Sorun da iTerm'de gerçekleşir.

+1

Sizin sözdiziminiz iğrenç. Lanetli bakışta, hepsini kapatmak için ($ 'den önce) bir sabit ayraç yok. Başka problemler var. Baştan başlamanı öneririm. İşte renklendirme için bir kılavuz: http://www.ibm.com/developerworks/linux/library/l-tip-prompt/ –

+1

Yan not: İstemi özelleştirirken, gerçek dolar işareti yerine '\ $' kullanın. Bash, uygun komut istemi karakterini gösterecektir (normal kullanıcılar için '$', 'root için #'). –

+0

Başka bir stil ipucu: sabit kod kaçış dizileri yok (çoğu insanın farkına varıyorum, ama yapmamalılar). Bunun yerine, geçerli terminal için uygun kodları yaymak için 'tput' komutunu kullanın, böylece çeşitli terminallerle uygun şekilde çalışır. Özellikle, terminalin kafasını karıştıran karakterleri yaymak yerine, terminalin istemcinizdeki renkleri/stilleri desteklememesi durumunda hiçbir şey çıkmaz. ör., PS1 = "\ [$ (tput setaf 1) \] \ h: \ W \ [$ (tput sgr0) \] \ u \ $" 'ana bilgisayar adını ve çalışma dizinini kırmızı olarak gösterecektir. –

cevap

5

Bu, StackOverflow ürününün Mac Terminal.app annoying bug - How to fix it? kopyasıdır. Sorun, terminal denetim karakterlerini \[ … \] köşeli parantez içinde çevrelemeniz gerektiğinden, komut isteminin uzunluğunu hesaplarken bash kabuğu bunları saymaz. Bu genel bir kabuk/terminal sorusu olduğundan ve Mac OS X veya Terminal'e özgü olmadığından, bu muhtemelen StackOverflow'a taşınmalı ve diğer sorunun bir kopyasını oluşturmalıdır. (Ancak, ben de yapma imtiyaz yok.)

+3

İyi bir cevap ama sanırım bunu sormak için Apple'ın farklı kullanıcılar tarafından bırakılması kabul edilebilir. Bu sorunun cevabı için Stackoverflow'a gitme olasılığı daha düşük. – conorgriffin

İlgili konular