function zle-line-init zle-keymap-select { local state="%#" timer_val="?" [[ ${KEYMAP} == vicmd ]] && state="+" [[ $timer ]] && timer_val=$(( $SECONDS - $timer )) prompt="%2~ " prompt+="%U${timer_val}%u|" prompt+="%B%?%b" prompt+="%B%F{magenta}${state}%f%b " PS1=$prompt zle reset-prompt } zle -N zle-line-init zle -N zle-keymap-select preexec() { timer=$SECONDS } precmd() { printf "\a\033]2;\033\\" }