Fish shell is my new favourite

I decided to take Fish shell to the test drive after running into mentions of it in The Setup blog and IRC lately. It was really positive experience and it’s my default login shell now.

Fish is acronym for friendly interactive shell and it really lives up to its name. It didn’t require any configuration to be able to suggest command completions using history, existing filenames or git branch names for example.

Suggestions will happen while you type similar to URL suggestions in web browsers and TAB completion works like you would expect if you are coming from Bash.

Fish shell screenshot

However to get rbenv working I had to include following to the Fish configuration at ~/.config/fish/config.fish:

set -x PATH $HOME/.rbenv/bin $PATH
status --is-interactive; and source (rbenv init -|psub)

And for git status / current branch display as right side prompt I added following:

function fish_right_prompt
  __terlar_git_prompt
end

Editing ~/.config/fish/config.fish is not the only way to customize your shell. Executing fish_config will start web server inside your terminal and open quite nice browser based configuration tool in your default browser.

Web config view screenshot