You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
695 B
27 lines
695 B
function zle-line-init zle-keymap-select { |
|
zle reset-prompt |
|
} |
|
|
|
zle -N zle-line-init |
|
zle -N zle-keymap-select |
|
|
|
#changing mode clobbers the keybinds, so store the keybinds before and execute |
|
#them after |
|
binds=`bindkey -L` |
|
bindkey -v |
|
for bind in ${(@f)binds}; do eval $bind; done |
|
unset binds |
|
|
|
# if mode indicator wasn't setup by theme, define default |
|
if [[ "$MODE_INDICATOR" == "" ]]; then |
|
MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}" |
|
fi |
|
|
|
function vi_mode_prompt_info() { |
|
echo "${${KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}" |
|
} |
|
|
|
# define right prompt, if it wasn't defined by a theme |
|
if [[ "$RPS1" == "" && "$RPROMPT" == "" ]]; then |
|
RPS1='$(vi_mode_prompt_info)' |
|
fi
|
|
|