Add an indicator to Zsh Vi Mode
After a long time using zsh's Vi command line editing mode, sometimes you may wonder which mode you are in. As we all know, the status line of Vim can display the instructions of the mode to indicate whether the mode is normal or insert. If we can port Vim to zsh, it will be perfect.
Man zshzle looked at the document and found that implementation is not difficult. You only need to add the following content to. zshrc:
VIMODE = '-- INSERT --'
Function zle-line-init zle-keymap-select {
VIMODE = "$ {$ {KEYMAP/vicmd/-- NORMAL --}/(main | viins)/-- INSERT --}"
Zle reset-prompt
}
Zle-N zle-line-init
Zle-N zle-keymap-select
RPROMPT = '% {$ fg [green] % }$ {VIMODE }%{ $ reset_color % }'
To explain it a bit, we first set the VIMODE variable to save the default state (insert), then use the two widgets provided by zle to replace the variable content, and redraw the prompt. Then execute zle widgets and set RPROMPT to display the indicator on the right. The result is as follows.
Zsh installation and Configuration Guide
Nine reasons for using Zsh
Zsh usage tips
Install the ultimate Shell Zsh in Linux
This article permanently updates the link address: