From d0ca832ed2310edef08f69157d314edbfde00c37 Mon Sep 17 00:00:00 2001 From: Tao Wu Date: Tue, 4 Nov 2014 10:35:14 +0100 Subject: [PATCH] add a prompt function in vi-mode plugin --- plugins/vi-mode/vi-mode.plugin.zsh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 3ed32b3f..b75e306d 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -28,13 +28,30 @@ bindkey -M vicmd 'v' edit-command-line # if mode indicator wasn't setup by theme, define default if [[ "$MODE_INDICATOR" == "" ]]; then - MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}" + MODE_INDICATOR="%{$fg_bold[red]%}<<<%{$reset_color%}" fi function vi_mode_prompt_info() { echo "${${KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}" } +# if mode prompt wasn't setup by theme, define default +if [[ "$VIMODE_PROMPT_CMD" == "" ]]; then + VIMODE_PROMPT_CMD="%{$fg_bold[red]%}>%{$reset_color%}" +fi + +if [[ "$VIMODE_PROMPT_INS" == "" ]]; then + VIMODE_PROMPT_INS="%{$fg[green]%}>%{$reset_color%}" +fi + +# this function can be used to change the command prompt +# to red in command mode, and green in insert mode. +# to use it, set your PROMPT to: +# PROMPT='$(vi_mode_command_prompt)' +function vi_mode_command_prompt() { + echo "${${KEYMAP/vicmd/$VIMODE_PROMPT_CMD}/(main|viins)/$VIMODE_PROMPT_INS}" +} + # define right prompt, if it wasn't defined by a theme if [[ "$RPS1" == "" && "$RPROMPT" == "" ]]; then RPS1='$(vi_mode_prompt_info)'