🙃 A delightful community-driven (with 2,400+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.
Find a file
Robin Ramael a6ad9d6775 Infrastructure for displaying scm info in prompt + implemented for git and svn
this should not break the old way of putting git info in the prompt.

Also changed awesomepanda theme to use the new scm architecture.

for users:
this works the same as plugins: the scms variable is set in ~/.zshrc with a list of SCM for which info should be displayed in the prompt, as simple as that.

for theme developers:
instead of calling the git_prompt_info function, you can call the get_scm_prompt, which will display info for all the scms in the scms variable.
the following variables can be used in the old git-way:

ZSH_THEME_SCM_PROMPT_PREFIX: before everything but the scm's name (svn, git, ..)
ZSH_THEME_SCM_PROMPT_SUFFIX: after everything
ZSH_THEME_SCM_PROMPT_DIRTY: displayed when the repo is dirty
ZSH_THEME_SCM_PROMPT_CLEAN	displated when the repo is clean

by default, the name of the scm (git, svn, ...) is not displayed before the scm info, but this can be changed by setting the ZSH_THEME_SCM_DISPLAY_NAME to 1.

for scm-plugin developers:
to make an scm plugin with the name 'foo':
add a script called 'foo.scm.zsh' in to the scm folder. this script has to contain two functions:
    scm_in_foo_repo: checks wether we are in a foo repo, usually by checking if a .foo folder is present
    scm_foo_prompt_info: returns the prompt which follows the rules outlined above (in the "for theme developers"-section)
2011-01-09 16:25:57 +01:00
custom Moving some example files into custom/ 2009-09-23 08:02:58 -07:00
lib Infrastructure for displaying scm info in prompt + implemented for git and svn 2011-01-09 16:25:57 +01:00
log Adding a file into log/ so that we have a log file to record history to 2009-08-31 11:17:05 -07:00
plugins Infrastructure for displaying scm info in prompt + implemented for git and svn 2011-01-09 16:25:57 +01:00
scm Infrastructure for displaying scm info in prompt + implemented for git and svn 2011-01-09 16:25:57 +01:00
templates Updating default .zshrc template file to include plugins declaration 2010-06-03 12:05:12 -07:00
themes Infrastructure for displaying scm info in prompt + implemented for git and svn 2011-01-09 16:25:57 +01:00
tools Switching to /usr/bin/env zsh instead of /bin/zsh in the installer 2010-08-19 08:04:18 -07:00
.gitignore Changed .gitignore to ignore all files in custom, not only .zsh files, so other stuff can be put there without problem. 2011-01-09 12:12:56 +01:00
oh-my-zsh.sh Reorganizing plugins so that each plugin has it's own directory now so that any plugin-specific functions can be bundled within there. 2010-09-30 21:34:06 -07:00
README.textile updated the readme 2010-06-07 02:06:40 +08:00

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

bq. "OH MY ZSHELL!"

h2. Setup

@oh-my-zsh@ should work with any recent release of "zsh":http://www.zsh.org/, the minimum recommended version is 4.3.9.

h3. The automatic installer... (do you trust me?)

@wget http://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh@

h3. The manual way


1. Clone the repository

  @git clone git://github.com/robbyrussell/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...)

h3. 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_.

h2. Usage

* enable the plugins you want in your @~/.zshrc@ (take a look at @plugins/@ to see what's possible)
** example: @plugins=(git osx ruby)@
* Theme support: Change the @ZSH_THEME@ environment variable in @~/.zshrc@.
** Take a look at the "current themes":http://wiki.github.com/robbyrussell/oh-my-zsh/themes that come bundled with _Oh My Zsh_.
* much much more...  take a look at @lib/@ what _Oh My Zsh_ offers...

h2. Useful

the "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty tasty for tips.

h3. 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.

h3. 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).

h2. Thanks

* Rick Olson (technoweenie) might remember some of the configuration, which I took from a pastie a few years ago.
* Marcel (noradio) provided Rick the original zsh configuration.
* Nicholas (ulysses) for the "rake autocompletion code":http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh.

h2. Help out!

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!

h3. Send us your theme!

I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.