| FISH_VI_KEY_BINDINGS(1) | fish-shell | FISH_VI_KEY_BINDINGS(1) |
NAME
fish_vi_key_bindings - set vi key bindings for fish
SYNOPSIS
fish_vi_key_bindings fish_vi_key_bindings [--no-erase] [INIT_MODE]
DESCRIPTION
fish_vi_key_bindings sets the vi key bindings for fish shell.
If a valid INIT_MODE is provided (insert, default, visual), then that mode will become the default . If no INIT_MODE is given, the mode defaults to insert mode.
The following parameters are available:
- --no-erase
- Does not clear previous set bindings
Further information on how to use vi mode <#vi-mode>.
DIFFERENCES FROM VIM
fish's vi mode aims to be familiar to vim users, but there are some differences:
- Word character handling
- In vim, underscore (_) is treated as a keyword character by default, so word motions like w, b, and e treat foo_bar as a single word. In fish, underscore is treated as punctuation, so word motions stop at underscores. For example, pressing w on foo_bar in fish stops at the _, while in vim it would jump past the entire identifier.
EXAMPLES
To start using vi key bindings:
fish_vi_key_bindings
or set -g fish_key_bindings fish_vi_key_bindings in config.fish <#configuration>.
Copyright
fish-shell developers
| October 12, 2026 | 4.9 |