dotfiles/zsh/.zsh/vim-mode.zsh

40 lines
864 B
Bash
Raw Normal View History

2024-08-09 22:39:10 +02:00
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