/oh-my-zsh

A community-driven framework for managing your zsh configuration.

Primary LanguageShell

A handful of functions, auto-complete helpers, and stuff that makes you shout…

“OH MY ZSHELL!”

This is forked from http://github.com/robbyrussell/oh-my-zsh

Setup

The manual install

1. Clone the repository

git clone http://github.com/squarepegsys/oh-my-zsh.git ~/.oh-my-zsh

2. Create a new zsh config by copying the zsh template we’ve provided.

NOTE: If you already have a ~/.zshrc file, you should back it up. cp ~/.zshrc ~/.zshrc.orig in case you want to go back to your original settings. cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

3. Set zsh as your default shell:

chsh -s /bin/zsh

4. Start / restart zsh (open a new terminal is easy enough…)

Features different than robbyrussel’s version

  • Option to configure a terminal with strange settings (labor intensive on the first run, perfectly wonderful after that.)
  • Will automatically rehash the path, so new commands will be found immediately
  • Added realias to quickly make a new shell alias/function (EDITOR env variable required)
  • Removed upgrade checker
  • share history with your zsh’s on the same host

Problems?

You might need to modify your PATH in ~/.zshrc if you’re not able to find some commands after switching to Oh My Zsh.

Usage

TODO: Update this..

  • easier support for more SCM’s (now it’s mostly Git)
  • Have different zsh on the same machine share history
  • Put in some Django shortcuts
  • More to come

Useful

the refcard is pretty tasty for tips.

Customization

If you want to override any of the default behavior, just add a new file (ending in .zsh) into the custom/ directory.
If you have many functions which go good together you can put them as a *.plugin.zsh file in the plugin/ directory and then enable this plugin.

Uninstalling

If you want to uninstall it, just run uninstall_oh_my_zsh from the command line and it’ll remove itself and revert you to bash (or your previous zsh config).

Thanks

  • Robby Russell for starting this project in the first place

Help out!

I just quote robbyrussel:

I’m far from being a zsh-expert and suspect there are many ways to improve. If you have ideas on how to make the configuration easier to maintain (and faster), don’t hesitate to fork and send pull requests!

I would love more advance yet nice ZSH stuff