1
0
Fork 0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-12-18 10:22:00 +00:00

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. - `MODE_INDICATOR`: controls the string displayed when the shell is in normal mode.
See [Mode indicator](#mode-indicator) for details. 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 *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 You can change these indicators by setting the `MODE_INDICATOR` (*Normal mode*) and
supports Prompt Expansion sequences. For example: `INSERT_MODE_INDICATORS` (*Insert mode*) variables.
This settings support Prompt Expansion sequences. For example:
```zsh ```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 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} wrap_clipboard_widgets paste vi-put-{before,after}
unfunction wrap_clipboard_widgets 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 if [[ -z "$MODE_INDICATOR" ]]; then
MODE_INDICATOR='%B%F{red}<%b<<%f' MODE_INDICATOR='%B%F{red}<%b<<%f'
fi fi
@ -136,7 +136,7 @@ function vi_mode_prompt_info() {
# set RPS1/RPROMPT to something else in their custom config. # set RPS1/RPROMPT to something else in their custom config.
: "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:=true}" : "${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 # define right prompt, if it wasn't defined by a theme