49 lines
1.2 KiB
Bash
49 lines
1.2 KiB
Bash
# vim: ft=zsh
|
||
|
||
NOCOLOR="[0m"
|
||
PURPLE="[0;35m"
|
||
YELLOW="[0;33m"
|
||
GREEN="[0;32m"
|
||
BOLDYELLOW="[1;33m"
|
||
BOLDRED="[1;31m"
|
||
BOLDGREEN="[1;32m"
|
||
|
||
typeset -A modecolor
|
||
|
||
modecolor[emacs]=$BOLDYELLOW
|
||
modecolor[viins]=$BOLDYELLOW
|
||
modecolor[main]=$BOLDYELLOW
|
||
modecolor[vicmd]=$PURPLE
|
||
modecolor[viopp]=$BOLDYELLOW
|
||
modecolor[visual]=$YELLOW
|
||
modecolor[isearch]=$BOLDRED
|
||
modecolor[command]=$BOLDGREEN
|
||
modecolor[.safe]=$BOLDYELLOW
|
||
|
||
function update-prompt-color {
|
||
MODE=$2
|
||
[ -z "$MODE" ] && MODE=$KEYMAP
|
||
[ -z "$MODE" ] && MODE=main
|
||
COLOR="${modecolor[$MODE]}"
|
||
[ "$MODE" = "main" ] && INDICATOR='+' || INDICATOR=' '
|
||
PS1="%{$COLOR%}[$INDICATOR] %~%# %{$NOCOLOR%}"
|
||
|
||
[ -n "$VIRTUAL_ENV" -a ! "$(basename "$VIRTUAL_ENV")" = "default" ] && VENV_STRING="%{$GREEN%}($(basename $VIRTUAL_ENV))" || VENV_STRING=
|
||
USER_STRING="%{$PURPLE%}%n@%m"
|
||
#USER_STRING="%{$PURPLE%}rhelmot@%m"
|
||
TIME_STRING="%{$PURPLE%}[%{$YELLOW%}%D{%r}%{$PURPLE%}]"
|
||
|
||
RPS1="$VENV_STRING $USER_STRING $TIME_STRING%{$NOCOLOR%}"
|
||
zle && zle reset-prompt
|
||
}
|
||
|
||
function neutral-prompt-color {
|
||
update-prompt-color dummy main
|
||
}
|
||
|
||
zle -N zle-line-init update-prompt-color
|
||
zle -N zle-keymap-select update-prompt-color
|
||
zle -N zle-line-finish neutral-prompt-color
|
||
|
||
update-prompt-color
|