Skip to content

Commit

Permalink
feat: Added vi-mode indicator. Resolves geometry-zsh#165
Browse files Browse the repository at this point in the history
  • Loading branch information
alxbl committed Oct 1, 2019
1 parent 93def50 commit f5b9d3e
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions functions/geometry_vi.zsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# A geometry plugin to display the ZLE vi-mode state.

update_rprompt() {
RPROMPT=${${RPROMPT/\[NORMAL\]/}/\[INSERT\]/}
RPROMPT="[$1]$RPROMPT"
}

update_prompt() {
PROMPT=${${PROMPT/\[NORMAL\]/}/\[INSERT\]/}
PROMPT="[$1]$PROMPT"
}

function zle-keymap-select {
keymap=$([[ $KEYMAP == vicmd ]] && echo "NORMAL" || echo "INSERT")
(( ${GEOMETRY_RPROMPT[(i)geometry_vi]} <= ${#GEOMETRY_RPROMPT} )) && update_rprompt $keymap
(( ${GEOMETRY_PROMPT[(i)geometry_vi]} <= ${#GEOMETRY_PROMPT} )) && update_prompt $keymap
zle reset-prompt
}

zle -N zle-keymap-select

geometry_vi() {
# Empty render function, these are handled by zle-keymap-select
}

0 comments on commit f5b9d3e

Please sign in to comment.