feat(vi-mode): add INSERT_MODE_INDICATOR (#9732)

Co-authored-by: bretello <bretello@distruzione.org>
This commit is contained in:
bretello 2021-12-29 10:34:57 +01:00 committed by GitHub
parent 3bb23e8e31
commit 65bbd24eec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 7 deletions

View file

@ -32,16 +32,21 @@ plugins=(... vi-mode)
- `MODE_INDICATOR`: controls the string displayed when the shell is in normal mode.
See [Mode indicator](#mode-indicator) for details.
## Mode indicator
- `INSERT_MODE_INDICATOR`: controls the string displayed when the shell is in insert mode.
See [Mode indicator](#mode-indicator) for details.
## Mode indicators
*Normal mode* is indicated with a red `<<<` mark at the right prompt, when it
hasn't been defined by theme.
hasn't been defined by theme, *Insert mode* is not displayed by default.
You can change this indicator by setting the `MODE_INDICATOR` variable. This setting
supports Prompt Expansion sequences. For example:
You can change these indicators by setting the `MODE_INDICATOR` (*Normal mode*) and
`INSERT_MODE_INDICATORS` (*Insert mode*) variables.
This settings support Prompt Expansion sequences. For example:
```zsh
MODE_INDICATOR="%F{yellow}+%f"
MODE_INDICATOR="%F{white}+%f"
INSERT_MODE_INDICATOR="%F{yellow}+%f"
```
You can also use the `vi_mode_prompt_info` function in your prompt, which will display

View file

@ -123,7 +123,7 @@ wrap_clipboard_widgets copy vi-yank vi-yank-eol vi-backward-kill-word vi-change-
wrap_clipboard_widgets paste vi-put-{before,after}
unfunction wrap_clipboard_widgets
# if mode indicator wasn't setup by theme, define default
# if mode indicator wasn't setup by theme, define default, we'll leave INSERT_MODE_INDICATOR empty by default
if [[ -z "$MODE_INDICATOR" ]]; then
MODE_INDICATOR='%B%F{red}<%b<<%f'
fi
@ -136,7 +136,7 @@ function vi_mode_prompt_info() {
# set RPS1/RPROMPT to something else in their custom config.
: "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:=true}"
echo "${${VI_KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}"
echo "${${VI_KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/$INSERT_MODE_INDICATOR}"
}
# define right prompt, if it wasn't defined by a theme