- prompt="%2~ %B"
- [[ "$#_autoenv_stack_entered" -gt 0 ]] && prompt+="A"
- [[ -n "$VIRTUAL_ENV" ]] && prompt+="V"
- prompt+="%(1j.%j.)%b"
- prompt+="%U${vcs_info_msg_0_[1,-32]}%u"
- prompt+="%(?..%S%?%s)"
- prompt+="%(1S.%U${SECONDS}%u.)"
- local state="%#"
- [[ ${KEYMAP} == vicmd ]] && state="+"
- prompt+="%B%F{magenta}${state}%f%b "
- PS1=$prompt
+ [[ ${KEYMAP} == vicmd ]] && _VIMODE="+" || _VIMODE="%#"
+ [[ "$#_autoenv_stack_entered" -eq 0 ]] && psvar=(${psvar#A}) || {
+ [[ -n "${psvar[(r)A]}" ]] || psvar=(A $psvar)
+ }
+ [[ -z "$VIRTUAL_ENV" ]] && psvar=(${psvar#V}) || {
+ [[ -n "${psvar[(r)V]}" ]] || psvar=(V $psvar)
+ }