For a year now I’ve been using the fish shell and since then didn’t want to go back. I made the change together with switching to nixos after I saw other exozyme members using it occasionally.
At first I was worried about it not being posix compliant but I could just use as a drop-in alternative to zsh which I was using before.
There where a few immediate improvements.
When using zsh I was trying to make it usable and that resulted in an –
admittedly bloated – .zshrc. At the end of my zsh
usage it grew to a few
hundred lines, spanning from $HOME
to .config
. I very much disliked that
and sometimes when I wanted to change something I didn’t even know where to do
it.
It was made in 1991 iirc so I didn’t expect too much of it in that matter.
Fish on the other hand was released 2005 and most importantly since then got bigger updates occasionally.
It has configuration very well in mind and e.g. has the configuration where it should be in .config/fish
, functions as aliases and a pleasant syntax.
Most importantly for me it also has a great vi-mode out of the box that you can enable by running fish_vi_key_bindings
in your fish shell.
That makes it also usable on servers when getting a vi-mode doesn’t mean getting a complex zsh config to run on it but instead installing a small binary and running a command.
And now today, I’m writing this because after a year of usage I’ve finally read
through man fish-tutorial
while waiting for a train and trying to write a
fish script to toggle my waybar.
I’ve been a happy user, enjoying the UX of a good tab-completion and history search but now I do see the appeal also very much on the script side by it’s modern simplicity instead of what e.g. bash and zsh have to offer when you have to know a dozen “-”-flags to write conditionals.
Anthony lately told me about the better simplicity of fish scripts too, but until now I’ve just opted to still badly writing bash scripts because I don’t want to bother reading into it too much.
Fish will now be the alternative. I encourage you to read man fish-tutorial
when you installed it and give it a try.
I think in all the cases where people don’t use a specific shell for a specific reason I’d recommend fish to them because for the normal user it makes just a little bit easier.