2009-11-12 90 views
2

我現在有我的ZSH PROMPT變量設置爲:
PROMPT=$'[%{\e[0;32m%}%[email protected]%m:%~%{\e[0m%}]>ZSH提示/ RPROMPT衝突

和我RPROMPT變量:
RPROMPT=$'[%{\e[0;32m%}%T\e[0m%}]'

我工作的效果是使括號和「>」白色(使用終端文本顏色設置)以及綠色內的所有內容。但是,當在OS​​ X中啓用RPrompt(Ubuntu工作正常)時,文本輸入開始3個字符INTO LPrompt,並覆蓋最後3個字符!

Screenshot http://img41.imageshack.us/img41/4575/screenshot20091112at722.png

是什麼顏色,我ZSH提示和RPROMPT以避免此問題的正確方法?

回答

2

你的RPROMPT在Ubuntu上搞砸了我。由於zsh知道ANSI顏色序列,並擁有自己該設施(自動取零寬度校正的照顧,太),試試這個:

RPROMPT='[%F{green}%T%f]' 

而且,順便說一句:

PROMPT='[%F{green}%[email protected]%m:%~%f]>' 
+0

這修好了 - 我喜歡簡單的解決方案!謝謝! – 2009-11-12 14:39:10

+0

PROMPT定義中沒有任何內容保證$'...'而不是'...'; $'...'表單在設置字符串的值時會解釋回顯/打印轉義符(並且顯然,您也錯過了尾部符號)。 – 2009-12-10 07:34:31

+0

哎呀,我只是複製並粘貼了OP的問題。 – 2009-12-10 07:46:06