oh-my-zsh
is an open source, community-driven framework for managing your Zsh configuration.
It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make you shout…
“OH MY ZSHELL!”
oh-my-zsh
should work with any recent release of Zsh. The minimum recommended version is 4.3.9.
If not already installed, you can install Zsh using the command-line.
You can install this via the command-line with either curl
or wget
.
curl -L https://raw.githubusercontent.com/abondoa/oh-my-zsh/master/tools/install.sh | sh
wget --no-check-certificate https://raw.githubusercontent.com/abondoa/oh-my-zsh/master/tools/install.sh -O - | sh
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
1. Clone the repository:
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
2. Optionally, backup your existing ~/.zshrc
file:
cp ~/.zshrc ~/.zshrc.orig
3. Create a new Zsh config file by copying the Zsh template we’ve provided:
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
4. Set Zsh as your default shell:
chsh -s /bin/zsh
5. Start or restart Zsh by opening a new command-line window.
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
.
- enable the plugins you want in your
~/.zshrc
(take a look at theplugins/
directory and the wiki to see what’s available)- example:
plugins=(git osx ruby)
- example:
- theme support: change the
ZSH_THEME
environment variable in~/.zshrc
- take a look at the
themes/
directory and the wiki to see what comes bundled withoh-my-zsh
- take a look at the
- & much, much more… take a look at the
lib/
directory to see whatoh-my-zsh
has to offer…
The refcard is pretty useful for tips.
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’ 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/
.
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
.
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 configuration).
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’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.
This project wouldn’t exist without all of our awesome users and contributors: view our growing list of contributors
Thank you so much!