🙃 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.
  • Shell 98.4%
  • Python 1.5%
Find a file
2014-09-18 15:59:09 +02:00
cache make sure cache dir exists, just like log dir 2014-09-17 14:14:44 +02:00
completions Creating new completion scheme for buildbot and repo tools 2013-02-12 14:50:46 +01:00
custom alias for apt-get update 2014-08-11 11:10:26 +02:00
dot_files reworked git plugin alias 2014-03-12 12:11:53 +01:00
lib This alias is conflict cause 2014-09-17 14:15:18 +02: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 Adding quotes around $1 2014-09-18 15:59:09 +02:00
templates add pip in my plugin list 2014-07-22 17:08:04 +02:00
themes Update half-life.zsh-theme 2014-09-18 15:56:01 +02:00
tools Replace /usr/bin/env with env 2014-09-18 15:57:17 +02:00
.gitignore allow modification in customs dir 2014-07-03 16:15:24 +02:00
.project Creating new completion scheme for buildbot and repo tools 2013-02-12 14:50:46 +01:00
CONTRIBUTING.md Categories of issues in oh-my-zsh (work-in-progress) 2014-09-18 15:59:09 +02:00
MIT-LICENSE.txt Update license year 2014-03-12 22:37:25 -07:00
oh-my-zsh.sh Replace /usr/bin/env with env 2014-09-17 14:15:17 +02:00
README.textile Update README.textile 2014-09-18 15:55:40 +02:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This is a Forked version of Oh-my-zsh. I (Stibbons) maintain this fork against the following repos:

bchretien   https://github.com/bchretien/oh-my-zsh.git (fetch)
bchretien   https://github.com/bchretien/oh-my-zsh.git (push)
bors-ltd    https://github.com/bors-ltd/oh-my-zsh.git (fetch)
bors-ltd    https://github.com/bors-ltd/oh-my-zsh.git (push)
cadusk  https://github.com/cadusk/oh-my-zsh.git (fetch)
cadusk  https://github.com/cadusk/oh-my-zsh.git (push)
dlintw  https://github.com/dlintw/oh-my-zsh.git (fetch)
dlintw  https://github.com/dlintw/oh-my-zsh.git (push)
jeroenjanssens  https://github.com/jeroenjanssens/oh-my-zsh.git (fetch)
jeroenjanssens  https://github.com/jeroenjanssens/oh-my-zsh.git (push)
kipanshi    https://github.com/kipanshi/oh-my-zsh.git (fetch)
kipanshi    https://github.com/kipanshi/oh-my-zsh.git (push)
origin  https://Stibbons@github.com/Stibbons/oh-my-zsh.git (fetch)
origin  https://Stibbons@github.com/Stibbons/oh-my-zsh.git (push)
sjl https://github.com/sjl/oh-my-zsh.git (fetch)
sjl https://github.com/sjl/oh-my-zsh.git (push)
styx    https://github.com/styx/oh-my-zsh.git (fetch)
styx    https://github.com/styx/oh-my-zsh.git (push)
upstream    https://github.com/robbyrussell/oh-my-zsh.git (fetch)
upstream    https://github.com/robbyrussell/oh-my-zsh.git (push)
ysmood  https://github.com/ysmood/oh-my-zsh.git (fetch)
ysmood  https://github.com/ysmood/oh-my-zsh.git (push)


Why do I do that? I want the cuting edge zsh for my git workflow, so I select the best from every available repository
(thanks github!) and I merge it with my own salt.

I also have a bunch of aliases and plugins for my own workflow : repo, pylint, python, git,...

