X-Git-Url: http://www.git.stargrave.org/?p=dotfiles.git;a=blobdiff_plain;f=zsh%2F.zsh%2Frc%2F015prompt.zsh;h=d119a19739111722f47f0832007a5c53a6e739eb;hp=b460fc546dee812785883dffbb98f7ef3affca38;hb=3c909dab2de881f2a3212f491eec1b716a33e373;hpb=356830a520698605c70154fa2750189b0273566b diff --git a/zsh/.zsh/rc/015prompt.zsh b/zsh/.zsh/rc/015prompt.zsh index b460fc5..d119a19 100644 --- a/zsh/.zsh/rc/015prompt.zsh +++ b/zsh/.zsh/rc/015prompt.zsh @@ -1,17 +1,26 @@ +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)" - prompt+="%(1S.%U${SECONDS}%u.)" - local state="%#" - [[ ${KEYMAP} == vicmd ]] && state="+" - 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 @@ -20,6 +29,6 @@ preexec() { } precmd() { - printf "\a\033]2;\033\\" + printf "\a\e]2;\e\\" vcs_info }