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.
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.
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.I actually keep my zsh configuration (as well as all my other dotfiles) in a carefully maintained git repo. My
.zshrcsimply looks for every*.shfile in my~/.zshfolder and sources each one. I split my configuration into three folders:aliases,completions, andconfig, each doing exactly what you’d expect.Jup, I have a git repo for all my dotfiles. I’m sourcing
completionsand somelibsin my zshrc.Never heard of it, thanks for mentioning.
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.
Had a similar experience that’s why I switched back.
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…
Works fine with the default included zsh completions.
I’m not sure where, but it’s included somewhere in this config I just default to using.
http://git.grml.org/?p=grml-etc-core.git;a=blob_plain;f=etc/zsh/zshrc;hb=HEAD