I'm very satisfied with the command workfow this fork provide. Also, the access of the git command is pretty easy since
they are basically just sortened version of the complete command. So when you have to work on a computer that does not
have these aliases, you can still work (but decrease your productivity, but that's why we use aliases!)

Here are some samples:

h2. Classic Git Project
# cd myproject
# gfa # dear git, fetch me all remotes
# # hack hack hack
# gg # dear git, please show me a nice gui so I can select the lines I want to commit and enter the commit message
# # rehack
# gga # dear git, I changed my ming, let met amend my last commit
# # new hack
# gg
# gP # dear git, push these changes to my remote (gp is reserved for git pull)

h2. Git-Repo Project (Android)

# rsrra # dear repo, repo sync all project and rebase everything with auto stash.
# (hack)
# gg # dear git, commit my change
# ru # dear repo, please upload everything change to the remote

h2. Merging

# git merge <tab><tab><tab> # dear git, please merge this branch to mine
(conflict araises)
# gmt # dear git, show me what's wrong!
# # kdiff3 show me what's wrong, Ctrl+2/Ctrl+3 to choose the solution, modify the code, Ctrl+Up/Down to jump to next conflict, and then save
# gg # dear git, commit my changes
(edit the commit message)
# gp # dear git, push that to my remote

h2. Upstream merging

# gmum # git merge upstream master
# gmt
# gg
# gP

h2. Rebase / fixup / squash / reorder / split commit history

# gr2 # dear git, let me edit you history up to 2 commits behind (git rebase -i HEAD~2)
# gr4 # dear git, let me edit you history up to 4 commits behind (git rebase -i HEAD~4)
# gr10 # dear git, let me edit you history up to 10 commits behind (git rebase -i HEAD~10)

h3. Text search

# sgrep "substring" .


h1. Official Oh My Zsh README

!https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png!

@oh-my-zsh@ is an open source, community-driven framework for managing your "Zsh":http://www.zsh.org/ configuration.

It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make 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*.

If not already installed, you can install "Zsh":http://www.zsh.org/ using the command-line.

h3. The automatic installer… do you trust me?

You can install this via the command-line with either @curl@ or @wget@.

h4. via @curl@:

@curl -L http://install.ohmyz.sh | sh@

h4. via @wget@:

@wget --no-check-certificate http://install.ohmyz.sh -O - | sh@

h4. *Optionally*, change the install directory:

The default location is @~/.oh-my-zsh@ (hidden in your home directory).

You can change the install directory with the @ZSH@ environment variable, either by running @export ZSH=/your/path@ before installing, or by setting it before the end of the install pipeline like this:

@curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ZSH=~/.dotfiles/zsh sh@

h3. The manual way

1. Clone the repository:

@git clone git://github.com/stibbons/oh-my-zsh.git ~/.oh-my-zsh@

2. *Optionally*, backup your existing @~/.zshrc@ file:

@cp ~/.zshrc ~/.zshrc.orig@

3. Create a new "Zsh":http://www.zsh.org/ config file by copying the "Zsh":http://www.zsh.org/ template we've provided:

@cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@

4. Set "Zsh":http://www.zsh.org/ as your default shell:

@chsh -s /bin/zsh@

5. Start or restart "Zsh":http://www.zsh.org/ by opening a new command-line window.

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

If you installed manually or changed the install location, check the @ZSH@ environment variable in @~/.zshrc@.

h2. Usage

* enable the plugins you want in your @~/.zshrc@ (take a look at the @plugins/@ directory and the "wiki":https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins to see what's available)
** example: @plugins=(git osx ruby)@
* theme support: change the @ZSH_THEME@ environment variable in @~/.zshrc@
** take a look at the @themes/@ directory and the "wiki":https://wiki.github.com/stibbons/oh-my-zsh/themes to see what comes bundled with @oh-my-zsh@
* & much, much more… take a look at the @lib/@ directory to see what @oh-my-zsh@ has to offer…

h2. Useful

The "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty useful for tips.

h3. Customization

If you want to override any of the default behaviors, just add a new file (ending in @.zsh@) in the @custom/@ directory.

If you have many functions that go well together, you can put them as a @*.plugin.zsh@ file in the @custom/plugins/@ directory and then enable this plugin (see '"Usage":https://github.com/robbyrussell/oh-my-zsh#usage' above).

If you would like to override the functionality of a plugin distributed with @oh-my-zsh@, create a plugin of the same name in the @custom/plugins/@ directory and it will be loaded instead of the one in @plugins/@.

h3. Updates

By default you will be prompted to check for upgrades. If you would like @oh-my-zsh@ to automatically upgrade itself without prompting you, set the following in your @~/.zshrc@:

@DISABLE_UPDATE_PROMPT=true@

To disable upgrades entirely, set the following in your @~/.zshrc@:

@DISABLE_AUTO_UPDATE=true@

To upgrade directly from the command-line, just run @upgrade_oh_my_zsh@.

h3. Uninstalling

If you want to uninstall @oh-my-zsh@, just run @uninstall_oh_my_zsh@ from the command-line and it'll remove itself and revert you to @bash@ (or your previous "Zsh":http://www.zsh.org/ configuration).

h2. Help out!

I'm far from being a "Zsh":http://www.zsh.org/ 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. (Don't) send us your theme (for now)!

-I'm hoping to collect a bunch of themes  you can see existing ones in the @themes/@ directory.-

We have enough themes for the time being. Please fork the project and add on in there  you can let people know how to grab it from there.

h2. Contributors

This project wouldn't exist without all of our awesome users and contributors: "view our growing list of contributors":https://github.com/robbyrussell/oh-my-zsh/contributors

Thank you so much!