From 65bbd24eec6b64f2f526c974781f08373277be0c Mon Sep 17 00:00:00 2001 From: bretello Date: Wed, 29 Dec 2021 10:34:57 +0100 Subject: [PATCH] feat(vi-mode): add `INSERT_MODE_INDICATOR` (#9732) Co-authored-by: bretello --- plugins/vi-mode/README.md | 15 ++++++++++----- plugins/vi-mode/vi-mode.plugin.zsh | 4 ++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md index 46bb6d070..a1d6bc6b0 100644 --- a/plugins/vi-mode/README.md +++ b/plugins/vi-mode/README.md @@ -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 diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index dd4afdd8b..b40b29961 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -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