Discover, install, and configure shell plugins with Fig Plugin Store →

Zsh Vimto

Improved zsh vim mode (bindkey -v) plugin

29 stars
6 forks


A pure-compatible extension to bindkey -v for zsh.

Pitch: zsh has support for a vim mode and it's improving all the time, however it has a few usability problems out of the box (like not being obvious what mode you're in, or some things not working like you'd expect). This plugin fixes some of those issues and makes it clear which mode you're in whilst retaining a minimal aesthetic.

screencast demonstrating appearance


  • Changes from block cursor to line cursor depending on whether in cmd or insert mode mode
  • Displays NORMAL on the right side of the prompt when in cmd mode
  • Fixes issue where backspace no longer works when returning from cmd mode
  • Re-enables ^R for incremental search from emacs mode (it's useful…)
  • Reduce the wait timer for switching between modes – default is 0.4s which is very noticable, this plugin reduces it to 1ms
  • tmux support


Use your zsh package manager of choice. E.g. with zplug:

zplug "laurenkt/zsh-vimto"
zplug install

If not using a package manager, download to a folder e.g. ~/.zsh/plugins and then add to your .zshrc or equivalent:

source ~/.zsh/plugins/


To customise the colors used, set the following variables, for example:



  • Add a visual indicator for v-line and visual modes. This is currently quite complicated to do (see this thread) but perhaps it will get easier in a future release, or another solution can be found.