2009-11-12 91 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