X-Git-Url: http://www.git.stargrave.org/?p=dotfiles.git;a=blobdiff_plain;f=zsh%2F.zsh%2Frc%2F015prompt.zsh;h=d119a19739111722f47f0832007a5c53a6e739eb;hp=3ffbab91d8b47120830fe74843207f75e7693564;hb=3c909dab2de881f2a3212f491eec1b716a33e373;hpb=9e0a9b2f9d90cf0846f4719b03bde806c301543c diff --git a/zsh/.zsh/rc/015prompt.zsh b/zsh/.zsh/rc/015prompt.zsh index 3ffbab9..d119a19 100644 --- a/zsh/.zsh/rc/015prompt.zsh +++ b/zsh/.zsh/rc/015prompt.zsh @@ -1,28 +1,34 @@ +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 { - 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)" - [[ $timer ]] && { - local val=$(( $SECONDS - $timer )) - [[ $val -gt 0 ]] && prompt+="%U${val}%u" + 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) } - 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() { - timer=$SECONDS + SECONDS=0 } precmd() { - printf "\a\033]2;\033\\" + printf "\a\e]2;\e\\" vcs_info }