# Change cursor shape for different vi modes. function zle-keymap-select { if [[ ${KEYMAP} == vicmd ]] [[ $1 = 'block' ]]; then echo -ne '\e[1 q' elif [[ ${KEYMAP} == main ]] [[ ${KEYMAP} == viins ]] [[ ${KEYMAP} = '' ]] [[ $1 = 'beam' ]]; then echo -ne '\e[5 q' fi } # Prompt called purs function zle-line-init zle-keymap-select { PROMPT=`$HOME/.local/src/purs/target/release/purs prompt -k "$KEYMAP" -r "$?" --venv "${${VIRTUAL_ENV:t}%-*}"` zle reset-prompt } zle -N zle-line-init zle -N zle-keymap-select autoload -Uz add-zsh-hook function _prompt_purs_precmd() { /$HOME/.local/src/purs/target/release/purs precmd } add-zsh-hook precmd _prompt_purs_precmd