2012-09-03 16:08:39 -04:00
Prezto — Instantly Awesome Zsh
==============================
2011-07-18 00:00:35 -04:00
2012-09-03 16:08:39 -04:00
Prezto is the configuration framework for [Zsh][1]; it enriches the command line
2012-05-21 20:18:30 -04:00
interface environment with sane defaults, aliases, functions, auto completion,
and prompt themes.
2011-07-18 00:00:35 -04:00
2012-05-21 20:18:30 -04:00
Installation
------------
2011-07-18 00:00:35 -04:00
2014-10-05 21:10:27 -04:00
Prezto will work with any recent release of Zsh, but the minimum required
2017-10-20 23:08:48 +05:30
version is 4.3.11.
2011-07-18 00:00:35 -04:00
2012-09-03 16:08:39 -04:00
1. Launch Zsh:
2011-07-18 00:00:35 -04:00
2017-07-22 13:56:32 -05:00
```console
zsh
```
2011-07-18 00:00:35 -04:00
2012-09-03 16:08:39 -04:00
2. Clone the repository:
2011-07-18 00:00:35 -04:00
2017-07-20 20:07:29 -05:00
```console
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
```
2012-09-03 16:08:39 -04:00
3. Create a new Zsh configuration by copying the Zsh configuration files
provided:
2017-07-20 20:07:29 -05: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 00:00:35 -04:00
2017-04-13 03:27:59 -07: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 02:53:07 -07:00
2012-09-03 16:08:39 -04:00
4. Set Zsh as your default shell:
2011-07-18 00:00:35 -04:00
2017-07-20 20:07:29 -05:00
```console
chsh -s /bin/zsh
```
2011-07-18 00:00:35 -04:00
2012-09-03 16:08:39 -04:00
5. Open a new Zsh terminal window or tab.
2011-12-29 22:55:45 -05:00
### Troubleshooting
2011-07-18 00:00:35 -04:00
2012-09-03 16:08:39 -04:00
If you are not able to find certain commands after switching to *Prezto* ,
2013-12-17 01:17:31 +01:00
modify the `PATH` variable in *~/.zprofile* then open a new Zsh terminal
2011-12-29 22:55:45 -05:00
window or tab.
2011-07-18 00:00:35 -04:00
2013-09-26 14:06:54 -04:00
Updating
--------
2017-06-29 23:26:53 -07:00
Run `zprezto-update` to automatically check if there is an update to zprezto.
2017-07-25 03:07:59 -06: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-26 14:06:54 -04:00
2017-06-29 23:26:53 -07:00
To pull the latest changes and update submodules manually:
2017-07-20 20:07:29 -05:00
```console
cd $ZPREZTODIR
git pull
git submodule update --init --recursive
```
2013-09-26 14:06:54 -04:00
2012-05-27 18:23:57 -04:00
Usage
-----
2011-07-18 00:00:35 -04:00
2012-09-03 16:08:39 -04:00
Prezto has many features disabled by default. Read the source code and
2011-12-29 22:55:45 -05:00
accompanying README files to learn of what is available.
2011-07-18 00:00:35 -04:00
2012-03-28 12:41:39 -04:00
### Modules
2011-07-18 00:00:35 -04:00
2012-05-27 18:23:57 -04:00
1. Browse */modules* to see what is available.
2012-09-03 16:38:18 -04:00
2. Load the modules you need in *~/.zpreztorc* then open a new Zsh terminal
window or tab.
2011-07-18 00:00:35 -04:00
2011-12-29 22:55:45 -05:00
### Themes
2011-07-18 00:00:35 -04:00
2012-05-27 18:23:57 -04:00
1. For a list of themes, type `prompt -l` .
2. To preview a theme, type `prompt -p name` .
2012-09-03 16:38:18 -04:00
3. Load the theme you like in *~/.zpreztorc* then open a new Zsh terminal
window or tab.
2011-07-18 00:00:35 -04:00
2018-07-21 01:06:31 -06: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-12 17: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-12 17:54:49 -08:00
Note that module names need to be unique or they will cause an error when
loading.
2017-11-12 17:53:10 -08:00
```console
zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib
```
2012-05-27 18:23:57 -04:00
Customization
-------------
2011-07-18 00:00:35 -04:00
2013-08-11 22:20:14 -07: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 00:00:35 -04:00
2012-05-27 18:23:57 -04:00
Resources
---------
2011-07-18 00:00:35 -04:00
2012-08-27 20:17:36 -04:00
The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable.
2011-07-18 00:00:35 -04:00
2012-05-27 18:23:57 -04:00
License
-------
2011-12-28 17:04:43 -05:00
2017-04-05 12:34:31 -04:00
This project is licensed under the MIT License.
2011-12-28 17:04:43 -05:00
2012-05-21 20:18:30 -04:00
[1]: http://www.zsh.org
2015-05-19 17:39:00 -04:00
[2]: http://i.imgur.com/nrGV6pg.png "sorin theme"
2012-05-21 20:18:30 -04:00
[3]: http://git-scm.com
[4]: https://github.com
[5]: http://gitimmersion.com
2018-07-28 18:33:24 +02:00
[6]: https://git.github.io/git-reference/
2012-08-27 20:17:36 -04:00
[7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf
[8]: http://grml.org/zsh/zsh-lovers.html