Commit 79980b00 authored by Marc Cornellà's avatar Marc Cornellà
Browse files

fix(vi-mode): hide cursor-change logic behind `VI_MODE_SET_CURSOR` setting

Fixes #9570
parent 94ce46d4
......@@ -22,6 +22,13 @@ plugins=(... vi-mode)
The default value is unset, unless `vi_mode_prompt_info` is used, in which case it'll
automatically be set to `true`.
- `VI_MODE_SET_CURSOR`: controls whether the cursor style is changed when switching
to a different input mode. Set it to `true` to enable it (default: unset):
```zsh
VI_MODE_SET_CURSOR=true
```
- `MODE_INDICATOR`: controls the string displayed when the shell is in normal mode.
See [Mode indicator](#mode-indicator) for details.
......
......@@ -4,13 +4,21 @@
# This is especially true if the prompt does things like checking git status.
#
# Set to "true" to force the prompt to reset on each mode change.
# Set to "false" to force the prompt *not* to reset on each mode change.
# Unset or set to any other value to do the opposite.
#
# (The default is not to reset, unless we're showing the mode in RPS1).
# The default is not to reset, unless we're showing the mode in RPS1.
typeset -g VI_MODE_RESET_PROMPT_ON_MODE_CHANGE
# Control whether to change the cursor style on mode change.
#
# Set to "true" to change the cursor on each mode change.
# Unset or set to any other value to do the opposite.
typeset -g VI_MODE_SET_CURSOR
typeset -g VI_KEYMAP=main
function _vi-mode-set-cursor-shape-for-keymap() {
[[ "$VI_MODE_SET_CURSOR" = true ]] || return
# https://vt100.net/docs/vt510-rm/DECSCUSR
local _shape=0
case "${1:-${VI_KEYMAP:-main}}" in
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment