What's the fish shell equivalent to `set -o vi` to get vi/vim key bindings to access command history and edit?

apple.stackexchange https://apple.stackexchange.com/questions/342228

Question

I'm one of the "cursed ones" that got their start in vi instead of emacs so the shell editing commands I am used to are set in bash with set -o vi but this doesn't work in the fish shell.

How can I enable vi / vim style key commands in the friendly interactive shell that runs when you install fish from https://brew.sh?

Was it helpful?

Solution

There is a command in fish to enable this one time and that command is:

fish_vi_key_bindings

To set this at every start up for all instances of the shell, create a startup file if it doesn't exist (or touch the date in case it exists) and then add that command to the startup file.

mkdir -p ~/.config/fish 
touch ~/.config/fish/config.fish
echo fish_vi_key_bindings >> ~/.config/fish/config.fish

This is well documented on Stack Overflow as well, but I figured a clear answer here would help some people find the setup sooner. https://stackoverflow.com/questions/28444740/how-to-use-vi-mode-in-fish-shell

Licensed under: CC-BY-SA with attribution
Not affiliated with apple.stackexchange
scroll top