40 lines
864 B
Bash
40 lines
864 B
Bash
bindkey -v
|
|
export KEYTIMEOUT=1
|
|
|
|
autoload -U add-zle-hook-widget
|
|
|
|
line_pre_redraw () {
|
|
local previous_vi_keymap="${VI_KEYMAP}"
|
|
|
|
case "${KEYMAP}" in
|
|
vicmd)
|
|
case "${REGION_ACTIVE}" in
|
|
1)
|
|
VI_KEYMAP="VISUAL"
|
|
;;
|
|
2)
|
|
VI_KEYMAP="V-LINE"
|
|
;;
|
|
*)
|
|
VI_KEYMAP="NORMAL"
|
|
;;
|
|
esac
|
|
;;
|
|
viins|main)
|
|
if [[ "${ZLE_STATE}" == *overwrite* ]]; then
|
|
VI_KEYMAP="REPLACE"
|
|
else
|
|
VI_KEYMAP="INSERT"
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
if [[ "${VI_KEYMAP}" != "${previous_vi_keymap}" ]]; then
|
|
update_right_prompt
|
|
fi
|
|
}
|
|
|
|
VI_KEYMAP="INSERT"
|
|
|
|
add-zle-hook-widget zle-line-pre-redraw line_pre_redraw
|