Oh My Zsh, full of features but slow
I’m a long time user of Oh-my-zsh. After setting up a new system (OSX or Linux, of course, no Windows), the first thing I often do is changing my default shell to Zsh and installing Oh-my-zsh. It’s a brilliant configuration framework for zsh with a lot of themes and plugins that make it a joy to working in the terminal. But it has a major drawback, slow startup time. For me, with a lot of plugins enabled, it often takes several seconds for the terminal in iTerm2 to be fully ready.
I’ve heard of prezto before, but at that time, to me, Oh-my-zsh is too good and the thought of having to learn the convention and update my current configuration to that of a new framework made me feel lazy :) But today, after reading a thread in StackOverflow that stated that Prezto is an improvement to Oh-my-zsh and it has no slow startup time issue, I decided to give it a try.
Installing presto is really straight forward, just following the guide in its website (remember to uninstall Oh-my-zsh and backup your configuration).
After that, you are done, prezto is ready at your command. I was really impressed with prezto, even with a lot of modules enabled (git, rails, ruby, python, node…), it’s still very fast compared to Oh-my-zsh. Now all that left is to configure prezto to my liking. I did have to convert my shell settings in Oh-my-zsh’s .zshrc to that of Prezto but it only took a small amount of time. To modify and add custom configuration, in my case, you just have to make changes to those 3 files that prezto symlinks in your home folder: .zprofile, .zshrc, .zpreztorc
I added my custom paths to .zprofile so that they will be available for even apps outside of the terminal
In .zshrc file, I added my aliases and some variables for working with python
And in .zpreztorc, I added the modules that I need (git, ruby, python, node…) and configure prezto to use a custom theme that I modified from the default sorin theme.
And tada, this is my final product:
Generally, I’m pretty pleased with prezto. I think I’m gonna use it in my terminal from now on. You can get all of my configurations and custom theme here on Github.