function zle-line-init zle-keymap-select { 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 zle reset-prompt } zle -N zle-line-init zle -N zle-keymap-select preexec() { SECONDS=0 } precmd() { printf "\a\033]2;\033\\" vcs_info }