1. 7

I haven’t been a user of the oh-my-zsh because I found it too complicated. I was only interested in it’s completion features. Therefore I ripped out this component, copied the completions from it and did the configuration on my own.

Then I tried fish-shell but wasn’t satisfied. It lacks completion but has very good autosuggestions and amazing VGA terminal colors for certain types of commands.

prezto jumps in here - it’s an optimized version of oh-my-zsh. It is fast, has completions out of the box, and the nice autosuggestions feature of the fish-shell.


  2. 4

    I use antigen, and have been happy with it. I know there are better performing options, but the performance of antigen has never been a limiting factor for me. It provides the features of oh-my-zsh out of the box, but does more and is easier to work with.

    1. 3

      The big win of antigen for me is being easily able to version my .zshrc, because now loading the modules I depend on is just a list of antigen commands.

      1. 1

        I actually keep my zsh configuration (as well as all my other dotfiles) in a carefully maintained git repo. My .zshrc simply looks for every *.sh file in my ~/.zsh folder and sources each one. I split my configuration into three folders: aliases, completions, and config, each doing exactly what you’d expect.

        1. 1

          Jup, I have a git repo for all my dotfiles. I’m sourcing completions and some libs in my zshrc.

      2. 1

        Never heard of it, thanks for mentioning.

      3. 3

        I use fish, but I’m not a zillion percent happy with it. It lives in an uncanny valley for me, because it’s different enough from the borne shell lineage that my fingers break when I try to write for loops; but it’s similar enough that it fundamentally doesn’t really make the shell better. Or rather, it doesn’t make using a shell better enough.

        1. 1

          Had a similar experience that’s why I switched back.

        2. 0

          The main thing that keeps me away from fish (and zsh iirc) is the lack of rsync tab completion. I don’t know how people manage without it…

          1. 2

            Works fine with the default included zsh completions.

            1. 1

              I’m not sure where, but it’s included somewhere in this config I just default to using.