# vim: fileencoding=utf-8 ft=zsh noet sw=4 ts=4 sts=4 setopt PROMPT_SUBST # vi mode indicaton typeset -g -A psvmodetext if [[ ${LC_ALL:-${LC_MESSAGES:-$LANG}} == *.UTF-8 ]]; then if (($UID)); then PROMPT_CHAR='▷' else PROMPT_CHAR='▶' fi else if (($UID)); then PROMPT_CHAR='%%' else PROMPT_CHAR='#' fi fi prompt_base='${prompt_color_user}%n${prompt_color_host}@%m%k ${prompt_color_dir}${psvar[1]}%1~' PS1="%(?..\${prompt_color_errno}<%?>)%(1j.\${prompt_color_jobs}{%j}.)$prompt_base \${PROMPT_CHAR}%b%f%k " PS2="$prompt_base %_> %b%f%k" PS3="$prompt_base ?# %b%f%k" RPROMPT='${vcs_info_msg_0_}${vcs_info_msg_home}' prompt_color_host="%b%F{green}" prompt_color_jobs="%b%F{cyan}" prompt_color_errno="%B%F{yellow}" prompt_color_dir="%B%F{yellow}" if [[ $terminfo[colors] == 256 ]]; then autoload string_hash_color prompt_color_host="%b%F{$(string_hash_color $HOST)}" prompt_color_errno="%b%F{214}" prompt_color_dir="%b%F{214}" fi prompt_color_user=$prompt_color_host if [[ $UID -eq 0 ]]; then prompt_color_dir="%B%F{red}" fi # colorful vi mode indication, powerline-style if [[ $terminfo[colors] -ge 8 ]]; then psvmodetext[i]='' psvmodetext[c]='%K{green}%F{black}' psvmodetext[r]='%K{red}%F{black}' psvmodetext[im]="${psvmodetext[i]}[m] " psvmodetext[cm]="${psvmodetext[c]}[m] " fi autoload -Uz ft_vi_promptinit ft_vi_promptinit