Vi mode
What
Display the current Vi mode (insert / normal / visual …) in the prompt. Useful
when using ZSH keymaps via bindkey -v or PowerShell PSReadLine
-EditMode Vi so you can tell at a glance which mode you are in.
In ZSH, adding this segment automatically registers a zle-keymap-select hook.
In PowerShell, it registers a PSReadLine Vi mode change handler.
Both re-render the prompt every time the active mode changes.
PowerShell cursor indicator
PowerShell support sets PSReadLine's ViModeIndicator to Script, replacing
cursor-shape mode indicators such as Cursor. The mode is then shown by this
segment in the prompt instead.
Sample Configuration
- json
- yaml
- toml
{
"type": "vimode",
"style": "plain",
"foreground": "#ffffff",
"background": "#0077c2",
"template": " {{ if eq .Mode \"normal\" }} NORMAL{{ else if eq .Mode \"visual\" }} VISUAL{{ else }} INSERT{{ end }} "
}
type: vimode
style: plain
foreground: "#ffffff"
background: "#0077c2"
template: ' {{ if eq .Mode "normal" }} NORMAL{{ else if eq .Mode "visual" }}
VISUAL{{ else }} INSERT{{ end }} '
type = "vimode"
style = "plain"
foreground = "#ffffff"
background = "#0077c2"
template = " {{ if eq .Mode \"normal\" }} NORMAL{{ else if eq .Mode \"visual\" }} VISUAL{{ else }} INSERT{{ end }} "
Template (info)
default template
{{ .Mode }}
Properties
| Name | Type | Description |
|---|---|---|
.Mode | string | the normalized mode: insert, normal, visual, viopp, replace, or the raw keymap when unmapped |
.Keymap | string | the raw mode value ($KEYMAP in ZSH, e.g. main, viins, vicmd, visual, viopp; viins or vicmd in PowerShell PSReadLine) |