Browse Source

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

Co-authored-by: bretello <bretello@distruzione.org>
bretello 2 years ago
parent
commit
65bbd24eec
2 changed files with 12 additions and 7 deletions
  1. 10 5
      plugins/vi-mode/README.md
  2. 2 2
      plugins/vi-mode/vi-mode.plugin.zsh

+ 10 - 5
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

+ 2 - 2
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