2012-09-04 04:08:39 +08:00
Prezto — Instantly Awesome Zsh
==============================
2011-07-18 12:00:35 +08:00
2012-09-04 04:08:39 +08:00
Prezto is the configuration framework for [Zsh][1]; it enriches the command line
2012-05-22 08:18:30 +08:00
interface environment with sane defaults, aliases, functions, auto completion,
and prompt themes.
2011-07-18 12:00:35 +08:00
2012-05-22 08:18:30 +08:00
Installation
------------
2011-07-18 12:00:35 +08:00
2014-10-06 09:10:27 +08:00
Prezto will work with any recent release of Zsh, but the minimum required
2017-10-21 01:38:48 +08:00
version is 4.3.11.
2011-07-18 12:00:35 +08:00
2012-09-04 04:08:39 +08:00
1. Launch Zsh:
2011-07-18 12:00:35 +08:00
2017-07-23 02:56:32 +08:00
```console
zsh
```
2011-07-18 12:00:35 +08:00
2012-09-04 04:08:39 +08:00
2. Clone the repository:
2011-07-18 12:00:35 +08:00
2017-07-21 09:07:29 +08:00
```console
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
```
2012-09-04 04:08:39 +08:00
3. Create a new Zsh configuration by copying the Zsh configuration files
provided:
2017-07-21 09:07:29 +08:00
```sh
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
```
2011-07-18 12:00:35 +08:00
2017-04-13 18:27:59 +08:00
Note: If you already have any of the given config files, ln will error. In
simple cases you can add `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to
the bottom of your `.zshrc` to load prezto but keep your config intact. For
more complicated setups, it is recommended that you back up your original
configs and replace them with the provided prezto runcoms.
2017-04-13 17:53:07 +08:00
2012-09-04 04:08:39 +08:00
4. Set Zsh as your default shell:
2011-07-18 12:00:35 +08:00
2017-07-21 09:07:29 +08:00
```console
chsh -s /bin/zsh
```
2011-07-18 12:00:35 +08:00
2012-09-04 04:08:39 +08:00
5. Open a new Zsh terminal window or tab.
2011-12-30 11:55:45 +08:00
### Troubleshooting
2011-07-18 12:00:35 +08:00
2012-09-04 04:08:39 +08:00
If you are not able to find certain commands after switching to *Prezto* ,
2013-12-17 08:17:31 +08:00
modify the `PATH` variable in *~/.zprofile* then open a new Zsh terminal
2011-12-30 11:55:45 +08:00
window or tab.
2011-07-18 12:00:35 +08:00
2013-09-27 02:06:54 +08:00
Updating
--------
2017-06-30 14:26:53 +08:00
Run `zprezto-update` to automatically check if there is an update to zprezto.
2017-07-25 17:07:59 +08:00
If there are no file conflicts, zprezto and its submodules will be
automatically updated. If there are conflicts you will instructed to go into
the `$ZPREZTODIR` directory and resolve them yourself.
2013-09-27 02:06:54 +08:00
2017-06-30 14:26:53 +08:00
To pull the latest changes and update submodules manually:
2017-07-21 09:07:29 +08:00
```console
cd $ZPREZTODIR
git pull
git submodule update --init --recursive
```
2013-09-27 02:06:54 +08:00
2012-05-28 06:23:57 +08:00
Usage
-----
2011-07-18 12:00:35 +08:00
2012-09-04 04:08:39 +08:00
Prezto has many features disabled by default. Read the source code and
2011-12-30 11:55:45 +08:00
accompanying README files to learn of what is available.
2011-07-18 12:00:35 +08:00
2012-03-29 00:41:39 +08:00
### Modules
2011-07-18 12:00:35 +08:00
2012-05-28 06:23:57 +08:00
1. Browse */modules* to see what is available.
2012-09-04 04:38:18 +08:00
2. Load the modules you need in *~/.zpreztorc* then open a new Zsh terminal
window or tab.
2011-07-18 12:00:35 +08:00
2011-12-30 11:55:45 +08:00
### Themes
2011-07-18 12:00:35 +08:00
2012-05-28 06:23:57 +08:00
1. For a list of themes, type `prompt -l` .
2. To preview a theme, type `prompt -p name` .
2012-09-04 04:38:18 +08:00
3. Load the theme you like in *~/.zpreztorc* then open a new Zsh terminal
window or tab.
2011-07-18 12:00:35 +08:00
2018-07-21 15:06:31 +08:00
![sorin theme][2]
Note that the 'git' module may be required for special symbols to appear, such as those on the right of the above image. Add `'git'` to the list under `zstyle ':prezto:load' pmodule \ ` in your `.zpreztorc` to enable this module.
2017-11-13 09:53:10 +08:00
### External Modules
1. By default modules will be loaded from */modules* and */contrib* .
2. Additional module directories can be added to the
`:prezto:load:pmodule-dirs` setting in *~/.zpreztorc* .
2017-11-13 09:54:49 +08:00
Note that module names need to be unique or they will cause an error when
loading.
2017-11-13 09:53:10 +08:00
```console
zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib
```
2012-05-28 06:23:57 +08:00
Customization
-------------
2011-07-18 12:00:35 +08:00
2013-08-12 13:20:14 +08:00
The project is managed via [Git][3]. It is highly recommended that you fork this
project; so, that you can commit your changes and push them to [GitHub][4] to
not lose them. If you do not know how to use Git, follow this [tutorial][5] and
bookmark this [reference][6].
2011-07-18 12:00:35 +08:00
2012-05-28 06:23:57 +08:00
Resources
---------
2011-07-18 12:00:35 +08:00
2012-08-28 08:17:36 +08:00
The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable.
2011-07-18 12:00:35 +08:00
2012-05-28 06:23:57 +08:00
License
-------
2011-12-29 06:04:43 +08:00
2017-04-06 00:34:31 +08:00
This project is licensed under the MIT License.
2011-12-29 06:04:43 +08:00
2012-05-22 08:18:30 +08:00
[1]: http://www.zsh.org
2015-05-20 05:39:00 +08:00
[2]: http://i.imgur.com/nrGV6pg.png "sorin theme"
2012-05-22 08:18:30 +08:00
[3]: http://git-scm.com
[4]: https://github.com
[5]: http://gitimmersion.com
2018-07-29 00:33:24 +08:00
[6]: https://git.github.io/git-reference/
2012-08-28 08:17:36 +08:00
[7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf
[8]: http://grml.org/zsh/zsh-lovers.html