
Oh My zsh - fogus
http://github.com/robbyrussell/oh-my-zsh
======
pilif
For those wondering about the advantages of ZSH over, say, bash: ZSH was first
to add programmable completions (and still comes with a huge library of
these), many more configuration options, history merging and much more.

It also has a huge library of built-ins (even an FTP client).

People could call it bloated, but I see no difference in performance from
Bash, so for me personally, that argument is moot.

What really made ZSH gain a spot in my heart though, is the user-friendly
user's guide at

<http://zsh.sourceforge.net/Guide/>

This is how I learned to use the Unix shell back in 2000. It's not just a
brilliant introduction into ZSH itself, it also contains a lot of information
about the Unix shell in general and all written in a way that a non-Unix user
can easily understand it and very quickly learn all that's needed to be
productive on the command line.

Using that guide and ZSH, I learned the Unix shell, so I never bothered to go
back to Bash.

Besides, being able to do

scp fi<tab> servern<tab>:/so<tab>

to have it completed to

scp file servername.example.com:/somepath

is just brilliant.

Same goes for contents of tar.(g|b)z(ip|2) archives. Or git commands. Or svn
commands.

It's wonderful.

Sorry. Being a fanboy here.

~~~
chousuke
I have to agree, zsh is a great shell. My only gripe with it is that compiling
it on OS X is a pain in the arse because it depends on a weird documentation
language called "yodl" which I haven't so far managed to install. It has some
weird custom build system that doesn't seem to work.

It's a shame since I'd like the up-to-date git completions, but because I
can't compile zsh I'm stuck with release versions :(

~~~
ptomato
Have you checked out homebrew? Similar to macports/fink except much, much
better, available here: <http://github.com/mxcl/homebrew>

In particular, their recipe for zsh compilation might help you even if you
don't want to install brew itself:
[http://github.com/mxcl/homebrew/blob/master/Library/Formula/...](http://github.com/mxcl/homebrew/blob/master/Library/Formula/zsh.rb)

------
cageface
I once had a fairly elaborate zsh setup but over the years I've gradually
migrated back to a more minimalistic bash environment instead. The dwim of
some of the more exotic zsh completion functions just didn't seem to save me
that much time in practice.

~~~
akkartik
git's completion especially has gotten so elaborate that it takes too friggin'
long. And my shell's frozen while I wait. I just disabled it.

But why would you switch back to bash? Even if you don't use some of the
advanced zsh features?

~~~
cageface
Bash is everywhere. It's simple. It's predictable. It just works. It does the
things I need it to do. If you use the bash-completion functions in Debian you
can even get pretty extensive completion features.

~~~
silentbicycle
> Bash is everywhere

No, it isn't. Here's the Unix spec
(<http://www.opengroup.org/onlinepubs/007908799/>), search it for bash and you
won't get anything. That's a Linuxism (<http://www.google.com/#q=linuxism>),
but it's not even on every kind of Linux.

The only standard shell on Unix is the bourne shell, and having things break
because someone ignorantly hardcoded bash without using any bash-specific
extensions is _really_ annoying.

I agree it's worth the time to find a shell you like and customize it, but
that's not a good reason to pick bash.

~~~
lukehasnoname
Which Linux distros with more than 5 downloads DON'T have bash as the login
shell?

~~~
silentbicycle
<http://openwrt.org/> , and embedded stuff in general, because bash is
incredibly bloated.

~~~
Mod_daniel
Please, correct me if I'm wrong, but doesn't OpenWrt run on on busybox? Which
is pretty much just a stripped down conglomerated bash?

~~~
silentbicycle
bash refers to a specific shell implementation, not the whole userland
utilities (AKA the "coreutils").

BusyBox combines a bunch of Linux userland utilities into one executable, to
save overhead on embedded systems. It uses ash, not bash.

------
marshally
I currently use oh-my-zsh on a daily basis, but recently I've been thinking
about switching back to the plain old bash shell. I have been frequently stung
when new libraries come out that only support bash.

------
tednaleid
I do something similar to this and have the majority of my zshrc version
controlled and publicly available.

<http://bitbucket.org/tednaleid/shared-zshrc>

I put together a blog post on how to use it along with some descriptions of
specific aliases/functions that I find really useful:

<http://naleid.com/blog/2009/05/13/shared-zshrc-file/>

Global aliases are one of the things I love about zshrc. In addition to that,
the file globbing is a huge productivity benefit. Being able to use "
__/foo.txt", rather than "find . -name foo.txt" is nice.

I think that everyone should also learn the cursor movement keybindings (which
default to the emacs ones instead of vi ones). I think these might be the same
in bash (where C is control and M is meta, likely alt/option or escape):

* C-r - search backwards through history

* C-a - beginning of line

* M-b - move back one word

* C-b - move back one letter

* C-f - move forward one letter

* M-f - move forward one word

* C-e - end of line

* C-s - search forwards through history

------
dreur
Personally I use ZshKit : <http://github.com/dreur/zshkit>

------
Symmetry
Ah, I was sort of hoping to find that someone had made a theme with syntax
highlighting as useful as fish's.

------
mxavier
This will be great. I've been using zsh for probably a year now but I'm
definitely underutilizing it. vi mode for zsh seems to be better implemented
in zsh and thats something I could definitely not survive without.

