Why I Switched from zsh to fish hero

Why I Switched from zsh to fish

I’ve been using the zsh terminal with the infamous oh-my-zsh framework for many years now. The features and improvements it makes on plain old bash are impressive. But as my needs change, so does my shell. I made the switch to the fish shell almost a year ago and here is why I switched.

Speed

fish is faster than zsh. Especially when using zsh plugins the loading time alone is significantly slower. But more than that, the overall experience for me feels snappier and more responsive in the fish shell. Since I’m using the terminal to be more efficient and get things done faster than a GUI, speed is one of my top requirements for my shell.

Simplicity

The oh-my-zsh configuration and plugins tend to add complexity to the terminal environment, especially custom aliases. Overall, I have found fish to be much simpler regarding configuration and usage. My config file is only a few lines long and I’m only using one or two plugins for third party utilities (ex: fasd and nvm). I also found a very simple theme that only shows me what I need, similar to my previous zsh theme.

Autosuggestion

This is the main reason I moved to fish. I originally was using the zsh-autosuggestions which is “Fish-like autosuggestions for zsh”. This is what drew me to fish, this is by far my most used feature. If I mistype a command, it will show in red to indicate that it’s an invalid command. But, more importantly, while I type the prompt auto-suggests my previous commands (by recent and most used). This is far quicker than ctrl+r and usually shows me the command I want 80%+ of the time. Again, this is the main reason I use fish and one of my favorite productivity tools on my computer, period.

Vim Mode

I’ve been a vim user for many years now. What I love about vim is it’s intuitiveness and efficiency (once you’ve really gotten it down). I know zsh offers a vim-mode but I was happy to learn fish has one as well. It a sort of simplified vi hybrid but it does all I need it to do.

Conclusion

fish is fast, simple, offers powerful autosuggestion and a vim mode. These are the most important thing for me right now in the terminal so I proudly made the switch to this friendly interactive shell and haven’t looked back.

Sign-Up for New Posts

Stay in the loop and get the latest blog posts about dotfiles sent to your inbox.

man sitting at desk in front of a landscape of rivers leading to a mountain range

Dev Workflow Intro

Your guide to creating a powerful and intuitive development workflow in the terminal.

The terminal is a powerful tool for developers, but it can be overwhelming to know where to start. This guide will help you create a powerful development environment in the terminal. Here are some of the things you'll learn.

  • Install packages and keep them up-to-date
  • Design a minimalist, distraction-free, user-interface
  • Use familiar keyboard shortcuts
  • Manage multiple projects with ease
  • Integrate with Git and GitHub
Get Started