+setopt PROMPT_SUBST
+
+PS1="%2~ %B"
+PS1+='${(j::)psvar}'
+PS1+="%(1j.%j.)%b"
+PS1+='%U${vcs_info_msg_0_}%u'
+PS1+="%(?.. %S%?%s)"
+PS1+='%(1S. %B${SECONDS}%b.)'
+PS1+='%B%F{magenta}%#%f%b '
+
function zle-line-init zle-keymap-select {
- local state="%#" timer_val="?"
- [[ ${KEYMAP} == vicmd ]] && state="+"
- [[ $timer ]] && timer_val=$(( $SECONDS - $timer ))
- prompt="%2~ "
- prompt+="%U${timer_val}%u|"
- prompt+="%B%?%b"
- prompt+="%B%F{magenta}${state}%f%b "
- PS1=$prompt
+ printf "\e]12;"
+ [[ ${KEYMAP} == vicmd ]] && printf "red" || printf "green"
+ printf "\e\\"
+ [[ "$#_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)
+ }
zle reset-prompt
}
+
zle -N zle-line-init
zle -N zle-keymap-select
preexec() {
- timer=$SECONDS
+ SECONDS=0
}
precmd() {
- printf "\a\033]2;\033\\"
+ printf "\a\e]2;\e\\"
+ vcs_info
}