README.md 9 KB
Newer Older
Marc Cornellà's avatar
Marc Cornellà committed
1
2
3
<p align="center">
  <img src="https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png" alt="Oh My Zsh">
</p>
4

Robby Russell's avatar
Robby Russell committed
5
Oh My Zsh is an open source, community-driven framework for managing your [zsh](http://www.zsh.org/) configuration.
6

Robby Russell's avatar
Robby Russell committed
7
Sounds boring. Let's try again.
Robby Russell's avatar
Robby Russell committed
8

Robby Russell's avatar
Robby Russell committed
9
__Oh My Zsh will not make you a 10x developer...but you might feel like one.__
Robby Russell's avatar
Robby Russell committed
10
11
12

Once installed, your terminal shell will become the talk of the town _or your money back!_ With each keystroke in your command prompt, you'll take advantage of the hundreds of powerful plugins and beautiful themes. Strangers will come up to you in cafés and ask you, _"that is amazing! are you some sort of genius?"_

13
Finally, you'll begin to get the sort of attention that you have always felt you deserved. ...or maybe you'll use the time that you're saving to start flossing more often. 😬
14

Marc Cornellà's avatar
Marc Cornellà committed
15
To learn more, visit [ohmyz.sh](http://ohmyz.sh) and follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter.
16
17
18

## Getting Started

Robby Russell's avatar
Robby Russell committed
19
### Prerequisites
20

Chenje Katanda's avatar
Chenje Katanda committed
21
__Disclaimer:__ _Oh My Zsh works best on macOS and Linux._
22

Marc Cornellà's avatar
Marc Cornellà committed
23
* Unix-like operating system (macOS or Linux)
Marc Cornellà's avatar
Marc Cornellà committed
24
* [Zsh](http://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (`zsh --version` to confirm), check the following instruction here: [Installing ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH)
25
* `curl` or `wget` should be installed
Kevin Ndung'u's avatar
Kevin Ndung'u committed
26
* `git` should be installed
27
28
29

### Basic Installation

30
Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either `curl` or `wget`.
31
32
33

#### via curl

34
```shell
35
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
36
```
37
38
39

#### via wget

40
```shell
41
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
42
```
43
44
45
46
47

## Using Oh My Zsh

### Plugins

48
Oh My Zsh comes with a shitload of plugins to take advantage of. You can take a look in the [plugins](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins) directory and/or the [wiki](https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins) to see what's currently available.
49
50
51

#### Enabling Plugins

52
Once you spot a plugin (or several) that you'd like to use with Oh My Zsh, you'll need to enable them in the `.zshrc` file. You'll find the zshrc file in your `$HOME` directory. Open it with your favorite text editor and you'll see a spot to list all the plugins you want to load.
53

54
55
56
57
58
```shell
vi ~/.zshrc
```

For example, this might begin to look like this:
59

Qix's avatar
Qix committed
60
```shell
61
62
63
64
65
66
67
68
69
plugins=(
  git
  bundler
  dotenv
  osx
  rake
  rbenv
  ruby
)
Qix's avatar
Qix committed
70
```
71
72
73
74
75
76
77

#### Using Plugins

Most plugins (should! we're working on this) include a __README__, which documents how to use them.

### Themes

Qix's avatar
Qix committed
78
We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred themes now bundled. Most of them have [screenshots](https://wiki.github.com/robbyrussell/oh-my-zsh/themes) on the wiki. Check them out!
79
80
81

#### Selecting a Theme

82
_Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just the right one (for him)._
83

84
Once you find a theme that you'd like to use, you will need to edit the `~/.zshrc` file. You'll see an environment variable (all caps) in there that looks like:
85

Qix's avatar
Qix committed
86
87
88
```shell
ZSH_THEME="robbyrussell"
```
89

G. Kay Lee's avatar
G. Kay Lee committed
90
To use a different theme, simply change the value to match the name of your desired theme. For example:
91

Qix's avatar
Qix committed
92
93
```shell
ZSH_THEME="agnoster" # (this is one of the fancy ones)
94
# see https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#agnoster
Qix's avatar
Qix committed
95
```
96

97
98
_Note: many themes require installing the [Powerline Fonts](https://github.com/powerline/fonts) in order to render properly._

99
Open up a new terminal window and your prompt should look something like this:
100

Qix's avatar
Qix committed
101
102
103
![Agnoster theme](https://cloud.githubusercontent.com/assets/2618447/6316862/70f58fb6-ba03-11e4-82c9-c083bf9a6574.png)

In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes).
104

105
106
107
108
109
110
111
If you're feeling feisty, you can let the computer select one randomly for you each time you open a new terminal window.


```shell
ZSH_THEME="random" # (...please let it be pie... please be some pie..)
```

LE Manh Cuong's avatar
LE Manh Cuong committed
112
113
114
And if you want to pick random theme from a list of your favorite themes:

```shell
115
ZSH_THEME_RANDOM_CANDIDATES=(
LE Manh Cuong's avatar
LE Manh Cuong committed
116
117
118
119
  "robbyrussell"
  "agnoster"
)
```
120

121
122
## Advanced Topics

Qix's avatar
Qix committed
123
If you're the type that likes to get their hands dirty, these sections might resonate.
124
125
126

### Advanced Installation

Qix's avatar
Qix committed
127
Some users may want to change the default path, or manually install Oh My Zsh.
128
129
130
131
132
133
134

#### Custom Directory

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

If you'd like to 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:

Qix's avatar
Qix committed
135
```shell
Marc Cornellà's avatar
Marc Cornellà committed
136
export ZSH="$HOME/.dotfiles/oh-my-zsh"; sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Qix's avatar
Qix committed
137
```
138
139
140
141
142

#### Manual Installation

##### 1. Clone the repository:

Qix's avatar
Qix committed
143
144
145
```shell
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
```
146

Qix's avatar
Qix committed
147
##### 2. *Optionally*, backup your existing `~/.zshrc` file:
148

Qix's avatar
Qix committed
149
150
151
```shell
cp ~/.zshrc ~/.zshrc.orig
```
152
153
154

##### 3. Create a new zsh configuration file

155
You can create a new zsh config file by copying the template that we have included for you.
156

Qix's avatar
Qix committed
157
158
159
```shell
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
```
160
161
162

##### 4. Change your default shell

Qix's avatar
Qix committed
163
164
165
```shell
chsh -s /bin/zsh
```
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181

##### 5. Initialize your new zsh configuration

Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration.

### Installation Problems

If you have any hiccups installing, here are a few common fixes.

* 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`.

### Custom Plugins and Themes

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

Qix's avatar
Qix committed
182
If you have many functions that go well together, you can put them as a `XYZ.plugin.zsh` file in the `custom/plugins/` directory and then enable this plugin.
183
184
185
186
187
188
189

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/`.

## Getting Updates

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

Qix's avatar
Qix committed
190
191
192
```shell
DISABLE_UPDATE_PROMPT=true
```
193
194
195

To disable automatic upgrades, set the following in your `~/.zshrc`:

Qix's avatar
Qix committed
196
197
198
```shell
DISABLE_AUTO_UPDATE=true
```
199
200
201

### Manual Updates

Qix's avatar
Qix committed
202
If you'd like to upgrade at any point in time (maybe someone just released a new plugin and you don't want to wait a week?) you just need to run:
203

Qix's avatar
Qix committed
204
205
206
```shell
upgrade_oh_my_zsh
```
207

208
Magic! 🎉
209
210
211
212
213
214
215
216
217
218
219
220
221

## Uninstalling Oh My Zsh

Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy breakup.

If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration.

## Contributing

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!

We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/robbyrussell/oh-my-zsh/issues) and help where you can.

Qix's avatar
Qix committed
222
### Do NOT send us themes
223

224
We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes) wiki page.
225
226
227
228
229
230
231
232
233

## Contributors

Oh My Zsh has a vibrant community of happy users and delightful contributors. Without all the time and help from our contributors, it wouldn't be so awesome.

Thank you so much!

## Follow Us

234
We're on the social media.
Robby Russell's avatar
Robby Russell committed
235
236
237

* [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter. You should follow it.
* [Oh My Zsh](https://www.facebook.com/Oh-My-Zsh-296616263819290/) on Facebook.
238
239
240

## Merchandise

241
We have [stickers](https://shop.planetargon.com/products/ohmyzsh-stickers-set-of-3-stickers) and [shirts](http://shop.planetargon.com/products/ohmyzsh-t-shirts) for you to show off your love of Oh My Zsh. Again, this will help you become the talk of the town!
242

Qix's avatar
Qix committed
243
## License
244

245
Oh My Zsh is released under the [MIT license](LICENSE.txt).
246
247
248

## About Planet Argon

249
![Planet Argon](https://pa-github-assets.s3.amazonaws.com/PARGON_logo_digital_COL-small.jpg)
250

Robby Russell's avatar
Robby Russell committed
251
Oh My Zsh was started by the team at [Planet Argon](https://www.planetargon.com/?utm_source=github), a [Ruby on Rails development agency](https://www.planetargon.com/skills/ruby-on-rails-development?utm_source=github).