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.
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 likew,b, andetreatfoo_baras a single word. In fish, underscore is treated as punctuation, so word motions stop at underscores. For example, pressingwonfoo_barin fish stops at the_, while in vim it would jump past the entire identifier.- The
cwcommand In vim,
cwhas special behavior: when the cursor is on a non-space character, it behaves likece(change to end of word), but when the cursor is on a space, it behaves likedwi(delete word then insert).In fish,
cwalways behaves likedwi- it deletes to the start of the next word (including trailing whitespace), then enters insert mode. To get vim’scwbehavior in fish, useceinstead.
Examples¶
To start using vi key bindings:
fish_vi_key_bindings
or set -g fish_key_bindings fish_vi_key_bindings in config.fish.
