diff --git a/.gitmodules b/.gitmodules
index 547effa..301ae41 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,7 +16,7 @@
[submodule "modules/prompt/external/agnoster"]
path = modules/prompt/external/agnoster
url = https://github.com/agnoster/agnoster-zsh-theme.git
-[submodule "modules/prompt/functions/pure"]
+[submodule "modules/prompt/external/pure"]
path = modules/prompt/external/pure
url = https://github.com/sindresorhus/pure.git
[submodule "modules/fasd/external"]
@@ -25,10 +25,6 @@
[submodule "modules/prompt/external/async"]
path = modules/prompt/external/async
url = https://github.com/mafredri/zsh-async.git
-[submodule "modules/prompt/external/powerlevel9k"]
- path = modules/prompt/external/powerlevel9k
- url = https://github.com/bhilburn/powerlevel9k.git
- shallow = true
[submodule "modules/prompt/external/powerlevel10k"]
path = modules/prompt/external/powerlevel10k
url = https://github.com/romkatv/powerlevel10k.git
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f4dc0d6..6bcb36b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,42 +1,41 @@
-Contributing
-------------
+# Contributing
This project would not exist without all of its users and [contributors][1].
If you have ideas on how to make the configuration easier to maintain or
improve its performance, do not hesitate to fork and send pull requests.
-### Issue Reporting
+## Issue Reporting
- - Check that the issue has not already been reported.
- - Check that the issue has not already been fixed in the latest code.
- - Open an issue with a clear title and description in grammatically correct,
- complete sentences.
+- Check that the issue has not already been reported.
+- Check that the issue has not already been fixed in the latest code.
+- Open an issue with a clear title and description in grammatically correct,
+ complete sentences.
-### Pull Request
+## Pull Request
- - Read [how to properly contribute to open source projects on GitHub][2].
- - Use a topic branch to easily amend a pull request later, if necessary.
- - Write [good commit messages][3].
- - Squash commits on the topic branch before opening a pull request.
- - Use the same coding style and spacing.
- - Open a [pull request][4] that relates to but one subject with a clear
- title and description in grammatically correct, complete sentences.
+- Read [how to properly contribute to open source projects on GitHub][2].
+- Use a topic branch to easily amend a pull request later, if necessary.
+- Write [good commit messages][3].
+- Squash commits on the topic branch before opening a pull request.
+- Use the same coding style and spacing.
+- Open a [pull request][4] that relates to but one subject with a clear title
+ and description in grammatically correct, complete sentences.
-#### Code Style
+### Code Style
This project follows the [Google Shell Style Guide][5] when possible. However,
there are a number of additional things to keep in mind.
- - Local variables should be used whenever possible.
- - Prefer `zstyle` over environment variables for configuration.
- - Prefer (( ... )) over [[ ... ]] for arithmetic expression.
- - Use the function keyword to define functions.
- - The 80 character hard limit can be waived for readability.
+- Local variables should be used whenever possible.
+- Prefer `zstyle` over environment variables for configuration.
+- Prefer (( ... )) over [[ ... ]] for arithmetic expression.
+- Use the function keyword to define functions.
+- The 80 character hard limit can be waived for readability.
-#### Using an Alternative zprezto Directory
+### Using an Alternative *zprezto* Directory
-To work on zprezto without messing with your current configuration:
+To work on Prezto without affecting your current configuration:
```sh
mkdir devel-zprezto
@@ -52,24 +51,24 @@ done
Then to start zsh in this development environment you will run:
-```sh
+```console
ZDOTDIR=/path/to/devel-zprezto zsh
```
-#### Modules
+### Modules
- - A *README.md* must be present.
- - Large functions must be placed in a *functions* directory.
- - Functions that take arguments must have completion.
+- A *README.md* must be present.
+- Large functions must be placed in a *functions* directory.
+- Functions that take arguments must have completion.
-#### Themes
+### Themes
- - A screenshots section must be present in the file header.
- - The pull request description must have [embedded screenshots][6].
+- A screenshots section must be present in the file header.
+- The pull request description must have [embedded screenshots][6].
[1]: https://github.com/sorin-ionescu/prezto/contributors
-[2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request
+[2]: https://gun.io/blog/how-to-github-fork-branch-and-pull-request
[3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[4]: https://help.github.com/articles/using-pull-requests
[5]: https://google.github.io/styleguide/shell.xml
-[6]: http://daringfireball.net/projects/markdown/syntax#img
+[6]: https://github.github.com/gfm/#images
diff --git a/README.md b/README.md
index 45ef61c..f46e378 100644
--- a/README.md
+++ b/README.md
@@ -1,136 +1,158 @@
-Prezto — Instantly Awesome Zsh
-==============================
+# Prezto — Instantly Awesome Zsh
Prezto is the configuration framework for [Zsh][1]; it enriches the command line
interface environment with sane defaults, aliases, functions, auto completion,
and prompt themes.
-Installation
-------------
+## Installation
Prezto will work with any recent release of Zsh, but the minimum required
-version is 4.3.11.
+version is **4.3.11**.
- 1. Launch Zsh:
+01. Launch Zsh:
- ```console
- zsh
- ```
+ ```console
+ zsh
+ ```
- 2. Clone the repository:
+02. Clone the repository:
- ```console
- git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
- ```
+ ```console
+ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
+ ```
- 3. Create a new Zsh configuration by copying the Zsh configuration files
- provided:
+
+ Optional: Installing in $XDG_CONFIG_HOME
- ```sh
- setopt EXTENDED_GLOB
- for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
- ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
- done
- ```
+ Optionally, if you already have `$XDG_CONFIG_HOME` configured (usually as
+ _`$HOME/.config`_ by default) and intend to install Prezto under
+ _`$XDG_CONFIG_HOME/zsh`_ instead, you can clone the repository there and
+ configure `$ZDOTDIR` separately if not already configured.
- Note: If you already have any of the given configuration files, `ln` will
- cause error. In simple cases you can load prezto by adding the line
- `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to the bottom of your
- `.zshrc` and keep the rest of your Zsh configuration intact. For more
- complicated setups, it is recommended that you back up your original
- configs and replace them with the provided prezto runcoms.
+ - Clone the repository:
- 4. Set Zsh as your default shell:
+ ```console
+ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}/.zprezto"
+ ```
- ```console
- chsh -s /bin/zsh
- ```
+ - Configure `$XDG_CONFIG_HOME` and `$ZDOTDIR` in _`${$HOME}/.zshenv`_:
- 5. Open a new Zsh terminal window or tab.
+ ```sh
+ export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:=$HOME/.config}"
+ export ZDOTDIR="${ZDOTDIR:=$XDG_CONFIG_HOME/zsh}"
+ source "$ZDOTDIR/.zshenv"
+ ```
+
+
+
+03. Create a new Zsh configuration by copying/linking the Zsh configuration
+ files provided:
+
+ ```console
+ setopt EXTENDED_GLOB
+ for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
+ ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
+ done
+ ```
+
+ **Note:** If you already have any of the given configuration files, `ln` in
+ the above operation will cause an error. In simple cases, you can load
+ Prezto by adding the line `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to
+ the bottom of your _`${ZDOTDIR:-$HOME}/.zshrc`_ and keep the rest of your
+ Zsh configuration intact. For more complicated setups, we recommend that you
+ back up your original configs and replace them with the provided Prezto
+ [_`runcoms`_][10].
+
+04. Set Zsh as your default shell:
+
+ ```console
+ chsh -s /bin/zsh
+ ```
+
+05. Open a new Zsh terminal window or tab.
### Troubleshooting
-If you are not able to find certain commands after switching to *Prezto*,
-modify the `PATH` variable in *~/.zprofile* then open a new Zsh terminal
-window or tab.
+If you are not able to find certain commands after switching to Prezto, modify
+the `PATH` variable in _`${ZDOTDIR:-$HOME}/.zprofile`_ then open a new Zsh
+terminal window or tab.
-Updating
---------
+## Updating
-Run `zprezto-update` to automatically check if there is an update to zprezto.
-If there are no file conflicts, zprezto and its submodules will be
-automatically updated. If there are conflicts you will be instructed to go into
-the `$ZPREZTODIR` directory and resolve them yourself.
+Run `zprezto-update` to automatically check if there is an update to Prezto.
+If there are no file conflicts, Prezto and its submodules will be automatically
+updated. If there are conflicts you will be instructed to go into the
+`$ZPREZTODIR` directory and resolve them yourself.
To pull the latest changes and update submodules manually:
```console
cd $ZPREZTODIR
git pull
+git submodule sync --recursive
git submodule update --init --recursive
```
-Usage
------
+## Usage
-Prezto has many features disabled by default. Read the source code and
-accompanying README files to learn of what is available.
+Prezto has many features disabled by default. Read the source code and the
+accompanying README files to learn about what is available.
### Modules
- 1. Browse */modules* to see what is available.
- 2. Load the modules you need in *~/.zpreztorc* then open a new Zsh terminal
- window or tab.
+01. Browse [_`modules`_][9] to see what is available.
+02. Load the modules you need in _`${ZDOTDIR:-$HOME}/.zpreztorc`_ and then open
+ a new Zsh terminal window or tab.
### Themes
- 1. For a list of themes, type `prompt -l`.
- 2. To preview a theme, type `prompt -p name`.
- 3. Load the theme you like in *~/.zpreztorc* then open a new Zsh terminal
- window or tab.
+01. For a list of themes, type `prompt -l`.
+02. To preview a theme, type `prompt -p name`.
+03. Load the theme you like in _`${ZDOTDIR:-$HOME}/.zpreztorc`_ and then
+ open a new Zsh terminal window or tab.
- ![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 `pmodule`
- list (under `zstyle ':prezto:load' pmodule \` in your *~/.zpreztorc*) to
- enable this module.
+ ![sorin theme][2]
+ Note that the [_`git`_][11] module may be required for special symbols to
+ appear, such as those on the right of the above image. Add `'git'` to the
+ `pmodule` list (under `zstyle ':prezto:load' pmodule \` in your
+ _`${ZDOTDIR:-$HOME}/.zpreztorc`_) to enable this module.
### 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*.
+01. By default modules will be loaded from [_`/modules`_][9] and _`/contrib`_.
+02. Additional module directories can be added to the
+ `:prezto:load:pmodule-dirs` setting in _`${ZDOTDIR:-$HOME}/.zpreztorc`_.
- Note that module names need to be unique or they will cause an error when
- loading.
+ Note that module names need to be unique or they will cause an error when
+ loading.
- ```sh
- zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib
- ```
+ ```sh
+ zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib
+ ```
-Customization
--------------
+## Customization
-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].
+The project is managed via [Git][3]. We highly recommend that you fork this
+project so that you can commit your changes and push them to your fork on
+[GitHub][4] to preserve them. If you do not know how to use Git, follow this
+[tutorial][5] and bookmark this [reference][6].
-Resources
----------
+## Resources
The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable.
-License
--------
+## License
This project is licensed under the MIT License.
-[1]: http://www.zsh.org
-[2]: http://i.imgur.com/nrGV6pg.png "sorin theme"
-[3]: http://git-scm.com
+[1]: https://www.zsh.org
+[2]: https://i.imgur.com/nrGV6pg.png "sorin theme"
+[3]: https://git-scm.com
[4]: https://github.com
-[5]: http://gitimmersion.com
+[5]: https://gitimmersion.com
[6]: https://git.github.io/git-reference/
[7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf
-[8]: http://grml.org/zsh/zsh-lovers.html
+[8]: https://grml.org/zsh/zsh-lovers.html
+[9]: modules#readme
+[10]: runcoms#readme
+[11]: modules/git#readme
diff --git a/init.zsh b/init.zsh
index ebae912..5d7996a 100644
--- a/init.zsh
+++ b/init.zsh
@@ -44,6 +44,7 @@ function zprezto-update {
printf "There is an update available. Trying to pull.\n\n"
if git pull --ff-only; then
printf "Syncing submodules\n"
+ git submodule sync --recursive
git submodule update --init --recursive
return $?
else
@@ -182,6 +183,9 @@ zstyle -a ':prezto:load' zmodule 'zmodules'
for zmodule ("$zmodules[@]") zmodload "zsh/${(z)zmodule}"
unset zmodule{s,}
+# Load more specific 'run-help' function from $fpath.
+(( $+aliases[run-help] )) && unalias run-help && autoload -Uz run-help
+
# Autoload Zsh functions.
zstyle -a ':prezto:load' zfunction 'zfunctions'
for zfunction ("$zfunctions[@]") autoload -Uz "$zfunction"
diff --git a/modules/README.md b/modules/README.md
index 1ff4e61..cc9dfb1 100644
--- a/modules/README.md
+++ b/modules/README.md
@@ -1,206 +1,166 @@
-Modules
-=======
+# Modules
-Load modules in *zpreztorc*. The order matters.
+Load modules in _`${ZDOTDIR:-$HOME}/.zpreztorc`_. The order matters.
```sh
zstyle ':prezto:load' pmodule 'environment' 'terminal'
```
-Archive
--------
+## Archive
Provides functions to list and extract archives.
-Autosuggestions
----------------
+## Autosuggestions
Integrates zsh-autosuggestions into Prezto.
-Command-Not-Found
------------------
+## Command-Not-Found
Loads the command-not-found tool on macOS or Debian-based distributions.
-Completion
-----------
+## Completion
-Loads and configures tab completion and provides additional completions from
-the zsh-completions project.
+Loads and configures TAB completion and provides additional
+completions from the zsh-completions project.
-Directory
----------
+## Directory
Sets directory options and defines directory aliases.
-DNF
----
+## DNF
-Defines dnf aliases.
+Defines _dnf_ aliases.
-Dpkg
-----
+## Dpkg
-Defines dpkg aliases and functions.
+Defines _dpkg_ aliases and functions.
-Editor
-------
+## Editor
Sets key bindings.
-Emacs
------
+## Emacs
Enables Emacs dependency management.
-Environment
------------
+## Environment
Sets general shell options and defines environment variables.
-Fasd
-----
+## Fasd
Maintains a frequently used file and directory list for fast access.
-Git
----
+## Git
Enhances the Git distributed version control system by providing aliases,
functions and by exposing repository status information to prompts.
-GNU Utility
------------
+## GNU Utility
Provides for the interactive use of GNU utilities on non-GNU systems.
-GPG
----
+## GPG
Provides for an easier use of GPG by setting up gpg-agent.
-Haskell
--------
+## Haskell
Enables local Haskell package installation.
-Helper
-------
+## Helper
Provides helper functions for developing modules.
-History
--------
+## History
Sets history options and defines history aliases.
-History Substring Search
-------------------------
+## History Substring Search
Integrates zsh-history-substring-search into Prezto.
-Homebrew
---------
+## Homebrew
Defines Homebrew aliases.
-MacPorts
---------
+## MacPorts
Defines MacPorts aliases and adds MacPorts directories to path variables.
-Node.js
--------
+## Node.js
Provides utility functions for Node.js and loads npm completion.
-OCaml
------
+## OCaml
Initializes OCaml package management.
-OSX
----
+## OSX
Defines macOS aliases and functions.
-Pacman
-------
+## Pacman
Provides aliases and functions for the Pacman package manager and frontends.
-Perl
-----
+## Perl
Enables local Perl module installation on macOS and defines alises.
-Prompt
-------
+## Prompt
Loads prompt themes.
-Python
-------
+## Python
Enables local Python and local Python package installation.
-Ruby on Rails
--------------
+## Ruby on Rails
Defines Ruby on Rails aliases.
-Rsync
------
+## Rsync
Defines rsync aliases.
-Ruby
-----
+## Ruby
Configures Ruby local gem installation, loads version managers, and defines
aliases.
-GNU Screen
-----------
+## GNU Screen
Defines GNU Screen aliases and provides for auto launching it at start-up.
-Spectrum
---------
+## Spectrum
Provides for easier use of 256 colors and effects.
-SSH
----
+## SSH
Provides for an easier use of SSH by setting up ssh-agent.
-Syntax Highlighting
--------------------
+## Syntax Highlighting
Integrates zsh-syntax-highlighting into Prezto.
-Terminal
---------
+## Terminal
Sets terminal window and tab titles.
-Tmux
-----
+## Tmux
Defines tmux aliases and provides for auto launching it at start-up.
-Utility
--------
+## Utility
Defines general aliases and functions.
-Wake-on-LAN
------------
+## Wake-on-LAN
This module provides a wrapper around the wakeonlan tool.
-Yum
----
+## Yum
Defines yum aliases.
diff --git a/modules/archive/README.md b/modules/archive/README.md
index c9806ea..be63788 100644
--- a/modules/archive/README.md
+++ b/modules/archive/README.md
@@ -1,52 +1,53 @@
-Archive
-=======
+# Archive
Provides functions to create, list, and extract archives.
-Functions
----------
+This module must be loaded _before_ the [_`completion`_][1] module so that the
+provided completion definitions are loaded automatically by _`completion`_
+module.
- - `archive` creates an archive based on the provided archive name.
- - `lsarchive` lists the contents of one or more archives.
- - `unarchive` extracts the contents of one or more archives.
+## Functions
-Supported Formats
------------------
+- `archive` creates an archive based on the provided archive name.
+- `lsarchive` lists the contents of one or more archives.
+- `unarchive` extracts the contents of one or more archives.
+
+## Supported Formats
The following archive formats are supported when the required utilities are
installed:
- - *.tar.gz*, *.tgz* require `tar` (optionally `pigz`).
- - *.tar.bz2*, *.tbz* require `tar` (optionally `pbzip2`).
- - *.tar.xz*, *.txz* require `tar` with *xz* support.
- - *.tar.zma*, *.tlz* require `tar` with *lzma* support.
- - *.tar* requires `tar`.
- - *.gz* requires `gunzip`.
- - *.bz2* requires `bunzip2`.
- - *.xz* requires `unxz`.
- - *.lzma* requires `unlzma`.
- - *.Z* requires `uncompress`.
- - *.zip*, *.jar* requires `unzip`.
- - *.rar* requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`.
- - *.7z* requires `7za`.
- - *.deb* requires `ar`, `tar`.
+- _.tar.gz_, _.tgz_ require `tar` (optionally `pigz`).
+- _.tar.bz2_, _.tbz_ require `tar` (optionally `pbzip2`).
+- _.tar.xz_, _.txz_ require `tar` with _xz_ support.
+- _.tar.zma_, _.tlz_ require `tar` with _lzma_ support.
+- _.tar_ requires `tar`.
+- _.gz_ requires `gunzip`.
+- _.bz2_ requires `bunzip2`.
+- _.xz_ requires `unxz`.
+- _.lzma_ requires `unlzma`.
+- _.Z_ requires `uncompress`.
+- _.zip_, _.jar_ requires `unzip`.
+- _.rar_ requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`.
+- _.7z_ requires `7za`.
+- _.deb_ requires `ar`, `tar`.
Additionally, if `pigz` and/or `pbzip2` are installed, `archive` will use them
over their traditional counterparts, `gzip` and `bzip2` respectively, to take
full advantage of all available CPU cores for compression.
-Alternatives
-------------
+## Alternatives
-Specifically on macOS, [The Unarchiver][1] provides a similar command line tool
+Specifically on macOS, [The Unarchiver][2] provides a similar command line tool
which doesn't depend on a number of other programs being installed.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][1].*
+_The authors of this module should be contacted via the [issue tracker][3]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
- - [Matt Hamilton](https://github.com/Eriner)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Matt Hamilton](https://github.com/Eriner)
-[1]: https://theunarchiver.com/command-line
+[1]: ../completion#readme
+[2]: https://theunarchiver.com/command-line
+[3]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/archive/functions/_lsarchive b/modules/archive/functions/_lsarchive
index f2cee88..bcbfbd6 100644
--- a/modules/archive/functions/_lsarchive
+++ b/modules/archive/functions/_lsarchive
@@ -10,4 +10,4 @@
_arguments \
'(-v --verbose)'{-v,--remove}'[verbose archive listing]' \
- "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z)(-.)'" && return 0
+ "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|zst|jar|rar|7z)(-.)'" && return 0
diff --git a/modules/archive/functions/_unarchive b/modules/archive/functions/_unarchive
index 90e32f1..6a940b1 100644
--- a/modules/archive/functions/_unarchive
+++ b/modules/archive/functions/_unarchive
@@ -10,4 +10,4 @@
_arguments \
'(-r --remove)'{-r,--remove}'[remove archive]' \
- "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z|deb)(-.)'" && return 0
+ "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|zst|jar|rar|7z|deb)(-.)'" && return 0
diff --git a/modules/archive/functions/archive b/modules/archive/functions/archive
index 10bbad3..b6f9523 100644
--- a/modules/archive/functions/archive
+++ b/modules/archive/functions/archive
@@ -1,4 +1,3 @@
-#!/usr/bin/env zsh
#
# Creates archive file
#
@@ -8,7 +7,7 @@
# function archive {
-local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin
+local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin _zstd_bin
if (( $# < 2 )); then
cat >&2 < 0 )); do
(*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \
&& tar --lzma -t${verbose:+v}f "$1" \
|| lzcat "$1" | tar x${verbose:+v}f - ;;
+ (*.tar.zst|*.tzst) tar -I zstd -t${verbose:+v}f "$1" ;;
(*.tar) tar t${verbose:+v}f "$1" ;;
(*.zip|*.jar) unzip -l${verbose:+v} "$1" ;;
(*.rar) ( (( $+commands[unrar] )) \
diff --git a/modules/archive/functions/unarchive b/modules/archive/functions/unarchive
index 9e38a80..66c7e35 100644
--- a/modules/archive/functions/unarchive
+++ b/modules/archive/functions/unarchive
@@ -12,7 +12,7 @@ local success
local file_name
local file_path
local extract_dir
-local _gzip_bin _bzip2_bin _xz_bin
+local _gzip_bin _bzip2_bin _xz_bin _zstd_bin
if (( $# == 0 )); then
cat >&2 < 0 )); do
if [[ ! -s "$1" ]]; then
print "$0: file not valid: $1" >&2
@@ -72,6 +74,7 @@ while (( $# > 0 )); do
(*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \
&& tar --lzma -xvf "$1" \
|| lzcat "$1" | tar -xvf - ;;
+ (*.tar.zst|*.tzst) tar -xvf "$1" --use-compress-program="${_zstd_bin}" ;;
(*.tar) tar -xvf "$1" ;;
(*.gz) gunzip "$1" ;;
(*.bz2) bunzip2 "$1" ;;
diff --git a/modules/autosuggestions/README.md b/modules/autosuggestions/README.md
index 48f9852..a3e86c2 100644
--- a/modules/autosuggestions/README.md
+++ b/modules/autosuggestions/README.md
@@ -1,61 +1,62 @@
-Autosuggestions
-===============
+# Autosuggestions
Integrates [zsh-autosuggestions][1] into Prezto, which implements the
[Fish shell][2]'s autosuggestions feature, where the user can type in any part
of a previously entered command and Zsh suggests commands as you type based on
history and completions.
-If this module is used in conjunction with the *syntax-highlighting* module,
-this module must be loaded **after** the *syntax-highlighting* module.
+If this module is used in conjunction with the [_`syntax-highlighting`_][3]
+module, this module must be loaded _after_ the _`syntax-highlighting`_ module.
-If this module is used in conjunction with the *history-substring-search*
-module, this module must be loaded **after** the *history-substring-search*
+If this module is used in conjunction with the [_`history-substring-search`_][4]
+module, this module must be loaded _after_ the _`history-substring-search`_
module.
-Contributors
-------------
+To elaborate, the relative order of loading the modules would be
+_`autosuggestions`_, _`syntax-highlighting`_ and _`history-substring-search`_.
+
+## Contributors
New features and bug fixes should be submitted to the [zsh-autosuggestions][1]
project according to its rules and regulations. This module will be synchronized
against it.
-Settings
---------
+## Settings
### Highlighting
-If colors are enabled, *autosuggestions* will automatically highlight
+If colors are enabled, _autosuggestions_ will automatically highlight
positive results.
To enable highlighting for this module only, add the following line to
-*zpreztorc*:
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:autosuggestions' color 'yes'
```
-To set the query found color, add the following line to *zpreztorc*:
+To set the query found color, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:autosuggestions:color' found ''
```
-Troubleshooting
----------------
+## Troubleshooting
### Autosuggestions from previous sessions don't show up
For autosuggestions from previous shell sessions to work, please make sure you
also have the `history` module enabled.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][3].*
+_The authors of this module should be contacted via the [issue tracker][5]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/tarruda/zsh-autosuggestions
-[2]: http://fishshell.com
-[3]: https://github.com/sorin-ionescu/prezto/issues
+[2]: https://fishshell.com
+[3]: ../syntax-highlighting#readme
+[4]: ../history-substring-search#readme
+[5]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/command-not-found/README.md b/modules/command-not-found/README.md
index ee5a94d..c433380 100644
--- a/modules/command-not-found/README.md
+++ b/modules/command-not-found/README.md
@@ -1,22 +1,21 @@
-Command-Not-Found
-=================
+# Command-Not-Found
-When you try to use a command that is not available locally, searches
-the package manager for a package offering that command and suggests
-the proper install command.
+When you try to use a command that is not available locally, searches the
+package manager for a package offering that command and suggests the proper
+install command.
Debian and Arch Linux based distributions use the [`command-not-found`][1] tool.
-macOS uses Homebrew's [`command-not-found` clone][2]. Note that you also need to
-[follow the instructions][3] to tap the `command-not-found` homebrew repository.
+macOS uses Homebrew's [`command-not-found` clone][2]. Note that unless you have
+a recent version of Homebrew installed, you might also need to tap the
+`command-not-found` Homebrew repository [following the instructions][3].
+## Authors
-Authors
--------
+_The authors of this module should be contacted via the [issue tracker][4]._
-*The authors of this module should be contacted via the [issue tracker][4].*
-
- - [Joseph Booker](https://github.com/sargas)
+- [Joseph Booker](https://github.com/sargas)
+- [Indrajit Raychaudhuri](https://github.com/indrajitr)
[1]: https://code.launchpad.net/command-not-found
[2]: https://github.com/Homebrew/homebrew-command-not-found
diff --git a/modules/command-not-found/init.zsh b/modules/command-not-found/init.zsh
index 35884ce..d81692d 100644
--- a/modules/command-not-found/init.zsh
+++ b/modules/command-not-found/init.zsh
@@ -13,30 +13,10 @@ if [[ -s '/etc/zsh_command_not_found' ]]; then
elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then
source '/usr/share/doc/pkgfile/command-not-found.zsh'
# Load command-not-found on macOS when Homebrew tap is configured.
-# To avoid performance penalty, we do not use Homebrew's ruby based command
-# lookup mechanism (viz., `brew command command-not-found-init`) and instead
-# `find` it ourselves from `TAP_DIRECTORY` defined internally in Homebrew.
-elif (( $+commands[brew] )); then
- cnf_command=(
- "$(brew --repository 2> /dev/null)"/Library/Taps/*/*/cmd/brew-command-not-found-init(|.rb)(.N)
- )
- if (( $#cnf_command )); then
- cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/brew-command-not-found-cache.zsh"
-
- if [[ "${${(@o)cnf_command}[1]}" -nt "$cache_file" \
- || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
- || ! -s "$cache_file" ]]; then
- mkdir -p "$cache_file:h"
- # brew command-not-found-init is slow; cache its output.
- brew command-not-found-init >! "$cache_file" 2> /dev/null
- fi
-
- source "$cache_file"
-
- unset cache_file
- fi
-
- unset cnf_command
+elif (( $+commands[brew] )) \
+ && [[ -s "${hb_cnf_handler::="$(brew --repository 2> /dev/null)"/Library/Taps/homebrew/homebrew-command-not-found/handler.sh}" ]]; then
+ source "$hb_cnf_handler"
+ unset hb_cnf_handler
# Return if requirements are not found.
else
return 1
diff --git a/modules/completion/README.md b/modules/completion/README.md
index dc2b9b8..cdce9e5 100644
--- a/modules/completion/README.md
+++ b/modules/completion/README.md
@@ -1,53 +1,55 @@
-Completion
-==========
+# Completion
-Loads and configures tab completion and provides additional completions from
-the [zsh-completions][1] project.
+Loads and configures TAB completion and provides additional
+completions from the [zsh-completions][1] project.
-This module must be loaded **after** the *utility* module.
+This module must be loaded late _after_ the _`utility`_ module and all other
+modules that provide completion definitions.
-Options
--------
+## Options
- - `COMPLETE_IN_WORD` complete from both ends of a word.
- - `ALWAYS_TO_END` move cursor to the end of a completed word.
- - `PATH_DIRS` perform path search even on command names with slashes.
- - `AUTO_MENU` show completion menu on a successive tab press.
- - `AUTO_LIST` automatically list choices on ambiguous completion.
- - `AUTO_PARAM_SLASH` if completed parameter is a directory, add a trailing slash.
- - `EXTENDED_GLOB` needed for file modification glob modifiers with compinit.
- - `MENU_COMPLETE` do not autoselect the first completion entry.
- - `FLOW_CONTROL` disable start/stop characters in shell editor.
+- `COMPLETE_IN_WORD` complete from both ends of a word.
+- `ALWAYS_TO_END` move cursor to the end of a completed word.
+- `PATH_DIRS` perform path search even on command names with slashes.
+- `AUTO_MENU` show completion menu on a successive TAB press.
+- `AUTO_LIST` automatically list choices on ambiguous completion.
+- `AUTO_PARAM_SLASH` if completed parameter is a directory, add a trailing
+ slash (`/`).
+- `EXTENDED_GLOB` needed for file modification glob modifiers with _compinit_.
+- `MENU_COMPLETE` do not autoselect the first completion entry.
+- `FLOW_CONTROL` disable start/stop characters in shell editor.
-Settings
---------
+## Variables
-### Ignore */etc/hosts* Entries
+- `LS_COLORS` used by default for Zsh [standard style][2] 'list-colors'.
-To ignore certain entries from static */etc/hosts* for host completion, add the
-following lines in *zpreztorc* with the IP addresses of the hosts as they
-appear in */etc/hosts*. Both IP address and the corresponding hostname will be
-ignored during host completion. However, some of the entries ignored from
-*/etc/hosts* still might appear during completion because of their presence in
-*ssh* configuration or history).
+## Settings
+
+### Ignore _`/etc/hosts`_ Entries
+
+To ignore certain entries from static _`/etc/hosts`_ for host completion, add
+the following lines in _`${ZDOTDIR:-$HOME}/.zpreztorc`_ with the IP addresses of
+the hosts as they appear in _`/etc/hosts`_. Both IP address and the associated
+hostname(s) will be ignored during host completion. However, some of the entries
+ignored from _`/etc/hosts`_ still might appear during completion because of
+their presence in _ssh_ configuration or history).
```sh
zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \
- '0.0.0.0' '127.0.0.1'
+ '0.0.0.0' '127.0.0.1'
```
-Contributors
-------------
+## Contributors
-Completions should be submitted to the [zsh-completions][1] project according
-to its rules and regulations. This module will be synchronized against it.
+Completions should be submitted to the [zsh-completions][1] project according to
+its rules and regulations. This module will be synchronized against it.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][3]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/zsh-users/zsh-completions
-[2]: https://github.com/sorin-ionescu/prezto/issues
+[2]: https://zsh.sourceforge.net/Doc/Release/Completion-System.html#Standard-Styles
+[3]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/completion/external b/modules/completion/external
index ed4ff53..11ad0a4 160000
--- a/modules/completion/external
+++ b/modules/completion/external
@@ -1 +1 @@
-Subproject commit ed4ff5384b03aa775a57d4c9588c88850026b0b3
+Subproject commit 11ad0a45ff1695cac00e86c687cce6fa1fd1cdbd
diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh
index 4cf46fa..fc5cfd4 100644
--- a/modules/completion/init.zsh
+++ b/modules/completion/init.zsh
@@ -7,26 +7,44 @@
#
# Return if requirements are not found.
-if [[ "$TERM" == 'dumb' ]]; then
+if [[ $TERM == 'dumb' ]]; then
return 1
fi
# Add zsh-completions to $fpath.
-fpath=("${0:h}/external/src" $fpath)
+fpath=(${0:h}/external/src $fpath)
+
+# Add completion for keg-only brewed curl when available.
+if (( $+commands[brew] )) \
+ && [[ -d "${curl_prefix::="$(brew --prefix 2> /dev/null)"/opt/curl}" ]]; then
+ fpath=($curl_prefix/share/zsh/site-functions $fpath)
+fi
+unset curl_prefix
#
# Options
#
-setopt COMPLETE_IN_WORD # Complete from both ends of a word.
-setopt ALWAYS_TO_END # Move cursor to the end of a completed word.
-setopt PATH_DIRS # Perform path search even on command names with slashes.
-setopt AUTO_MENU # Show completion menu on a successive tab press.
-setopt AUTO_LIST # Automatically list choices on ambiguous completion.
-setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
-setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit
-unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
-unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
+setopt COMPLETE_IN_WORD # Complete from both ends of a word.
+setopt ALWAYS_TO_END # Move cursor to the end of a completed word.
+setopt PATH_DIRS # Perform path search even on command names with slashes.
+setopt AUTO_MENU # Show completion menu on a successive tab press.
+setopt AUTO_LIST # Automatically list choices on ambiguous completion.
+setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
+setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit.
+unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
+unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
+
+#
+# Variables
+#
+
+# Standard style used by default for 'list-colors'
+LS_COLORS=${LS_COLORS:-'di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'}
+
+#
+# Initialization
+#
# Load and initialize the completion system ignoring insecure directories with a
# cache time of 20 hours, so it should almost always regenerate the first time a
@@ -40,6 +58,8 @@ if [[ $_comp_path(#qNmh-20) ]]; then
else
mkdir -p "$_comp_path:h"
compinit -i -d "$_comp_path"
+ # Keep $_comp_path younger than cache time even if it isn't regenerated.
+ touch "$_comp_path"
fi
unset _comp_path
@@ -47,6 +67,10 @@ unset _comp_path
# Styles
#
+# Defaults.
+zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
+zstyle ':completion:*:default' list-prompt '%S%M matches%s'
+
# Use caching to make completion for commands such as dpkg and apt usable.
zstyle ':completion::complete:*' use-cache on
zstyle ':completion::complete:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompcache"
@@ -69,7 +93,6 @@ zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f'
zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f'
zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f'
zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'
-zstyle ':completion:*:default' list-prompt '%S%M matches%s'
zstyle ':completion:*' format ' %F{yellow}-- %d --%f'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' verbose yes
@@ -90,7 +113,6 @@ zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
# Directories
-zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
diff --git a/modules/directory/README.md b/modules/directory/README.md
index ce806ee..86953a4 100644
--- a/modules/directory/README.md
+++ b/modules/directory/README.md
@@ -1,34 +1,30 @@
-Directory
-=========
+# Directory
Sets directory options and defines directory aliases.
-Options
--------
+## Options
- - `AUTO_CD` auto changes to a directory without typing `cd`.
- - `AUTO_PUSHD` pushes the old directory onto the stack on `cd`.
- - `PUSHD_IGNORE_DUPS` does not store duplicates in the stack.
- - `PUSHD_SILENT` does not print the directory stack after `pushd` or `popd`.
- - `PUSHD_TO_HOME` pushes to the home directory when no argument is given.
- - `CDABLE_VARS` changes directory to a path stored in a variable.
- - `MULTIOS` writes to multiple descriptors.
- - `EXTENDED_GLOB` uses extended globbing syntax.
- - `CLOBBER` does not overwrite existing files with `>` and `>>`. Use `>!` and
- `>>!` to bypass.
+- `AUTO_CD` auto changes to a directory without typing `cd`.
+- `AUTO_PUSHD` pushes the old directory onto the stack on `cd`.
+- `PUSHD_IGNORE_DUPS` does not store duplicates in the stack.
+- `PUSHD_SILENT` does not print the directory stack after `pushd` or `popd`.
+- `PUSHD_TO_HOME` pushes to the home directory when no argument is given.
+- `CDABLE_VARS` changes directory to a path stored in a variable.
+- `MULTIOS` writes to multiple descriptors.
+- `EXTENDED_GLOB` uses extended globbing syntax.
+- `CLOBBER` does not overwrite existing files with `>` and `>>`. Use `>!` and
+ `>>!` to bypass.
-Aliases
--------
+## Aliases
- - `d` prints the contents of the directory stack.
- - `1 ... 9` changes the directory to the **n** previous one.
+- `d` prints the contents of the directory stack.
+- `1 ... 9` changes the directory to the **n** previous one.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][1].*
+_The authors of this module should be contacted via the [issue tracker][1]._
- - [James Cox](https://github.com/imajes)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [James Cox](https://github.com/imajes)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/dnf/README.md b/modules/dnf/README.md
index bbf1c92..91a35e8 100644
--- a/modules/dnf/README.md
+++ b/modules/dnf/README.md
@@ -1,29 +1,25 @@
-DNF
-===
+# DNF
Defines [dnf][1] aliases.
-Aliases
--------
+## Aliases
- - `dnfc` removes package(s) and leaves.
- - `dnfi` installs package(s).
- - `dnfh` displays history.
- - `dnfl` lists packages.
- - `dnfL` lists installed packages.
- - `dnfq` displays package information.
- - `dnfr` removes package(s).
- - `dnfs` searches for a package.
- - `dnfu` updates packages.
- - `dnfU` upgrades packages.
+- `dnfc` removes package(s) and leaves.
+- `dnfi` installs package(s).
+- `dnfh` displays history.
+- `dnfl` lists packages.
+- `dnfL` lists installed packages.
+- `dnfq` displays package information.
+- `dnfr` removes package(s).
+- `dnfs` searches for a package.
+- `dnfu` updates packages.
+- `dnfU` upgrades packages.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://fedoraproject.org/wiki/Features/DNF
[2]: https://github.com/sorin-ionescu/prezto/issues
-
diff --git a/modules/docker/README.md b/modules/docker/README.md
index 335f77a..f193dc6 100644
--- a/modules/docker/README.md
+++ b/modules/docker/README.md
@@ -1,4 +1,4 @@
-# ZSH Docker Aliases
+# Docker
Defines [Docker][1] aliases and functions.
@@ -21,14 +21,15 @@ Defines [Docker][1] aliases and functions.
- `dkli` Log in to a Docker registry
- `dklo` Log out from a Docker registry
- `dkls` is alias for `dkps`
-- `dkp` Pause all processes within one or more containers
+- `dkp` Pause all processes within one or more containers
- `dkP` Unpause all processes within one or more containers
- `dkpl` Pull an image or a repository from a registry
- `dkph` Push an image or a repository to a registry
- `dkps` List containers
- `dkpsa` List all containers (default lists just running)
- `dkr` Run a command in a new container
-- `dkR` Run an interactive command in a new container and automatically remove the container when it exits
+- `dkR` Run an interactive command in a new container and automatically remove
+ the container when it exits
- `dkRe` like `dkR` and set entry point to `/bin/bash`
- `dkrm` Remove one or more containers
- `dkrmi` Remove one or more images
@@ -39,13 +40,14 @@ Defines [Docker][1] aliases and functions.
- `dks` Start one or more stopped containers
- `dkS` Restart a container
- `dkss` Display a live stream of container(s) resource usage statistics
-- `dksv` Save one or more images to a tar archive (streamed to STDOUT by default)
+- `dksv` Save one or more images to a tar archive (streamed to STDOUT by
+ default)
- `dkt` Tag an image into a repository
- `dktop` Display the running processes of a container
- `dkup` Update configuration of one or more containers
- `dkV` Manage Docker volumes
- `dkv` Show the Docker version information
-- `dkw` Block until a container stops, then print its exit code
+- `dkw` Block until a container stops, then print its exit code
- `dkx` Stop a running container
#### container (C)
@@ -65,7 +67,8 @@ Defines [Docker][1] aliases and functions.
- `dkCS` Restart one or more containers
- `dkCrm` Remove one or more containers
- `dkCr` Run a command in a new container
-- `dkCR` Run an interactive command in a new container and automatically remove the container when it exits
+- `dkCR` Run an interactive command in a new container and automatically remove
+ the container when it exits
- `dkCRe` like `dkCR` and set entry point to `/bin/bash`
- `dkCs` Start one or more stopped containers
- `dkCss` Display a live stream of container(s) resource usage statistics
@@ -87,7 +90,8 @@ Defines [Docker][1] aliases and functions.
- `dkIpl` Pull an image or a repository from a registry
- `dkIph` Push an image or a repository to a registry
- `dkIrm` Remove one or more images
-- `dkIsv` Save one or more images to a tar archive (streamed to STDOUT by default)
+- `dkIsv` Save one or more images to a tar archive (streamed to STDOUT by
+ default)
- `dkIt` Tag an image into a repository
#### volume (V)
@@ -130,8 +134,10 @@ Defines [Docker][1] aliases and functions.
- `dkm` is short for `docker-machine`
- `dkma` Get or set the active machine
- `dkmcp` Copy files between machines
-- `dkmd` Set up the default machine ; alowing you to use `dkme` without arguments
-- `dkme` Set up the environment for the Docker client (eg: `dkme staging` to toggle to staging)
+- `dkmd` Set up the default machine ; alowing you to use `dkme` without
+ arguments
+- `dkme` Set up the environment for the Docker client (eg: `dkme staging` to
+ toggle to staging)
- `dkmin` Inspect information about a machine
- `dkmip` Get the IP address of a machine
- `dkmk` Kill a machine
@@ -171,8 +177,8 @@ Defines [Docker][1] aliases and functions.
- `dkcsc` Set number of containers for a service
- `dkcS` Restart services
- `dkcu` Create and start containers
-- `dkcU` Create and start containers in detached mode:
- Run containers in the background, print new container names
+- `dkcU` Create and start containers in detached mode: Run containers in the
+ background, print new container names
- `dkcV` Show the Docker-Compose version information
- `dkcx` Stop services
diff --git a/modules/dpkg/README.md b/modules/dpkg/README.md
index 6290c05..4df9230 100644
--- a/modules/dpkg/README.md
+++ b/modules/dpkg/README.md
@@ -1,10 +1,8 @@
-Dpkg
-====
+# Dpkg
-Defines [dpkg][1] aliases and functions.
+Defines [_dpkg_][1] aliases and functions.
-Aliases
--------
+## Aliases
- `debc` cleans the cache.
- `debf` displays a file's package.
@@ -20,22 +18,20 @@ Aliases
- `deb-kclean` removes all kernel images and headers, except for the ones in
use.
-Functions
----------
+## Functions
-- `deb-clone` generates a script that can be used to duplicate a dpkg-based
+- `deb-clone` generates a script that can be used to duplicate a `dpkg`-based
system.
-- `deb-history` displays dpkg history.
-- `deb-kbuild` makes a dpkg Linux kernel package.
+- `deb-history` displays `dpkg` history.
+- `deb-kbuild` makes a `dpkg` Linux kernel package.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [Daniel Bolton](https://github.com/dbb)
- - [Benjamin Boudreau](https://github.com/dreur)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Daniel Bolton](https://github.com/dbb)
+- [Benjamin Boudreau](https://github.com/dreur)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: http://wiki.debian.org/Teams/Dpkg
+[1]: https://wiki.debian.org/Teams/Dpkg
[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/editor/README.md b/modules/editor/README.md
index 7035635..9aef6ef 100644
--- a/modules/editor/README.md
+++ b/modules/editor/README.md
@@ -1,34 +1,30 @@
-Editor
-======
+# Editor
Sets editor specific key bindings options and variables.
-Options
--------
+## Options
- - `BEEP` beep on error in line editor.
+- `BEEP` beep on error in line editor.
-Variables
----------
+## Variables
- - `WORDCHARS` treat a given set of characters as part of a word.
+- `WORDCHARS` treat a given set of characters as part of a word.
-Settings
---------
+## Settings
### Key bindings
-To enable key bindings, add the following to *zpreztorc*, and replace 'bindings'
-with 'emacs' or 'vi'.
+To enable key bindings, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_,
+and replace `''` with `'emacs'` or `'vi'`.
```sh
-zstyle ':prezto:module:editor' key-bindings 'bindings'
+zstyle ':prezto:module:editor' key-bindings ''
```
### Dot Expansion
To enable the auto conversion of .... to ../.., add the following to
-*zpreztorc*.
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh
zstyle ':prezto:module:editor' dot-expansion 'yes'
@@ -36,15 +32,14 @@ zstyle ':prezto:module:editor' dot-expansion 'yes'
### PS Context
-To enable the prompt context to be set, add the following to your
-*zpreztorc*.
+To enable the prompt context to be set, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh
zstyle ':prezto:module:editor' ps-context 'yes'
```
-Theming
--------
+## Theming
To indicate when the editor is in the primary keymap (emacs or viins), add
the following to your `theme_prompt_setup` function.
@@ -81,29 +76,27 @@ To indicate when the editor is completing, add the following to your
zstyle ':prezto:module:editor:info:completing' format '...'
```
-Then add `$editor_info[context]`, where context is *keymap*, *insert*, or
-*overwrite*, to `$PROMPT` or `$RPROMPT`.
+Then add `$editor_info[context]`, where context is _keymap_, _insert_, or
+_overwrite_, to `$PROMPT` or `$RPROMPT`.
-Convenience Functions
----------------------
+## Convenience Functions
### bindkey-all
-Provides a function `bindkey-all` which can be useful for checking how all of the
-keys are bound. Normal `bindkey` command will only list the keys bound for one
-keymap, which is not as useful if you want to grep through the output. The
-keymap's names go to stderr so when you grep through bindkey-all's output you
+Provides a function `bindkey-all` which can be useful for checking how all of
+the keys are bound. Normal `bindkey` command will only list the keys bound for
+one keymap, which is not as useful if you want to grep through the output. The
+keymap's names go to stderr so when you grep through `bindkey-all`'s output you
will still see the headings and can tell which keymap each binding goes to.
It will also pass through arguments so you can use bindkey-all to set bindings
-for all keymaps at once. If provided arguments it will *not* print out the
+for all keymaps at once. If provided arguments it will _not_ print out the
names of each of the keymaps, and just run the command for each keymap.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][1].*
+_The authors of this module should be contacted via the [issue tracker][1]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/emacs/README.md b/modules/emacs/README.md
index fa9a514..f93304a 100644
--- a/modules/emacs/README.md
+++ b/modules/emacs/README.md
@@ -1,10 +1,8 @@
-Emacs
-=====
+# Emacs
Enables Emacs dependency management.
-Dependency management
----------------------
+## Dependency management
[Carton][1] installs and manages Emacs packages for Emacs package development
and Emacs configuration.
@@ -12,22 +10,20 @@ and Emacs configuration.
This module prepends the Carton directory to the path variable to enable the
execution of `carton`.
-Aliases
--------
+## Aliases
### Carton
- - `cai` installs dependencies.
- - `cau` updates dependencies.
- - `caI` initializes the current directory for dependency management.
- - `cae` executes a command which correct dependencies.
+- `cai` installs dependencies.
+- `cau` updates dependencies.
+- `caI` initializes the current directory for dependency management.
+- `cae` executes a command which correct dependencies.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [Sebastian Wiesner](https://github.com/lunaryorn)
+- [Sebastian Wiesner](https://github.com/lunaryorn)
[1]: https://github.com/rejeep/carton
[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/environment/README.md b/modules/environment/README.md
index 15ee959..5243f26 100644
--- a/modules/environment/README.md
+++ b/modules/environment/README.md
@@ -1,56 +1,52 @@
-Environment
-===========
+# Environment
Sets general shell options and defines environment variables.
This module must be loaded first.
-Contributors
-------------
+## Contributors
-This module **MUST NOT** rely on any command not built in Zsh.
+This module **MUST NOT** rely on any command that is not built in Zsh.
-Non-interactive environment variables should be defined in [`zshenv`][1].
+Non-interactive environment variables should be defined in
+[_`${ZDOTDIR:-$HOME}/.zshenv`_][1].
-Options
--------
+## Options
### General
- - `COMBINING_CHARS` combine zero-length punctuation characters (accents) with
- the base character.
- - `INTERACTIVE_COMMENTS` enable comments in interactive shell.
- - `RC_QUOTES` allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
- - `MAIL_WARNING` don't print a warning message if a mail file has been accessed.
+- `COMBINING_CHARS` combine zero-length punctuation characters (accents) with
+ the base character.
+- `INTERACTIVE_COMMENTS` enable comments in interactive shell.
+- `RC_QUOTES` allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
+- `MAIL_WARNING` don't print a warning message if a mail file has been accessed.
### Jobs
- - `LONG_LIST_JOBS` list jobs in the long format by default.
- - `AUTO_RESUME` attempt to resume existing job before creating a new process.
- - `NOTIFY` report status of background jobs immediately.
- - `BG_NICE` don't run all background jobs at a lower priority.
- - `HUP` don't kill jobs on shell exit.
- - `CHECK_JOBS` don't report on jobs when shell exit.
+- `LONG_LIST_JOBS` list jobs in the long format by default.
+- `AUTO_RESUME` attempt to resume existing job before creating a new process.
+- `NOTIFY` report status of background jobs immediately.
+- `BG_NICE` don't run all background jobs at a lower priority.
+- `HUP` don't kill jobs on shell exit.
+- `CHECK_JOBS` don't report on jobs when shell exit.
-Variables
----------
+## Variables
### Termcap
- - `LESS_TERMCAP_mb` begins blinking.
- - `LESS_TERMCAP_md` begins bold.
- - `LESS_TERMCAP_me` ends mode.
- - `LESS_TERMCAP_se` ends standout-mode.
- - `LESS_TERMCAP_so` begins standout-mode.
- - `LESS_TERMCAP_ue` ends underline.
- - `LESS_TERMCAP_us` begins underline.
+- `LESS_TERMCAP_mb` begins blinking.
+- `LESS_TERMCAP_md` begins bold.
+- `LESS_TERMCAP_me` ends mode.
+- `LESS_TERMCAP_se` ends standout-mode.
+- `LESS_TERMCAP_so` begins standout-mode.
+- `LESS_TERMCAP_ue` ends underline.
+- `LESS_TERMCAP_us` begins underline.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zshenv
+[1]: ../../runcoms#zshenv
[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/environment/init.zsh b/modules/environment/init.zsh
index 836a6cd..3011f59 100644
--- a/modules/environment/init.zsh
+++ b/modules/environment/init.zsh
@@ -18,11 +18,9 @@ if [[ ${ZSH_VERSION} != 5.1.1 && ${TERM} != "dumb" ]]; then
if is-at-least 5.2; then
autoload -Uz bracketed-paste-url-magic
zle -N bracketed-paste bracketed-paste-url-magic
- else
- if is-at-least 5.1; then
- autoload -Uz bracketed-paste-magic
- zle -N bracketed-paste bracketed-paste-magic
- fi
+ elif is-at-least 5.1; then
+ autoload -Uz bracketed-paste-magic
+ zle -N bracketed-paste bracketed-paste-magic
fi
autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic
diff --git a/modules/fasd/README.md b/modules/fasd/README.md
index cb3fc20..1958a73 100644
--- a/modules/fasd/README.md
+++ b/modules/fasd/README.md
@@ -1,44 +1,41 @@
-Fasd
-====
+# Fasd
[Fasd][1] is a command-line productivity booster, inspired by tools like
[autojump][2], [z][3] and [v][4], it offers quick access to files and
-directories by keeping track of files and directories that were previously
+directories by keeping track of files and directories that were previously
accessed.
-For completion to work, this module must be loaded **after** the *completion*
-module.
+For shell completion to work, this module must be loaded _after_ the
+[_`completion`_][5] module.
The Prezto Fasd configuration differs from the default. The default aliases have
been disabled.
-Installation
-------------
+## Installation
-`fasd` is bundled with prezto as a git submodule. Alternatively, you can manually install `fasd`.
-If a manual install is found, it will be used instead of the bundled version.
+`fasd` is bundled with prezto as a git submodule. Alternatively, you can
+manually install `fasd`. If a manual installation is found, it will be used
+instead of the bundled version.
-Aliases
--------
+## Aliases
- - `j` changes the current working directory interactively.
+- `j` changes the current working directory interactively.
-Completion
-----------
+## Completion
-Type `,`, `f,`, `d,` in front of a comma-separated query or type `,,`, `,,f`,
-`,,d` at the end of a comma-separated query then hit tab.
+Type `,`, `f,`, `d,` in front of a comma-separated query or type `,,`, `,,f`,
+`,,d` at the end of a comma-separated query then hit TAB.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][5].*
+_The authors of this module should be contacted via the [issue tracker][6]._
- - [Wei Dai](https://github.com/clvv)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Wei Dai](https://github.com/clvv)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/clvv/fasd
[2]: https://github.com/joelthelion/autojump
[3]: https://github.com/rupa/z
[4]: https://github.com/rupa/v
-[5]: https://github.com/sorin-ionescu/prezto/issues
+[5]: ../completion#readme
+[6]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/git/README.md b/modules/git/README.md
index e4425fa..fad57a1 100644
--- a/modules/git/README.md
+++ b/modules/git/README.md
@@ -1,39 +1,45 @@
-Git
-===
+# Git
Enhances the [Git][1] distributed version control system by providing aliases,
functions and by exposing repository status information to prompts.
-Git **1.7.2** is the [minimum required version][7].
+This module must be loaded _before_ the [_`completion`_][13] module so that the
+provided completion definitions are loaded automatically by _`completion`_
+module.
-Settings
---------
+**Note:** Git **2.11** is the minimum required version for better
+[git-rev-list][7] and [git-submodule][14] support.
+
+## Settings
### Log
-The format of the [git-log][8] output is configurable via the following style,
-where context is *brief*, *oneline*, and *medium*, which will be passed to the
-`--pretty=format:` switch.
+To configure the format of the [git-log][8] output, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `''` with `'brief'`,
+`'oneline'`, and `'medium'`. This will be passed to the `--pretty=format:`
+switch.
```sh
-zstyle ':prezto:module:git:log:context' format ''
+zstyle ':prezto:module:git:log:context' format ''
```
### Status
-Retrieving the status of a repository with submodules can take a long time.
-Submodules may be ignored when they are *dirty*, *untracked*, *all*, or *none*.
+Retrieving the status of a repository with [git-submodule][9] can take a long
+time. To configure the submodules to ignore, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `''` with `'dirty'`,
+`'untracked'`, `'all'`, or `'none'`.
```sh
-zstyle ':prezto:module:git:status:ignore' submodules 'all'
+zstyle ':prezto:module:git:status:ignore' submodules ''
```
This setting affects all aliases and functions that call `git-status`.
-Aliases
--------
+## Aliases
-Aliases are enabled by default. You can disable them with:
+Aliases are enabled by default. To disable them, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh
zstyle ':prezto:module:git:alias' skip 'yes'
@@ -41,288 +47,290 @@ zstyle ':prezto:module:git:alias' skip 'yes'
### Git
- - `g` is short for `git`.
+- `g` is short for `git`.
-### Branch
+### Branch (b)
- - `gb` lists, creates, renames, and deletes branches.
- - `gbc` creates a new branch.
- - `gbl` lists branches and their commits. (also `gbv`)
- - `gbL` lists all local and remote branches and their commits.
- - `gbr` renames a branch. (also `gbm`)
- - `gbR` renames a branch even if the new branch name already exists. (also
- `gbM`)
- - `gbs` lists branches and their commits with ancestry graphs.
- - `gbS` lists local and remote branches and their commits with ancestry
- graphs.
- - `gbV` lists branches with more verbose information about their commits.
- - `gbx` deletes a branch. (also `gbd`)
- - `gbX` deletes a branch irrespective of its merged status. (also `gbD`)
+- `gb` lists, creates, renames, and deletes branches.
+- `gbc` creates a new branch.
+- `gbl` lists branches and their commits. (also `gbv`)
+- `gbL` lists all local and remote branches and their commits.
+- `gbr` renames a branch. (also `gbm`)
+- `gbR` renames a branch even if the new branch name already exists. (also
+ `gbM`)
+- `gbs` lists branches and their commits with ancestry graphs.
+- `gbS` lists local and remote branches and their commits with ancestry graphs.
+- `gbV` lists branches with more verbose information about their commits.
+- `gbx` deletes a branch. (also `gbd`)
+- `gbX` deletes a branch irrespective of its merged status. (also `gbD`)
+### Commit (c)
-### Commit
+- `gc` records changes to the repository.
+- `gcS` records changes to the repository. (Signed)
+- `gca` stages all modified and deleted files.
+- `gcaS` stages all modified and deleted files. (Signed)
+- `gcm` records changes to the repository with the given message.
+- `gcmS` records changes to the repository with the given message. (Signed)
+- `gcam` stages all modified and deleted files, and records changes to the
+ repository with the given message.
+- `gco` checks out a branch or paths to work tree.
+- `gcO` checks out hunks from the index or the tree interactively.
+- `gcf` amends the tip of the current branch using the same log message as
+ _HEAD_.
+- `gcfS` amends the tip of the current branch using the same log message as
+ _HEAD_. (Signed)
+- `gcF` amends the tip of the current branch.
+- `gcFS` amends the tip of the current branch. (Signed)
+- `gcp` applies changes introduced by existing commits.
+- `gcP` applies changes introduced by existing commits without committing.
+- `gcr` reverts existing commits by reverting patches and recording new commits.
+- `gcR` removes the _HEAD_ commit.
+- `gcs` displays commits with various objects.
+- `gcsS` displays commits with GPG signature.
+- `gcl` lists lost commits.
+- `gcy` displays commits yet to be applied to upstream in the short format.
+- `gcY` displays commits yet to be applied to upstream.
- - `gc` records changes to the repository.
- - `gca` stages all modified and deleted files.
- - `gcm` records changes to the repository with the given message.
- - `gcS` records changes to the repository. (Signed)
- - `gcSa` stages all modified and deleted files. (Signed)
- - `gcSm` records changes to the repository with the given message. (Signed)
- - `gcam` stages all modified and deleted files, and records changes to the repository with the given message.
- - `gco` checks out a branch or paths to work tree.
- - `gcO` checks out hunks from the index or the tree interactively.
- - `gcf` amends the tip of the current branch using the same log message as *HEAD*.
- - `gcSf` amends the tip of the current branch using the same log message as *HEAD*. (Signed)
- - `gcF` amends the tip of the current branch.
- - `gcSF` amends the tip of the current branch. (Signed)
- - `gcp` applies changes introduced by existing commits.
- - `gcP` applies changes introduced by existing commits without committing.
- - `gcr` reverts existing commits by reverting patches and recording new
- commits.
- - `gcR` removes the *HEAD* commit.
- - `gcs` displays various types of objects.
- - `gcsS` displays commits with GPG signature.
- - `gcl` lists lost commits.
- - `gcy` displays commits yet to be applied to upstream in the short format.
- - `gcY` displays commits yet to be applied to upstream.
+### Conflict (C)
-### Conflict
+- `gCl` lists unmerged files.
+- `gCa` adds unmerged file contents to the index.
+- `gCe` executes merge-tool on all unmerged file.
+- `gCo` checks out our changes for unmerged paths.
+- `gCO` checks out our changes for all unmerged paths.
+- `gCt` checks out their changes for unmerged paths.
+- `gCT` checks out their changes for all unmerged paths.
- - `gCl` lists unmerged files.
- - `gCa` adds unmerged file contents to the index.
- - `gCe` executes merge-tool on all unmerged file.
- - `gCo` checks out our changes for unmerged paths.
- - `gCO` checks out our changes for all unmerged paths.
- - `gCt` checks out their changes for unmerged paths.
- - `gCT` checks out their changes for all unmerged paths.
+### Data (d)
-### Data
+- `gd` displays information about files in the index and the work tree.
+- `gdc` lists cached files.
+- `gdx` lists deleted files.
+- `gdm` lists modified files.
+- `gdu` lists untracked files.
+- `gdk` lists killed files.
+- `gdi` lists ignored files.
- - `gd` displays information about files in the index and the work tree.
- - `gdc` lists cached files.
- - `gdx` lists deleted files.
- - `gdm` lists modified files.
- - `gdu` lists untracked files.
- - `gdk` lists killed files.
- - `gdi` lists ignored files.
+### Fetch (f)
-### Fetch
+- `gf` downloads objects and references from another repository.
+- `gfa` downloads objects and references from all remote repositories.
+- `gfc` clones a repository into a new directory.
+- `gfcr` clones a repository into a new directory including all submodules.
+- `gfm` fetches from and merges with another repository or local branch.
+- `gfr` fetches from and rebases on another repository or local branch.
- - `gf` downloads objects and references from another repository.
- - `gfa` downloads objects and references from all remote repositories.
- - `gfc` clones a repository into a new directory.
- - `gfcr` clones a repository into a new directory including all submodules.
- - `gfm` fetches from and merges with another repository or local branch.
- - `gfr` fetches from and rebases on another repository or local branch.
+### Flow (F)
-### Flow
+- `gFi` is short for `git flow init`
- - `gFi` is short for `git flow init`
+#### Feature (Ff)
-#### Feature
+- `gFf` is short for `git flow feature`
+- `gFfl` is short for `git flow feature list`
+- `gFfs` is short for `git flow feature start`
+- `gFff` is short for `git flow feature finish`
+- `gFfp` is short for `git flow feature publish`
+- `gFft` is short for `git flow feature track`
+- `gFfd` is short for `git flow feature diff`
+- `gFfr` is short for `git flow feature rebase`
+- `gFfc` is short for `git flow feature checkout`
+- `gFfm` is short for `git flow feature pull`
+- `gFfx` is short for `git flow feature delete`
- - `gFf` is short for `git flow feature`
- - `gFfl` is short for `git flow feature list`
- - `gFfs` is short for `git flow feature start`
- - `gFff` is short for `git flow feature finish`
- - `gFfp` is short for `git flow feature publish`
- - `gFft` is short for `git flow feature track`
- - `gFfd` is short for `git flow feature diff`
- - `gFfr` is short for `git flow feature rebase`
- - `gFfc` is short for `git flow feature checkout`
- - `gFfm` is short for `git flow feature pull`
- - `gFfx` is short for `git flow feature delete`
+#### Bugfix (Fb)
-#### Bugfix
+- `gFb` is short for `git flow bugfix`
+- `gFbl` is short for `git flow bugfix list`
+- `gFbs` is short for `git flow bugfix start`
+- `gFbf` is short for `git flow bugfix finish`
+- `gFbp` is short for `git flow bugfix publish`
+- `gFbt` is short for `git flow bugfix track`
+- `gFbd` is short for `git flow bugfix diff`
+- `gFbr` is short for `git flow bugfix rebase`
+- `gFbc` is short for `git flow bugfix checkout`
+- `gFbm` is short for `git flow bugfix pull`
+- `gFbx` is short for `git flow bugfix delete`
- - `gFb` is short for `git flow bugfix`
- - `gFbl` is short for `git flow bugfix list`
- - `gFbs` is short for `git flow bugfix start`
- - `gFbf` is short for `git flow bugfix finish`
- - `gFbp` is short for `git flow bugfix publish`
- - `gFbt` is short for `git flow bugfix track`
- - `gFbd` is short for `git flow bugfix diff`
- - `gFbr` is short for `git flow bugfix rebase`
- - `gFbc` is short for `git flow bugfix checkout`
- - `gFbm` is short for `git flow bugfix pull`
- - `gFbx` is short for `git flow bugfix delete`
+#### Release (Fl)
-#### Release
+- `gFl` is short for `git flow release`
+- `gFll` is short for `git flow release list`
+- `gFls` is short for `git flow release start`
+- `gFlf` is short for `git flow release finish`
+- `gFlp` is short for `git flow release publish`
+- `gFlt` is short for `git flow release track`
+- `gFld` is short for `git flow release diff`
+- `gFlr` is short for `git flow release rebase`
+- `gFlc` is short for `git flow release checkout`
+- `gFlm` is short for `git flow release pull`
+- `gFlx` is short for `git flow release delete`
- - `gFl` is short for `git flow release`
- - `gFll` is short for `git flow release list`
- - `gFls` is short for `git flow release start`
- - `gFlf` is short for `git flow release finish`
- - `gFlp` is short for `git flow release publish`
- - `gFlt` is short for `git flow release track`
- - `gFld` is short for `git flow release diff`
- - `gFlr` is short for `git flow release rebase`
- - `gFlc` is short for `git flow release checkout`
- - `gFlm` is short for `git flow release pull`
- - `gFlx` is short for `git flow release delete`
+#### Hotfix (Fh)
-#### Hotfix
+- `gFh` is short for `git flow hotfix`
+- `gFhl` is short for `git flow hotfix list`
+- `gFhs` is short for `git flow hotfix start`
+- `gFhf` is short for `git flow hotfix finish`
+- `gFhp` is short for `git flow hotfix publish`
+- `gFht` is short for `git flow hotfix track`
+- `gFhd` is short for `git flow hotfix diff`
+- `gFhr` is short for `git flow hotfix rebase`
+- `gFhc` is short for `git flow hotfix checkout`
+- `gFhm` is short for `git flow hotfix pull`
+- `gFhx` is short for `git flow hotfix delete`
- - `gFh` is short for `git flow hotfix`
- - `gFhl` is short for `git flow hotfix list`
- - `gFhs` is short for `git flow hotfix start`
- - `gFhf` is short for `git flow hotfix finish`
- - `gFhp` is short for `git flow hotfix publish`
- - `gFht` is short for `git flow hotfix track`
- - `gFhd` is short for `git flow hotfix diff`
- - `gFhr` is short for `git flow hotfix rebase`
- - `gFhc` is short for `git flow hotfix checkout`
- - `gFhm` is short for `git flow hotfix pull`
- - `gFhx` is short for `git flow hotfix delete`
+#### Support (Fs)
-#### Support
+- `gFs` is short for `git flow support`
+- `gFsl` is short for `git flow support list`
+- `gFss` is short for `git flow support start`
+- `gFsf` is short for `git flow support finish`
+- `gFsp` is short for `git flow support publish`
+- `gFst` is short for `git flow support track`
+- `gFsd` is short for `git flow support diff`
+- `gFsr` is short for `git flow support rebase`
+- `gFsc` is short for `git flow support checkout`
+- `gFsm` is short for `git flow support pull`
+- `gFsx` is short for `git flow support delete`
- - `gFs` is short for `git flow support`
- - `gFsl` is short for `git flow support list`
- - `gFss` is short for `git flow support start`
- - `gFsf` is short for `git flow support finish`
- - `gFsp` is short for `git flow support publish`
- - `gFst` is short for `git flow support track`
- - `gFsd` is short for `git flow support diff`
- - `gFsr` is short for `git flow support rebase`
- - `gFsc` is short for `git flow support checkout`
- - `gFsm` is short for `git flow support pull`
- - `gFsx` is short for `git flow support delete`
+### Grep (g)
-### Grep
+- `gg` displays lines matching a pattern.
+- `ggi` displays lines matching a pattern ignoring case.
+- `ggl` lists files matching a pattern.
+- `ggL` lists files that are not matching a pattern.
+- `ggv` displays lines not matching a pattern.
+- `ggw` displays lines matching a pattern at word boundary.
- - `gg` displays lines matching a pattern.
- - `ggi` displays lines matching a pattern ignoring case.
- - `ggl` lists files matching a pattern.
- - `ggL` lists files that are not matching a pattern.
- - `ggv` displays lines not matching a pattern.
- - `ggw` displays lines matching a pattern at word boundary.
+### Index (i)
-### Index
+- `gia` adds file contents to the index.
+- `giA` adds file contents to the index interactively.
+- `giu` adds file contents to the index (updates only known files).
+- `gid` displays changes between the index and a named commit (diff).
+- `giD` displays changes between the index and a named commit (word diff).
+- `gii` temporarily ignore differences in a given file.
+- `giI` unignore differences in a given file.
+- `gir` resets the current HEAD to the specified state.
+- `giR` resets the current index interactively.
+- `gix` removes files/directories from the index (recursively).
+- `giX` removes files/directories from the index (recursively and forced).
- - `gia` adds file contents to the index.
- - `giA` adds file contents to the index interactively.
- - `giu` adds file contents to the index (updates only known files).
- - `gid` displays changes between the index and a named commit (diff).
- - `giD` displays changes between the index and a named commit (word diff).
- - `gii` temporarily ignore differences in a given file.
- - `giI` unignore differences in a given file.
- - `gir` resets the current HEAD to the specified state.
- - `giR` resets the current index interactively.
- - `gix` removes files/directories from the index (recursively).
- - `giX` removes files/directories from the index (recursively and forced).
+### Log (l)
-### Log
+- `gl` displays the log.
+- `gls` displays the stats log.
+- `gld` displays the diff log.
+- `glo` displays the one line log.
+- `glg` displays the graph log.
+- `glb` displays the brief commit log.
+- `glc` displays the commit count for each contributor in descending order.
+- `glS` displays the log and checks the validity of signed commits.
- - `gl` displays the log.
- - `gls` displays the stats log.
- - `gld` displays the diff log.
- - `glo` displays the one line log.
- - `glg` displays the graph log.
- - `glb` displays the brief commit log.
- - `glc` displays the commit count for each contributor in descending order.
- - `glS` displays the log and checks the validity of signed commits.
+### Merge (m)
-### Merge
+- `gm` joins two or more development histories together.
+- `gmC` joins two or more development histories together but does not commit.
+- `gmF` joins two or more development histories together but does not commit
+ generating a merge commit even if the merge resolved as a fast-forward.
+- `gma` aborts the conflict resolution, and reconstructs the pre-merge state.
+- `gmt` runs the merge conflict resolution tools to resolve conflicts.
- - `gm` joins two or more development histories together.
- - `gmC` joins two or more development histories together but does not commit.
- - `gmF` joins two or more development histories together but does not commit
- generating a merge commit even if the merge resolved as a fast-forward.
- - `gma` aborts the conflict resolution, and reconstructs the pre-merge state.
- - `gmt` runs the merge conflict resolution tools to resolve conflicts.
+### Push (p)
-### Push
+- `gp` updates remote refs along with associated objects.
+- `gpf` forcefully updates remote refs along with associated objects using the
+ safer `--force-with-lease` option.
+- `gpF` forcefully updates remote refs along with associated objects using the
+ riskier `--force` option.
+- `gpa` updates remote branches along with associated objects.
+- `gpA` updates remote branches and tags along with associated objects.
+- `gpt` updates remote tags along with associated objects.
+- `gpc` updates remote refs along with associated objects and adds _origin_ as
+ an upstream reference for the current branch.
+- `gpp` pulls and pushes from origin to origin.
- - `gp` updates remote refs along with associated objects.
- - `gpf` forcefully updates remote refs along with associated objects using the safer `--force-with-lease` option.
- - `gpF` forcefully updates remote refs along with associated objects using the riskier `--force` option.
- - `gpa` updates remote branches along with associated objects.
- - `gpA` updates remote branches and tags along with associated objects.
- - `gpt` updates remote tags along with associated objects.
- - `gpc` updates remote refs along with associated objects and adds *origin*
- as an upstream reference for the current branch.
- - `gpp` pulls and pushes from origin to origin.
+### Rebase (r)
-### Rebase
+- `gr` forward-ports local commits to the updated upstream _HEAD_.
+- `gra` aborts the rebase.
+- `grc` continues the rebase after merge conflicts are resolved.
+- `gri` makes a list of commits to be rebased and opens the editor.
+- `grs` skips the current patch.
- - `gr` forward-ports local commits to the updated upstream head.
- - `gra` aborts the rebase.
- - `grc` continues the rebase after merge conflicts are resolved.
- - `gri` makes a list of commits to be rebased and opens the editor.
- - `grs` skips the current patch.
+### Remote (R)
-### Remote
+- `gR` manages tracked repositories.
+- `gRl` lists remote names and their URLs.
+- `gRa` adds a new remote.
+- `gRx` removes a remote.
+- `gRm` renames a remote.
+- `gRu` fetches remotes updates.
+- `gRp` prunes all stale remote tracking branches.
+- `gRs` displays information about a given remote.
+- `gRb` opens a remote on [GitHub][3] in the default browser.
- - `gR` manages tracked repositories.
- - `gRl` lists remote names and their URLs.
- - `gRa` adds a new remote.
- - `gRx` removes a remote.
- - `gRm` renames a remote.
- - `gRu` fetches remotes updates.
- - `gRp` prunes all stale remote tracking branches.
- - `gRs` displays information about a given remote.
- - `gRb` opens a remote on [GitHub][3] in the default browser.
+### Stash (s)
-### Stash
+- `gs` stashes the changes of the dirty working directory.
+- `gsa` applies the changes recorded in a stash to the working directory.
+- `gsx` drops a stashed state.
+- `gsX` drops all the stashed states.
+- `gsl` lists stashed states.
+- `gsL` lists dropped stashed states.
+- `gsd` displays changes between the stash and its original parent.
+- `gsp` removes and applies a single stashed state from the stash list.
+- `gsr` recovers a given stashed state.
+- `gss` stashes the changes of the dirty working directory, including untracked.
+- `gsS` stashes the changes of the dirty working directory interactively.
+- `gsw` stashes the changes of the dirty working directory retaining the index.
- - `gs` stashes the changes of the dirty working directory.
- - `gsa` applies the changes recorded in a stash to the working directory.
- - `gsx` drops a stashed state.
- - `gsX` drops all the stashed states.
- - `gsl` lists stashed states.
- - `gsL` lists dropped stashed states.
- - `gsd` displays changes between the stash and its original parent.
- - `gsp` removes and applies a single stashed state from the stash list.
- - `gsr` recovers a given stashed state.
- - `gss` stashes the changes of the dirty working directory, including untracked.
- - `gsS` stashes the changes of the dirty working directory interactively.
- - `gsw` stashes the changes of the dirty working directory retaining the index.
+### Submodule (S)
-### Submodule
+- `gS` initializes, updates, or inspects submodules.
+- `gSa` adds given a repository as a submodule.
+- `gSf` evaluates a shell command in each of checked out submodules.
+- `gSi` initializes submodules.
+- `gSI` initializes and clones submodules recursively.
+- `gSl` lists the commits of all submodules.
+- `gSm` moves a submodule.
+- `gSs` synchronizes submodules' remote URL to the value specified in
+ _.gitmodules_.
+- `gSu` fetches and merges the latest changes for all submodule.
+- `gSx` removes a submodule.
- - `gS` initializes, updates, or inspects submodules.
- - `gSa` adds given a repository as a submodule.
- - `gSf` evaluates a shell command in each of checked out submodules.
- - `gSi` initializes submodules.
- - `gSI` initializes and clones submodules recursively.
- - `gSl` lists the commits of all submodules.
- - `gSm` moves a submodule.
- - `gSs` synchronizes submodules' remote URL to the value specified in
- .gitmodules.
- - `gSu` fetches and merges the latest changes for all submodule.
- - `gSx` removes a submodule.
+### Tag (t)
-### Tag
+- `gt` lists tags or creates tag.
+- `gtl` lists tags matching pattern.
+- `gts` creates a signed tag.
+- `gtv` validate a signed tag.
- - `gt` lists tags or creates tag.
- - `gtl` lists tags matching pattern.
- - `gts` creates a signed tag.
- - `gtv` validate a signed tag.
+### Working directory (w)
-### Working directory
-
- - `gws` displays working-tree status in the short format.
- - `gwS` displays working-tree status.
- - `gwd` displays changes between the working tree and the index (diff).
- - `gwD` displays changes between the working tree and the index (word diff).
- - `gwr` resets the current HEAD to the specified state, does not touch the
- index nor the working tree.
- - `gwR` resets the current HEAD, index and working tree to the specified state.
- - `gwc` removes untracked files from the working tree (dry-run).
- - `gwC` removes untracked files from the working tree.
- - `gwx` removes files from the working tree and from the index recursively.
- - `gwX` removes files from the working tree and from the index recursively and
- forcefully.
+- `gws` displays working-tree status in the short format.
+- `gwS` displays working-tree status.
+- `gwd` displays changes between the working tree and the index (diff).
+- `gwD` displays changes between the working tree and the index (word diff).
+- `gwr` resets the current HEAD to the specified state, does not touch the
+ index nor the working tree.
+- `gwR` resets the current HEAD, index and working tree to the specified state.
+- `gwc` removes untracked files from the working tree (dry-run).
+- `gwC` removes untracked files from the working tree.
+- `gwx` removes files from the working tree and from the index recursively.
+- `gwX` removes files from the working tree and from the index recursively and
+ forcefully.
### Shadows
The following aliases may shadow system commands:
- - `gb` shadows the [GB][9].
- - `gm` shadows the [Graphics Magick image processor][11].
- - `gpt` shadows the [GUID partition table maintenance utility][4].
- - `gs` shadows the [Ghostscript interpreter and previewer][5].
+- `gb` shadows the [GB][10].
+- `gm` shadows the [GraphicsMagick image processor][11].
+- `gpt` shadows the [GUID partition table maintenance utility][4].
+- `gs` shadows the [Ghostscript interpreter and previewer][5].
If you frequently use the above commands, you may wish to remove said aliases
from this module or to disable them at the bottom of the zshrc with `unalias`.
@@ -330,25 +338,23 @@ from this module or to disable them at the bottom of the zshrc with `unalias`.
You can temporarily bypass an alias by prefixing it with a backward slash:
`\gpt`.
-Functions
----------
+## Functions
- - `git-branch-current` displays the current branch.
- - `git-commit-lost` lists lost commits.
- - `git-dir` displays the path to the Git directory.
- - `git-hub-browse` opens the [GitHub][3] repository in the default browser.
- - `git-hub-shorten-url` shortens [GitHub URLs][10].
- - `git-info` exposes repository information via the `$git_info` associative
- array.
- - `git-root` displays the path to the working tree root.
- - `git-stash-clear-interactive` asks for confirmation before clearing the stash.
- - `git-stash-dropped` lists dropped stashed states.
- - `git-stash-recover` recovers given dropped stashed states.
- - `git-submodule-move` moves a submodule.
- - `git-submodule-remove` removes a submodule.
+- `git-branch-current` displays the current branch.
+- `git-commit-lost` lists lost commits.
+- `git-dir` displays the path to the Git directory.
+- `git-hub-browse` opens the [GitHub][3] repository in the default browser.
+- `git-hub-shorten-url` shortens [GitHub URLs][12].
+- `git-info` exposes repository information via the `$git_info` associative
+ array.
+- `git-root` displays the path to the working tree root.
+- `git-stash-clear-interactive` asks for confirmation before clearing the stash.
+- `git-stash-dropped` lists dropped stashed states.
+- `git-stash-recover` recovers given dropped stashed states.
+- `git-submodule-move` moves a submodule.
+- `git-submodule-remove` removes a submodule.
-Theming
--------
+## Theming
To display information about the current repository in a prompt, define the
following styles in the `prompt_name_setup` function, where the syntax for
@@ -360,26 +366,26 @@ zstyle ':prezto:module:git:info:context:subcontext' format 'string'
### Main Contexts
-| Name | Format Code | Description
-| --------- | :---------: | ---------------------------------------------------
-| action | %s | Special action name
-| ahead | %A | Commits ahead of remote count
-| behind | %B | Commits behind of remote count
-| branch | %b | Branch name
-| commit | %c | Commit hash
-| position | %p | Commits from the nearest tag count
-| remote | %R | Remote name
-| stashed | %S | Stashed states count
+| Name | Format Code | Description |
+| -------- | :---------: | ---------------------------------- |
+| action | %s | Special action name |
+| ahead | %A | Commits ahead of remote count |
+| behind | %B | Commits behind of remote count |
+| branch | %b | Branch name |
+| commit | %c | Commit hash |
+| position | %p | Commits from the nearest tag count |
+| remote | %R | Remote name |
+| stashed | %S | Stashed states count |
### Concise Contexts
-| Name | Format Code | Description
-| --------- | :---------: | ---------------------------------------------------
-| clean | %C | Clean state
-| dirty | %D | Dirty files count
-| indexed | %i | Indexed files count
-| unindexed | %I | Unindexed files count
-| untracked | %u | Untracked files count
+| Name | Format Code | Description |
+| --------- | :---------: | --------------------- |
+| clean | %C | Clean state |
+| dirty | %D | Dirty files count |
+| indexed | %i | Indexed files count |
+| unindexed | %I | Unindexed files count |
+| untracked | %u | Untracked files count |
The following contexts must be enabled with the following zstyle:
@@ -389,31 +395,31 @@ zstyle ':prezto:module:git:info' verbose 'yes'
### Verbose Contexts
-| Name | Format Code | Description
-| --------- | :---------: | ---------------------------------------------------
-| added | %a | Added files count
-| clean | %C | Clean state
-| deleted | %d | Deleted files count
-| dirty | %D | Dirty files count
-| modified | %m | Modified files count
-| renamed | %r | Renamed files count
-| unmerged | %U | Unmerged files count
-| untracked | %u | Untracked files count
+| Name | Format Code | Description |
+| --------- | :---------: | --------------------- |
+| added | %a | Added files count |
+| clean | %C | Clean state |
+| deleted | %d | Deleted files count |
+| dirty | %D | Dirty files count |
+| modified | %m | Modified files count |
+| renamed | %r | Renamed files count |
+| unmerged | %U | Unmerged files count |
+| untracked | %u | Untracked files count |
### Special Action Contexts
-| Name | Format | Description
-| -------------------- | :---------: | -----------------------------------------
-| apply | value | Applying patches
-| bisect | value | Binary searching for changes
-| cherry-pick | value | Cherry picking
-| cherry-pick-sequence | value | Cherry picking sequence
-| merge | value | Merging
-| rebase | value | Rebasing
-| rebase-interactive | value | Rebasing interactively
-| rebase-merge | value | Rebasing merge
-| revert | value | Reverting
-| revert-sequence | value | Reverting sequence
+| Name | Format | Description |
+| -------------------- | :----: | ---------------------------- |
+| apply | value | Applying patches |
+| bisect | value | Binary searching for changes |
+| cherry-pick | value | Cherry picking |
+| cherry-pick-sequence | value | Cherry picking sequence |
+| merge | value | Merging |
+| rebase | value | Rebasing |
+| rebase-interactive | value | Rebasing interactively |
+| rebase-merge | value | Rebasing merge |
+| revert | value | Reverting |
+| revert-sequence | value | Reverting sequence |
First, format the repository state attributes. For example, to format the branch
and remote names, define the following styles.
@@ -435,22 +441,24 @@ Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to
`$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook
function.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][6].*
+_The authors of this module should be contacted via the [issue tracker][6]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
- - [Colin Hebert](https://github.com/ColinHebert)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Colin Hebert](https://github.com/ColinHebert)
-[1]: http://www.git-scm.com
-[2]: https://github.com/defunkt/hub
+[1]: https://www.git-scm.com
+[2]: https://hub.github.com
[3]: https://www.github.com
-[4]: http://www.manpagez.com/man/8/gpt/
-[5]: http://www.manpagez.com/man/1/gs/
+[4]: https://www.manpagez.com/man/8/gpt/
+[5]: https://www.manpagez.com/man/1/gs/
[6]: https://github.com/sorin-ionescu/prezto/issues
[7]: https://github.com/sorin-ionescu/prezto/issues/219
-[8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html
-[9]: https://getgb.io/
-[10]: https://github.com/blog/985-git-io-github-url-shortener
-[11]: http://www.manpagez.com/man/1/gm/
+[8]: https://git-scm.com/docs/git-log
+[9]: https://git-scm.com/docs/git-submodule
+[10]: https://getgb.io/
+[11]: https://www.manpagez.com/man/1/gm/
+[12]: https://github.blog/2011-11-10-git-io-github-url-shortener
+[13]: ../completion#readme
+[14]: https://github.com/sorin-ionescu/prezto/pull/1929
diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh
index 95b2a0d..f14cca5 100644
--- a/modules/git/alias.zsh
+++ b/modules/git/alias.zsh
@@ -8,25 +8,24 @@
#
# Settings
#
-#
# Log
zstyle -s ':prezto:module:git:log:medium' format '_git_log_medium_format' \
- || _git_log_medium_format='%C(bold)Commit:%C(reset) %C(green)%H%C(red)%d%n%C(bold)Author:%C(reset) %C(cyan)%an <%ae>%n%C(bold)Date:%C(reset) %C(blue)%ai (%ar)%C(reset)%n%+B'
+ || _git_log_medium_format='%C(bold)Commit:%C(reset) %C(green)%H%C(red)%d%n%C(bold)Author:%C(reset) %C(cyan)%an <%ae>%n%C(bold)Date:%C(reset) %C(blue)%ai (%ar)%C(reset)%n%+B'
zstyle -s ':prezto:module:git:log:oneline' format '_git_log_oneline_format' \
- || _git_log_oneline_format='%C(green)%h%C(reset) %s%C(red)%d%C(reset)%n'
+ || _git_log_oneline_format='%C(green)%h%C(reset) %s%C(red)%d%C(reset)%n'
zstyle -s ':prezto:module:git:log:brief' format '_git_log_brief_format' \
- || _git_log_brief_format='%C(green)%h%C(reset) %s%n%C(blue)(%ar by %an)%C(red)%d%C(reset)%n'
+ || _git_log_brief_format='%C(green)%h%C(reset) %s%n%C(blue)(%ar by %an)%C(red)%d%C(reset)%n'
# Status
zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_submodules' \
- || _git_status_ignore_submodules='none'
+ || _git_status_ignore_submodules='none'
#
# Aliases
#
-if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
+if ! zstyle -t ':prezto:module:git:alias' skip; then
# Git
alias g='git'
@@ -51,18 +50,18 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
# Commit (c)
alias gc='git commit --verbose'
+ alias gcS='git commit --verbose --gpg-sign'
alias gca='git commit --verbose --all'
+ alias gcaS='git commit --verbose --all --gpg-sign'
alias gcm='git commit --message'
- alias gcS='git commit -S --verbose'
- alias gcSa='git commit -S --verbose --all'
- alias gcSm='git commit -S --message'
+ alias gcmS='git commit --message --gpg-sign'
alias gcam='git commit --all --message'
alias gco='git checkout'
alias gcO='git checkout --patch'
alias gcf='git commit --amend --reuse-message HEAD'
- alias gcSf='git commit -S --amend --reuse-message HEAD'
+ alias gcfS='git commit --amend --reuse-message HEAD --gpg-sign'
alias gcF='git commit --verbose --amend'
- alias gcSF='git commit -S --verbose --amend'
+ alias gcFS='git commit --verbose --amend --gpg-sign'
alias gcp='git cherry-pick --ff'
alias gcP='git cherry-pick --no-commit'
alias gcr='git revert'
@@ -70,8 +69,8 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
alias gcs='git show'
alias gcsS='git show --pretty=short --show-signature'
alias gcl='git-commit-lost'
- alias gcy='git cherry -v --abbrev'
- alias gcY='git cherry -v'
+ alias gcy='git cherry --verbose --abbrev'
+ alias gcY='git cherry --verbose'
# Conflict (C)
alias gCl='git --no-pager diff --name-only --diff-filter=U'
@@ -183,15 +182,15 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
alias gir='git reset'
alias giR='git reset --patch'
alias gix='git rm -r --cached'
- alias giX='git rm -rf --cached'
+ alias giX='git rm -r --force --cached'
# Log (l)
- alias gl='git log --topo-order --pretty=format:"${_git_log_medium_format}"'
- alias gls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"'
- alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"${_git_log_medium_format}"'
- alias glo='git log --topo-order --pretty=format:"${_git_log_oneline_format}"'
- alias glg='git log --topo-order --graph --pretty=format:"${_git_log_oneline_format}"'
- alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"'
+ alias gl='git log --topo-order --pretty=format:"$_git_log_medium_format"'
+ alias gls='git log --topo-order --stat --pretty=format:"$_git_log_medium_format"'
+ alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"$_git_log_medium_format"'
+ alias glo='git log --topo-order --pretty=format:"$_git_log_oneline_format"'
+ alias glg='git log --topo-order --graph --pretty=format:"$_git_log_oneline_format"'
+ alias glb='git log --topo-order --pretty=format:"$_git_log_brief_format"'
alias glc='git shortlog --summary --numbered'
alias glS='git log --show-signature'
@@ -253,24 +252,24 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
alias gSl='git submodule status'
alias gSm='git-submodule-move'
alias gSs='git submodule sync'
- alias gSu='git submodule foreach git pull origin master'
+ alias gSu='git submodule update --remote --recursive'
alias gSx='git-submodule-remove'
# Tag (t)
alias gt='git tag'
- alias gtl='git tag -l'
- alias gts='git tag -s'
+ alias gtl='git tag --list'
+ alias gts='git tag --sign'
alias gtv='git verify-tag'
# Working Copy (w)
- alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short'
- alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}'
+ alias gws='git status --ignore-submodules=$_git_status_ignore_submodules --short'
+ alias gwS='git status --ignore-submodules=$_git_status_ignore_submodules'
alias gwd='git diff --no-ext-diff'
alias gwD='git diff --no-ext-diff --word-diff'
alias gwr='git reset --soft'
alias gwR='git reset --hard'
- alias gwc='git clean -n'
- alias gwC='git clean -f'
+ alias gwc='git clean --dry-run'
+ alias gwC='git clean --force'
alias gwx='git rm -r'
- alias gwX='git rm -rf'
+ alias gwX='git rm -r --force'
fi
diff --git a/modules/git/functions/git-hub-browse b/modules/git/functions/git-hub-browse
index cb3fc60..bdeb298 100644
--- a/modules/git/functions/git-hub-browse
+++ b/modules/git/functions/git-hub-browse
@@ -15,7 +15,7 @@ fi
local remotes remote references reference file url
remote="${1:-origin}"
-remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2))
+remotes=($(command git remote show))
if (( $remotes[(i)$remote] == $#remotes + 1 )); then
print "$0: remote not found: $remote" >&2
@@ -23,14 +23,14 @@ if (( $remotes[(i)$remote] == $#remotes + 1 )); then
fi
url=$(
- command git config --get "remote.${remote}.url" \
- | sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p"
+ command git remote get-url "$remote" \
+ | sed -En "s#(git@|https?://)(github.com)(:|/)(.+)/(.+)\.git#https://\2/\4/\5#p"
)
reference="${${2:-$(git-branch-current)}:-HEAD}"
references=(
HEAD
- ${$(command git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/}
+ ${${(f)"$(command git ls-remote --heads --tags "$remote")"}##*refs/(heads|tags)/}
)
if (( $references[(i)$reference] == $#references + 1 )); then
@@ -45,9 +45,9 @@ fi
file="$3"
if [[ -n "$url" ]]; then
- url="${url}/tree/${reference}/${file}"
+ url="$url/tree/$reference/$file"
- if (( $+commands[$BROWSER] )); then
+ if [[ -z "$BROWSER" ]]; then
"$BROWSER" "$url"
return 0
else
diff --git a/modules/git/functions/git-hub-shorten-url b/modules/git/functions/git-hub-shorten-url
index 470c093..b9edd01 100644
--- a/modules/git/functions/git-hub-shorten-url
+++ b/modules/git/functions/git-hub-shorten-url
@@ -19,7 +19,7 @@ if [[ -z "$url" || ! "$url" =~ ^https?:\/\/.*github.com\/ ]]; then
fi
if (( $+commands[curl] )); then
- curl -s -i 'https://git.io' -F "url=$url" ${(s: :)code:+ -F "code=$code"} | sed -n 's/^Location: //p'
+ print "${${(@M)${(f)"$(curl -s -i 'https://git.io' -F "url=$url" ${(z)code:+ -F "code=$code"})"}:#Location: *}#Location: }"
else
print "$0: command not found: curl" >&2
return 1
diff --git a/modules/git/functions/git-info b/modules/git/functions/git-info
index 20c284b..07f261d 100644
--- a/modules/git/functions/git-info
+++ b/modules/git/functions/git-info
@@ -22,20 +22,22 @@ function _git-action {
local revert_sequence_formatted
for action_dir in \
- "${git_dir}/rebase-apply" \
- "${git_dir}/rebase" \
- "${git_dir}/../.dotest"
+ "$git_dir/rebase-apply" \
+ "$git_dir/rebase" \
+ "$git_dir/../.dotest"
do
if [[ -d "$action_dir" ]] ; then
- zstyle -s ':prezto:module:git:info:action:apply' format 'apply_formatted' || apply_formatted='apply'
- zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' || rebase_formatted='rebase'
+ zstyle -s ':prezto:module:git:info:action:apply' format 'apply_formatted' \
+ || apply_formatted='apply'
+ zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' \
+ || rebase_formatted='rebase'
- if [[ -f "${action_dir}/rebasing" ]] ; then
+ if [[ -f "$action_dir/rebasing" ]] ; then
print "$rebase_formatted"
- elif [[ -f "${action_dir}/applying" ]] ; then
+ elif [[ -f "$action_dir/applying" ]] ; then
print "$apply_formatted"
else
- print "${rebase_formatted}/${apply_formatted}"
+ print "$rebase_formatted/$apply_formatted"
fi
return 0
@@ -43,59 +45,67 @@ function _git-action {
done
for action_dir in \
- "${git_dir}/rebase-merge/interactive" \
- "${git_dir}/.dotest-merge/interactive"
+ "$git_dir/rebase-merge/interactive" \
+ "$git_dir/.dotest-merge/interactive"
do
if [[ -f "$action_dir" ]]; then
- zstyle -s ':prezto:module:git:info:action:rebase-interactive' format 'rebase_interactive_formatted' || rebase_interactive_formatted='rebase-interactive'
+ zstyle -s ':prezto:module:git:info:action:rebase-interactive' format 'rebase_interactive_formatted' \
+ || rebase_interactive_formatted='rebase-interactive'
print "$rebase_interactive_formatted"
return 0
fi
done
for action_dir in \
- "${git_dir}/rebase-merge" \
- "${git_dir}/.dotest-merge"
+ "$git_dir/rebase-merge" \
+ "$git_dir/.dotest-merge"
do
if [[ -d "$action_dir" ]]; then
- zstyle -s ':prezto:module:git:info:action:rebase-merge' format 'rebase_merge_formatted' || rebase_merge_formatted='rebase-merge'
+ zstyle -s ':prezto:module:git:info:action:rebase-merge' format 'rebase_merge_formatted' \
+ || rebase_merge_formatted='rebase-merge'
print "$rebase_merge_formatted"
return 0
fi
done
- if [[ -f "${git_dir}/MERGE_HEAD" ]]; then
- zstyle -s ':prezto:module:git:info:action:merge' format 'merge_formatted' || merge_formatted='merge'
+ if [[ -f "$git_dir/MERGE_HEAD" ]]; then
+ zstyle -s ':prezto:module:git:info:action:merge' format 'merge_formatted' \
+ || merge_formatted='merge'
print "$merge_formatted"
return 0
fi
- if [[ -f "${git_dir}/CHERRY_PICK_HEAD" ]]; then
- if [[ -d "${git_dir}/sequencer" ]] ; then
- zstyle -s ':prezto:module:git:info:action:cherry-pick-sequence' format 'cherry_pick_sequence_formatted' || cherry_pick_sequence_formatted='cherry-pick-sequence'
+ if [[ -f "$git_dir/CHERRY_PICK_HEAD" ]]; then
+ if [[ -d "$git_dir/sequencer" ]] ; then
+ zstyle -s ':prezto:module:git:info:action:cherry-pick-sequence' format 'cherry_pick_sequence_formatted' \
+ || cherry_pick_sequence_formatted='cherry-pick-sequence'
print "$cherry_pick_sequence_formatted"
else
- zstyle -s ':prezto:module:git:info:action:cherry-pick' format 'cherry_pick_formatted' || cherry_pick_formatted='cherry-pick'
+ zstyle -s ':prezto:module:git:info:action:cherry-pick' format 'cherry_pick_formatted' \
+ || cherry_pick_formatted='cherry-pick'
print "$cherry_pick_formatted"
fi
return 0
fi
- if [[ -f "${git_dir}/REVERT_HEAD" ]]; then
- if [[ -d "${git_dir}/sequencer" ]] ; then
- zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' || revert_sequence_formatted='revert-sequence'
+ if [[ -f "$git_dir/REVERT_HEAD" ]]; then
+ if [[ -d "$git_dir/sequencer" ]] ; then
+ zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' \
+ || revert_sequence_formatted='revert-sequence'
print "$revert_sequence_formatted"
else
- zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' || revert_formatted='revert'
+ zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' \
+ || revert_formatted='revert'
print "$revert_formatted"
fi
return 0
fi
- if [[ -f "${git_dir}/BISECT_LOG" ]]; then
- zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect'
+ if [[ -f "$git_dir/BISECT_LOG" ]]; then
+ zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' \
+ || bisect_formatted='bisect'
print "$bisect_formatted"
return 0
fi
@@ -219,8 +229,8 @@ function git-info {
[[ "$commondir" =~ ^/ ]] || commondir="$(git-dir)/$commondir"
fi
if [[ -f "$(git-dir)/refs/stash" || ( -n "$commondir" && -f "$commondir/refs/stash" ) ]]; then
- stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')"
- if [[ -n "$stashed" ]]; then
+ stashed=${#${(f)"$(command git stash list 2> /dev/null)"}}
+ if (( $stashed > 0 )); then
zformat -f stashed_formatted "$stashed_format" "S:$stashed"
fi
fi
diff --git a/modules/git/functions/git-stash-clear-interactive b/modules/git/functions/git-stash-clear-interactive
index cc665a1..163deac 100644
--- a/modules/git/functions/git-stash-clear-interactive
+++ b/modules/git/functions/git-stash-clear-interactive
@@ -15,7 +15,7 @@ fi
local stashed
if [[ -f "$(git-dir)/refs/stash" ]]; then
- stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')"
+ stashed=${#${(f)"$(command git stash list 2> /dev/null)"}}
if (( $stashed > 0 )); then
if read -q "?Clear $stashed stashed state(s) [y/N]? "; then
command git stash clear
diff --git a/modules/git/functions/git-stash-dropped b/modules/git/functions/git-stash-dropped
index d9e759e..142a4a7 100644
--- a/modules/git/functions/git-stash-dropped
+++ b/modules/git/functions/git-stash-dropped
@@ -16,7 +16,7 @@ command git fsck --unreachable 2> /dev/null \
| grep 'commit' \
| awk '{print $3}' \
| command git log \
- --pretty=format:${_git_log_oneline_format} \
+ --pretty=format:$_git_log_oneline_format \
--extended-regexp \
--grep="${1:-(WIP )?[Oo]n [^:]+:}" \
--merges \
diff --git a/modules/git/functions/git-submodule-move b/modules/git/functions/git-submodule-move
index 746f46e..5e162a1 100644
--- a/modules/git/functions/git-submodule-move
+++ b/modules/git/functions/git-submodule-move
@@ -26,7 +26,7 @@ if [[ -z "$url" ]]; then
return 1
fi
-mkdir -p "${dst:h}"
+mkdir -p "$dst:h"
git-submodule-remove "$src"
command git submodule add "$url" "$dst"
diff --git a/modules/git/functions/git-submodule-remove b/modules/git/functions/git-submodule-remove
index c8c11aa..b523314 100644
--- a/modules/git/functions/git-submodule-remove
+++ b/modules/git/functions/git-submodule-remove
@@ -22,9 +22,9 @@ command git config --file "$(git-dir)/config" --remove-section "submodule.${1}"
command git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &> /dev/null
command git add .gitmodules
-command git rm --cached -rf "${1}"
-rm -rf "${1}"
-rm -rf "$(git-dir)/modules/${1}"
+command git rm --cached -rf "$1"
+rm -rf "$1"
+rm -rf "$(git-dir)/modules/$1"
return 0
diff --git a/modules/git/init.zsh b/modules/git/init.zsh
index ba54082..ac7ef75 100644
--- a/modules/git/init.zsh
+++ b/modules/git/init.zsh
@@ -13,5 +13,8 @@ fi
# Load dependencies.
pmodload 'helper'
+# Load 'run-help' function.
+autoload -Uz run-help-git
+
# Source module files.
source "${0:h}/alias.zsh"
diff --git a/modules/gnu-utility/README.md b/modules/gnu-utility/README.md
index 7e62a17..747c72f 100644
--- a/modules/gnu-utility/README.md
+++ b/modules/gnu-utility/README.md
@@ -1,34 +1,34 @@
-GNU Utility
-===========
+# GNU Utility
Provides for the interactive use of GNU utilities on BSD systems.
-Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e.
+Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e.,
`ls` instead of `gls`, is not recommended since scripts that target other
utilities will be broken.
This module wraps GNU utilities in functions without a prefix for interactive
use.
-This module must be loaded **before** the *utility* module.
+This module must be loaded _before_ the [_`utility`_][1] module so that GNU
+utilities enabled in this module are available for configuration in _`utility`_
+module.
-Settings
---------
+## Settings
### Prefix
-To use a different prefix, add the following to *zpreztorc*, and replace 'g' with
-the desired prefix:
+To use a different prefix, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'g'` with the desired prefix.
```sh
zstyle ':prezto:module:gnu-utility' prefix 'g'
```
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][1].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: https://github.com/sorin-ionescu/prezto/issues
+[1]: ../utility#readme
+[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/gnu-utility/init.zsh b/modules/gnu-utility/init.zsh
index 4675a3c..85e8605 100644
--- a/modules/gnu-utility/init.zsh
+++ b/modules/gnu-utility/init.zsh
@@ -6,34 +6,36 @@
#
# Get the prefix or use the default.
-zstyle -s ':prezto:module:gnu-utility' prefix '_gnu_utility_p' || _gnu_utility_p='g'
+zstyle -s ':prezto:module:gnu-utility' prefix '_gnu_utility_p' \
+ || _gnu_utility_p='g'
# Return if requirements are not found.
-if (( ! ${+commands[${_gnu_utility_p}whoami]} )); then
+if (( ! $+commands[${_gnu_utility_p}whoami] )); then
return 1
fi
_gnu_utility_cmds=(
# Coreutils
- '[' 'b2sum' 'base32' 'base64' 'basename' 'cat' 'chcon' 'chgrp' 'chmod' 'chown'
- 'chroot' 'cksum' 'comm' 'cp' 'csplit' 'cut' 'date' 'dd' 'df'
- 'dir' 'dircolors' 'dirname' 'du' 'echo' 'env' 'expand' 'expr'
- 'factor' 'false' 'fmt' 'fold' 'groups' 'head' 'hostid' 'id'
- 'install' 'join' 'kill' 'link' 'ln' 'logname' 'ls' 'md5sum' 'mkdir'
- 'mkfifo' 'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc'
- 'numfmt' 'od' 'paste' 'pathchk' 'pinky' 'pr' 'printenv' 'printf' 'ptx'
- 'pwd' 'readlink' 'realpath' 'rm' 'rmdir' 'runcon' 'seq' 'sha1sum'
- 'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf'
+ '[' 'b2sum' 'base32' 'base64' 'basename' 'basenc' 'cat' 'chcon' 'chgrp'
+ 'chmod' 'chown' 'chroot' 'cksum' 'comm' 'cp' 'csplit' 'cut'
+ 'date' 'dd' 'df' 'dir' 'dircolors' 'dirname' 'du' 'echo' 'env' 'expand' 'expr'
+ 'factor' 'false' 'fmt' 'fold' 'groups' 'head' 'hostid' 'id' 'install' 'join'
+ 'kill' 'link' 'ln' 'logname' 'ls' 'md5sum' 'mkdir' 'mkfifo'
+ 'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc' 'numfmt' 'od'
+ 'paste' 'pathchk' 'pinky' 'pr' 'printenv' 'printf' 'ptx' 'pwd'
+ 'readlink' 'realpath' 'rm' 'rmdir' 'runcon'
+ 'seq' 'sha1sum' 'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf'
'sleep' 'sort' 'split' 'stat' 'stdbuf' 'stty' 'sum' 'sync' 'tac' 'tail'
- 'tee' 'test' 'timeout' 'touch' 'tr' 'true' 'truncate' 'tsort'
- 'tty' 'uname' 'unexpand' 'uniq' 'unlink' 'uptime' 'users' 'vdir'
+ 'tee' 'test' 'timeout' 'touch' 'tr' 'true' 'truncate' 'tsort' 'tty'
+ 'uname' 'unexpand' 'uniq' 'unlink' 'uptime' 'users' 'vdir'
'wc' 'who' 'whoami' 'yes'
# The following utilities are not part of Coreutils but installed separately.
# Binutils
- 'addr2line' 'ar' 'c++filt' 'elfedit' 'nm' 'objcopy' 'objdump'
- 'ranlib' 'readelf' 'size' 'strings' 'strip'
+ 'addr2line' 'ar' 'c++filt' 'coffdump' 'dlltool' 'dllwrap' 'elfedit' 'nm'
+ 'objcopy' 'objdump' 'ranlib' 'readelf'
+ 'size' 'srconv' 'strings' 'strip' 'sysdump' 'windmc' 'windres'
# Findutils
'find' 'locate' 'oldfind' 'updatedb' 'xargs'
@@ -42,16 +44,18 @@ _gnu_utility_cmds=(
'libtool' 'libtoolize'
# Miscellaneous
- 'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units' 'which'
+ 'egrep' 'fgrep' 'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units'
+ 'which'
)
# Wrap GNU utilities in functions.
for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do
_gnu_utility_pcmd="${_gnu_utility_p}${_gnu_utility_cmd}"
- if (( ${+commands[${_gnu_utility_pcmd}]} && ! ${+builtins[${_gnu_utility_cmd}]} )); then
+ if (( $+commands[$_gnu_utility_pcmd] \
+ && ! $+builtins[$_gnu_utility_cmd] )); then
eval "
- function ${_gnu_utility_cmd} {
- '${commands[${_gnu_utility_pcmd}]}' \"\$@\"
+ function $_gnu_utility_cmd {
+ '$commands[$_gnu_utility_pcmd]' \"\$@\"
}
"
fi
diff --git a/modules/gpg/README.md b/modules/gpg/README.md
index be3c1a9..08730eb 100644
--- a/modules/gpg/README.md
+++ b/modules/gpg/README.md
@@ -1,13 +1,14 @@
-GPG
-===
+# GPG
Provides for an easier use of [GPG][1] by setting up [gpg-agent][2].
+## Settings
+
### SSH
To enable OpenSSH Agent protocol emulation, and make `gpg-agent` a drop-in
replacement for `ssh-agent`, add the following line to
-*~/.gnupg/gpg-agent.conf*:
+_`$GNUPGHOME/gpg-agent.conf`_ or _`$$HOME/.gnupg/gpg-agent.conf`_:
```conf
enable-ssh-support
@@ -16,13 +17,12 @@ enable-ssh-support
When OpenSSH Agent protocol emulation is enabled, this module will load the SSH
module for additional processing.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][3].*
+_The authors of this module should be contacted via the [issue tracker][3]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: http://www.gnupg.org
-[2]: http://linux.die.net/man/1/gpg-agent
+[1]: https://www.gnupg.org
+[2]: https://linux.die.net/man/1/gpg-agent
[3]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/haskell/README.md b/modules/haskell/README.md
index dcf144c..db7bfae 100644
--- a/modules/haskell/README.md
+++ b/modules/haskell/README.md
@@ -1,10 +1,8 @@
-Haskell
-=======
+# Haskell
Enables local Haskell package installation.
-Per-user Package Installation
------------------------------
+## Per-user Package Installation
[Cabal][1], the Haskell package manager, can install packages into per user
directories.
@@ -17,12 +15,11 @@ documentation.
Install packages into per user directories with `cabal install --user`.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [Sebastian Wiesner](https://github.com/lunaryorn)
+- [Sebastian Wiesner](https://github.com/lunaryorn)
-[1]: http://www.haskell.org/cabal/
+[1]: https://www.haskell.org/cabal/
[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/helper/README.md b/modules/helper/README.md
index 9f10d6e..5c90a63 100644
--- a/modules/helper/README.md
+++ b/modules/helper/README.md
@@ -1,24 +1,26 @@
-Helper
-======
+# Helper
Provides helper functions for developing modules.
-Functions
----------
+## Functions
- - `add-zsh-trap` adds a function name to a list to be called when a trap is
- triggered.
- - `is-autoloadable` checks if a file can be autoloaded by trying to load it
- in a subshell.
- - `is-callable` checks if a name is a command, function, or alias.
- - `is-true` checks a boolean variable for "true".
- - `coalesce` prints the first non-empty string in the arguments array.
+- `add-zsh-trap` adds a function name to a list to be called when a trap is
+ triggered.
+- `is-autoloadable` checks if a file can be autoloaded by trying to load it in
+ a subshell.
+- `is-callable` checks if a name is a command, function, or alias.
+- `is-true` checks a boolean variable for "true".
+- `coalesce` prints the first non-empty string in the arguments array.
+- `is-darwin` checks if running on macOS Darwin.
+- `is-linux` checks if running on Linux.
+- `is-bsd` checks if running on BSD.
+- `is-cygwin` checks if running on Cygwin (Windows).
+- `is-termux` checks if running on Termux (Android).
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][1].*
+_The authors of this module should be contacted via the [issue tracker][1]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/helper/init.zsh b/modules/helper/init.zsh
index 0553556..0a33d7c 100644
--- a/modules/helper/init.zsh
+++ b/modules/helper/init.zsh
@@ -30,27 +30,27 @@ function coalesce {
return 1
}
-# is true on MacOS Darwin
+# Checks if running on macOS Darwin.
function is-darwin {
[[ "$OSTYPE" == darwin* ]]
}
-# is true on Linux's
+# Checks if running on Linux.
function is-linux {
[[ "$OSTYPE" == linux* ]]
}
-# is true on BSD's
+# Checks if running on BSD.
function is-bsd {
[[ "$OSTYPE" == *bsd* ]]
}
-# is true on Cygwin (Windows)
+# Checks if running on Cygwin (Windows).
function is-cygwin {
[[ "$OSTYPE" == cygwin* ]]
}
-# is true on termux (Android)
+# Checks if running on termux (Android).
function is-termux {
[[ "$OSTYPE" == linux-android ]]
}
diff --git a/modules/history-substring-search/README.md b/modules/history-substring-search/README.md
index 050a5c2..5e8eeb0 100644
--- a/modules/history-substring-search/README.md
+++ b/modules/history-substring-search/README.md
@@ -1,28 +1,25 @@
-History Substring Search
-========================
+# History Substring Search
-Integrates [zsh-history-substring-search][1] into Prezto, which implements
-the [Fish shell][2]'s history search feature, where the user can type in any
-part of a previously entered command and press up and down to cycle through
-matching commands.
+Integrates [`zsh-history-substring-search`][1] into Prezto, which implements the
+[Fish shell][2]'s history search feature, where the user can type in any part of
+a previously entered command and press up and down to cycle through matching
+commands.
-If this module is used in conjunction with the *syntax-highlighting* module,
-this module must be loaded **after** the *syntax-highlighting* module.
+If this module is used in conjunction with the [_`syntax-highlighting`_][3]
+module, this module must be loaded _after_ the _`syntax-highlighting`_ module.
-Contributors
-------------
+## Contributors
New features and bug fixes should be submitted to the
-[zsh-history-substring-search][1] project according to its rules and
+[`zsh-history-substring-search`][1] project according to its rules and
regulations. This module will be synchronized against it.
-Settings
---------
+## Settings
### Case Sensitivity
To enable case-sensitivity for this module only, add the following line to
-*zpreztorc*:
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
@@ -30,42 +27,45 @@ zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
### Highlighting
-If colors are enabled, *history-substring-search* will automatically highlight
+If colors are enabled, _history-substring-search_ will automatically highlight
positive results.
-To enable highlighting for this module only, add the following line to
-*zpreztorc*:
+To disable highlighting for this module only, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
-zstyle ':prezto:module:history-substring-search' color 'yes'
+zstyle ':prezto:module:history-substring-search' color 'no'
```
-To set the query found color, add the following line to *zpreztorc*:
+To set the query found color, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:history-substring-search:color' found ''
```
-To set the query not found color, add the following line to *zpreztorc*:
+To set the query not found color, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:history-substring-search:color' not-found ''
```
-To set the search globbing flags, add the following line to *zpreztorc*:
+To set the search globbing flags, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:history-substring-search' globbing-flags ''
```
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][3].*
+_The authors of this module should be contacted via the [issue tracker][4]._
- - [Suraj N. Kurapati](https://github.com/sunaku)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Suraj N. Kurapati](https://github.com/sunaku)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/zsh-users/zsh-history-substring-search
-[2]: http://fishshell.com
-[3]: https://github.com/sorin-ionescu/prezto/issues
+[2]: https://fishshell.com
+[3]: ../syntax-highlighting#readme
+[4]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/history-substring-search/external b/modules/history-substring-search/external
index aae3388..0f80b8e 160000
--- a/modules/history-substring-search/external
+++ b/modules/history-substring-search/external
@@ -1 +1 @@
-Subproject commit aae3388491c2312c4efb2e86bcb999927bb2900e
+Subproject commit 0f80b8eb3368b46e5e573c1d91ae69eb095db3fb
diff --git a/modules/history/README.md b/modules/history/README.md
index 1a03bd9..3806096 100644
--- a/modules/history/README.md
+++ b/modules/history/README.md
@@ -1,48 +1,50 @@
-History
-=======
+# History
Sets [history][1] options and defines history aliases.
-**Note:** If you are migrating from oh-my-zsh and want to keep your history, you
-will either need to set HISTFILE manually to `$HOME/.zsh_history` or rename
-`~/.zsh_history` to ~/.zhistory`.
+**Note:** Default path of `HISTFILE` has changed from
+_`${ZDOTDIR:-$HOME}/.zhistory`_ to _`${ZDOTDIR:-$HOME}/.zsh_history`_. The file
+will be automatically renamed if possible (when the new one doesn't exist).
+Otherwise, if you want to preserve previous history, you will need to move them
+from _`${ZDOTDIR:-$HOME}/.zhistory`_ to _`${ZDOTDIR:-$HOME}/.zsh_history`_.
-Options
--------
+Alternately, you can set `HISTFILE` manually to _`${ZDOTDIR:-$HOME}/.zhistory`_.
- - `BANG_HIST` treats the **!** character specially during expansion.
- - `EXTENDED_HISTORY` writes the history file in the *:start:elapsed;command* format.
- - `SHARE_HISTORY` shares history between all sessions. Note that
- `SHARE_HISTORY`, `INC_APPEND_HISTORY`, and `INC_APPEND_HISTORY_TIME` are
- mutually exclusive.
- - `HIST_EXPIRE_DUPS_FIRST` expires a duplicate event first when trimming history.
- - `HIST_IGNORE_DUPS` does not record an event that was just recorded again.
- - `HIST_IGNORE_ALL_DUPS` deletes an old recorded event if a new event is a duplicate.
- - `HIST_FIND_NO_DUPS` does not display a previously found event.
- - `HIST_IGNORE_SPACE` does not record an event starting with a space.
- - `HIST_SAVE_NO_DUPS` does not write a duplicate event to the history file.
- - `HIST_VERIFY` does not execute immediately upon history expansion.
- - `HIST_BEEP` beeps when accessing non-existent history.
+## Options
-Variables
----------
+- `BANG_HIST` treats the **!** character specially during expansion.
+- `EXTENDED_HISTORY` writes the history file in the _:start:elapsed;command_
+ format.
+- `SHARE_HISTORY` shares history between all sessions. Note that
+ `SHARE_HISTORY`, `INC_APPEND_HISTORY`, and `INC_APPEND_HISTORY_TIME` are
+ mutually exclusive.
+- `HIST_EXPIRE_DUPS_FIRST` expires a duplicate event first when trimming history.
+- `HIST_IGNORE_DUPS` does not record an event that was just recorded again.
+- `HIST_IGNORE_ALL_DUPS` deletes an old recorded event if a new event is a
+ duplicate.
+- `HIST_FIND_NO_DUPS` does not display a previously found event.
+- `HIST_IGNORE_SPACE` does not record an event starting with a space.
+- `HIST_SAVE_NO_DUPS` does not write a duplicate event to the history file.
+- `HIST_VERIFY` does not execute immediately upon history expansion.
+- `HIST_BEEP` beeps when accessing non-existent history.
- - `HISTFILE` stores the path to the history file.
- - `HISTSIZE` stores the maximum number of events to save in the internal history.
- - `SAVEHIST` stores the maximum number of events to save in the history file.
+## Variables
-Aliases
--------
+- `HISTFILE` stores the path to the history file.
+- `HISTSIZE` stores the maximum number of events to save in the internal history.
+- `SAVEHIST` stores the maximum number of events to save in the history file.
- - `history-stat` lists the ten most used commands
+## Aliases
-Authors
--------
+- `history-stat` lists the ten most used commands
-*The authors of this module should be contacted via the [issue tracker][2].*
+## Authors
- - [Robby Russell](https://github.com/robbyrussell)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+_The authors of this module should be contacted via the [issue tracker][2]._
-[1]: http://zsh.sourceforge.net/Guide/zshguide02.html#l16
+- [Robby Russell](https://github.com/robbyrussell)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Indrajit Raychaudhuri](https://github.com/indrajitr)
+
+[1]: https://zsh.sourceforge.net/Guide/zshguide02.html#l16
[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/history/init.zsh b/modules/history/init.zsh
index d1d3373..3f815c0 100644
--- a/modules/history/init.zsh
+++ b/modules/history/init.zsh
@@ -26,7 +26,7 @@ setopt HIST_BEEP # Beep when accessing non-existent history.
# Variables
#
-HISTFILE="${HISTFILE:-${ZDOTDIR:-$HOME}/.zhistory}" # The path to the history file.
+HISTFILE="${HISTFILE:-${ZDOTDIR:-$HOME}/.zsh_history}" # The path to the history file.
HISTSIZE=10000 # The maximum number of events to save in the internal history.
SAVEHIST=10000 # The maximum number of events to save in the history file.
@@ -36,3 +36,28 @@ SAVEHIST=10000 # The maximum number of events to save in the h
# Lists the ten most used commands.
alias history-stat="history 0 | awk '{print \$2}' | sort | uniq -c | sort -n -r | head"
+
+if [[ -s "${OLD_HISTFILE::=${HISTFILE:h}/.zhistory}" ]]; then
+
+ # New 'HISTFILE' doesn't exist yet, rename legacy one if available and notify.
+ if [[ ! -s "$HISTFILE" ]]; then
+ <
+#
+
+if (( $+commands[grunt] )); then
+ eval "$(grunt --completion=zsh)"
+
+ _grunt_completion "$@"
+fi
diff --git a/modules/node/functions/_gulp b/modules/node/functions/_gulp
new file mode 100644
index 0000000..b06acca
--- /dev/null
+++ b/modules/node/functions/_gulp
@@ -0,0 +1,15 @@
+#compdef gulp
+#autoload
+
+#
+# Gulp completion, delegating to gulp to do all the completion work.
+#
+# Authors:
+# Indrajit Raychaudhuri
+#
+
+if (( $+commands[gulp] )); then
+ eval "$(gulp --completion=zsh)"
+
+ _gulp_completion "$@"
+fi
diff --git a/modules/node/functions/node-doc b/modules/node/functions/node-doc
index b1a048b..92ac71d 100644
--- a/modules/node/functions/node-doc
+++ b/modules/node/functions/node-doc
@@ -13,6 +13,6 @@ if [[ -z "$BROWSER" ]]; then
fi
# TODO: Make the sections easier to use.
-"$BROWSER" "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}"
+"$BROWSER" "https://nodejs.org/docs/${$(node --version 2> /dev/null)/%-*}/api/all.html#${1}"
# }
diff --git a/modules/node/functions/node-info b/modules/node/functions/node-info
index c43759b..7a59127 100644
--- a/modules/node/functions/node-info
+++ b/modules/node/functions/node-info
@@ -15,12 +15,12 @@ local version_formatted
unset node_info
typeset -gA node_info
-if (( $+functions[nvm_version] )); then
- version="${$(nvm_version)#v}"
-elif (( $+commands[nodenv] )); then
+if (( $+commands[nodenv] )); then
version="${${$(nodenv version)#v}[(w)0]}"
+elif (( $+functions[nvm_version] )); then
+ version="${$(nvm_version)#v}"
elif (( $+commands[node] )) ; then
- version="${$(node -v)#v}"
+ version="${$(node -v)#v}"
fi
if [[ "$version" != (none|system) ]]; then
diff --git a/modules/node/init.zsh b/modules/node/init.zsh
index 6fb68f3..b359104 100644
--- a/modules/node/init.zsh
+++ b/modules/node/init.zsh
@@ -1,58 +1,65 @@
#
-# Loads the Node Version Manager and enables npm completion.
+# Configures Node local installation, loads version managers, and defines
+# variables and aliases.
#
# Authors:
# Sorin Ionescu
# Zeh Rizzatti
+# Indrajit Raychaudhuri
#
-# Load manually installed NVM into the shell session.
-if [[ -s "${NVM_DIR:=$HOME/.nvm}/nvm.sh" ]]; then
- source "${NVM_DIR}/nvm.sh"
+# Possible lookup locations for manually installed nodenv and nvm.
+local_nodenv_paths=({$NODENV_ROOT,{$XDG_CONFIG_HOME/,$HOME/.}nodenv}/bin/nodenv(N))
+local_nvm_paths=({$NVM_DIR,{$XDG_CONFIG_HOME/,$HOME/.}nvm}/nvm.sh(N))
-# Load package manager installed NVM into the shell session.
-elif (( $+commands[brew] )) && \
- [[ -d "${nvm_prefix::="$(brew --prefix 2> /dev/null)"/opt/nvm}" ]]; then
- source "$(brew --prefix nvm)/nvm.sh"
- unset nvm_prefix
+# Load manually installed or package manager installed nodenv into the shell
+# session.
+if (( $#local_nodenv_paths || $+commands[nodenv] )); then
-# Load manually installed nodenv into the shell session.
-elif [[ -s "${NODENV_ROOT:=$HOME/.nodenv}/bin/nodenv" ]]; then
- path=("${NODENV_ROOT}/bin" $path)
- eval "$(nodenv init - --no-rehash zsh)"
+ # Ensure manually installed nodenv is added to path when present.
+ [[ -s $local_nodenv_paths[1] ]] && path=($local_nodenv_paths[1]:h $path)
-# Load package manager installed nodenv into the shell session.
-elif (( $+commands[nodenv] )); then
- eval "$(nodenv init - --no-rehash zsh)"
+ eval "$(nodenv init - zsh)"
+
+# Load manually installed nvm into the shell session.
+elif (( $#local_nvm_paths )); then
+ source "$local_nvm_paths[1]" --no-use
+
+# Load package manager installed nvm into the shell session.
+elif (( $+commands[brew] )) \
+ && [[ -d "${nvm_path::="$(brew --prefix 2> /dev/null)"/opt/nvm}" ]]; then
+ source "$nvm_path/nvm.sh" --no-use
+fi
+
+unset local_n{odenv,vm}_paths nvm_path
# Return if requirements are not found.
-elif (( ! $+commands[node] )); then
+if (( ! $+commands[node] && ! $#functions[(i)n(odenv|vm)] )); then
return 1
fi
-# Load NPM and known helper completions.
-typeset -A compl_commands=(
- npm 'npm completion'
- grunt 'grunt --completion=zsh'
- gulp 'gulp --completion=zsh'
-)
+#
+# Variables
+#
-for compl_command in "${(k)compl_commands[@]}"; do
- if (( $+commands[$compl_command] )); then
- cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/$compl_command-cache.zsh"
+N_PREFIX="${XDG_CONFIG_HOME:-$HOME/.config}/n" # The path to 'n' cache.
- # Completion commands are slow; cache their output if old or missing.
- if [[ "$commands[$compl_command]" -nt "$cache_file" \
- || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
- || ! -s "$cache_file" ]]; then
- mkdir -p "$cache_file:h"
- command ${=compl_commands[$compl_command]} >! "$cache_file" 2> /dev/null
- fi
+#
+# Aliases
+#
- source "$cache_file"
+# npm
+alias npmi='npm install'
+alias npml='npm list'
+alias npmo='npm outdated'
+alias npmp='npm publish'
+alias npmP='npm prune'
+alias npmr='npm run'
+alias npms='npm search'
+alias npmt='npm test'
+alias npmu='npm update'
+alias npmx='npm uninstall'
- unset cache_file
- fi
-done
-
-unset compl_command{s,}
+alias npmci='npm ci'
+alias npmcit='npm cit'
+alias npmit='npm it'
diff --git a/modules/ocaml/README.md b/modules/ocaml/README.md
index e170158..75aed54 100644
--- a/modules/ocaml/README.md
+++ b/modules/ocaml/README.md
@@ -1,10 +1,8 @@
-OCaml
-=====
+# OCaml
Initializes [OCaml][1] package management.
-OPAM
-----
+## OPAM
[OPAM][2] is a package manager for OCaml.
@@ -15,13 +13,12 @@ relevant path and OCaml variables.
Install packages to your local package directory with `opam install`.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][3].*
+_The authors of this module should be contacted via the [issue tracker][3]._
- - [Sebastian Wiesner](https://github.com/lunaryorn)
+- [Sebastian Wiesner](https://github.com/lunaryorn)
-[1]: http://ocaml.org/
+[1]: https://ocaml.org/
[2]: http://opam.ocamlpro.com/
[3]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/osx/README.md b/modules/osx/README.md
index 1f93a2c..893d3af 100644
--- a/modules/osx/README.md
+++ b/modules/osx/README.md
@@ -1,50 +1,50 @@
-OSX
-===
+# OSX
Defines [macOS][1] aliases and functions.
-Settings
---------
+This module must be loaded _before_ the [_`completion`_][2] module so that the
+provided completion definitions are loaded automatically by _`completion`_
+module.
+
+## Settings
### Dash Keyword
-To change the keyword used by `mand` to open man pages in [_Dash.app_][2] from
-its default value of 'manpages', add the following line in *zpreztorc* and
-replace the **keyword** with the one configured in [_Dash.app_][2].
+To change the keyword used by `mand` to open man pages in [_Dash.app_][3] from
+its default value of 'manpages', add the following line in
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_ and replace the **keyword** with the one
+configured in [_Dash.app_][3].
```sh
zstyle ':prezto:module:osx:man' dash-keyword 'keyword'
```
-Aliases
--------
+## Aliases
- - `cdf` changes the current working director to the current _Finder_
- directory.
- - `pushdf` pushes the current working directory onto the directory queue and
- changes the current working director to the current _Finder_ directory.
+- `cdf` changes the current working director to the current _Finder_ directory.
+- `pushdf` pushes the current working directory onto the directory queue and
+ changes the current working director to the current _Finder_ directory.
-Functions
----------
+## Functions
- - `mand` opens _man_ pages in [_Dash.app_][2].
- - `manp` opens _man_ pages in _Preview.app_.
- - `pfd` prints the current _Finder_ directory.
- - `pfs` prints the current _Finder_ selection.
- - `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]).
- - `ql` previews files in Quick Look.
- - `osx-rm-dir-metadata` deletes .DS\_Store, \_\_MACOSX cruft.
- - `osx-ls-download-history` displays the macOS download history.
- - `osx-rm-download-history` deletes the macOS download history.
+- `mand` opens _man_ pages in [_Dash.app_][3].
+- `manp` opens _man_ pages in _Preview.app_.
+- `pfd` prints the current _Finder_ directory.
+- `pfs` prints the current _Finder_ selection.
+- `tab` creates a new tab (works in both _Terminal_ and [_iTerm.app_][4]).
+- `ql` previews files in Quick Look.
+- `osx-rm-dir-metadata` deletes _`.DS_Store`_, _`__MACOSX`_ cruft.
+- `osx-ls-download-history` displays the macOS download history.
+- `osx-rm-download-history` deletes the macOS download history.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][4].*
+_The authors of this module should be contacted via the [issue tracker][5]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: http://www.apple.com/macosx/
-[2]: http://kapeli.com/dash
-[3]: http://www.iterm2.com/
-[4]: https://github.com/sorin-ionescu/prezto/issues
+[1]: https://www.apple.com/macos/
+[2]: ../completion#readme
+[3]: https://kapeli.com/dash
+[4]: https://www.iterm2.com/
+[5]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/osx/functions/mand b/modules/osx/functions/mand
index 2902c76..b62fab3 100644
--- a/modules/osx/functions/mand
+++ b/modules/osx/functions/mand
@@ -8,7 +8,7 @@
function mand {
if (( $# > 0 )); then
zstyle -s ':prezto:module:osx:man' dash-keyword 'dashkw' || dashkw='manpages'
- open "dash://$dashkw:$1" 2> /dev/null
+ open "dash://$dashkw%3A$1" 2> /dev/null
if (( $? != 0 )); then
print "$0: Dash is not installed" >&2
break
diff --git a/modules/pacman/README.md b/modules/pacman/README.md
index a619a74..4e6ad8b 100644
--- a/modules/pacman/README.md
+++ b/modules/pacman/README.md
@@ -1,11 +1,9 @@
-Pacman
-======
+# Pacman
Provides aliases and functions for the [Pacman][1] package manager and
frontends.
-Settings
---------
+## Settings
It is possible to use a Pacman frontend with the pacman aliases provided by this
package as long as that frontend supports the same command line options (The
@@ -17,53 +15,51 @@ supported by Archlinux. It is currently recommended to manually build AUR
packages using the [provided instructions][3]. The [aurutils][4] project has a
set of small utilities to make this easier.
-To enable a Pacman frontend, add the following line to *zpreztorc*, substituting
-`pacman_frontend` with the name of the frontent:
+To enable a different Pacman frontend, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `''` with the name
+of the preferred frontend.
```sh
-zstyle ':prezto:module:pacman' frontend 'pacman_frontend'
+zstyle ':prezto:module:pacman' frontend ''
```
-Aliases
--------
+## Aliases
### Pacman
- - `pac` is short for `pacman`.
- - `paci` installs packages from repositories.
- - `pacI` installs packages from files.
- - `pacx` removes packages and unneeded dependencies.
- - `pacX` removes packages, their configuration, and unneeded dependencies.
- - `pacq` displays information about a package from the repositories.
- - `pacQ` displays information about a package from the local database.
- - `pacs` searches for packages in the repositories.
- - `pacS` searches for packages in the local database.
- - `pacu` synchronizes the local package and Arch Build System (requires `abs`)
- databases against the repositories.
- - `pacU` synchronizes the local package database against the repositories then
- upgrades outdated packages.
- - `pacman-list-orphans` lists orphan packages.
- - `pacman-remove-orphans` removes orphan packages.
+- `pac` is short for `pacman`.
+- `paci` installs packages from repositories.
+- `pacI` installs packages from files.
+- `pacx` removes packages and unneeded dependencies.
+- `pacX` removes packages, their configuration, and unneeded dependencies.
+- `pacq` displays information about a package from the repositories.
+- `pacQ` displays information about a package from the local database.
+- `pacs` searches for packages in the repositories.
+- `pacS` searches for packages in the local database.
+- `pacu` synchronizes the local package and Arch Build System (requires `abs`)
+ databases against the repositories.
+- `pacU` synchronizes the local package database against the repositories then
+ upgrades outdated packages.
+- `pacman-list-orphans` lists orphan packages.
+- `pacman-remove-orphans` removes orphan packages.
### Frontends
-Functions
----------
+## Functions
- - `aurget` clone an aur package
- - `pacman-list-explicit` lists explicitly installed pacman packages.
- - `pacman-list-disowned` lists pacman disowned files.
+- `aurget` clone an aur package.
+- `pacman-list-explicit` lists explicitly installed pacman packages.
+- `pacman-list-disowned` lists pacman disowned files.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][5].*
+_The authors of this module should be contacted via the [issue tracker][5]._
- - [Benjamin Boudreau](https://github.com/dreur)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Benjamin Boudreau](https://github.com/dreur)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: http://www.archlinux.org/pacman/
-[2]: https://wiki.archlinux.org/index.php/AUR_helpers#Comparison_table
-[3]: https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages
+[1]: https://www.archlinux.org/pacman/
+[2]: https://wiki.archlinux.org/title/AUR_helpers#Comparison_tables
+[3]: https://wiki.archlinux.org/title/Arch_User_Repository#Installing_and_upgrading_packages
[4]: https://github.com/AladW/aurutils
[5]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/perl/README.md b/modules/perl/README.md
index 67f2a17..772d068 100644
--- a/modules/perl/README.md
+++ b/modules/perl/README.md
@@ -1,18 +1,16 @@
-Perl
-====
+# Perl
Enables local [Perl][1] module installation on macOS and defines aliases.
-Local Module Installation
--------------------------
+## Local Module Installation
Perl versions older than 5.14 do not support the local installation of Perl
modules natively. This module allows for local installation of Perl modules on
-macOS in *~/Library/Perl/5.12* by altering the environment.
+macOS in _`~/Library/Perl/5.12`_ by altering the environment.
### Usage
-For Perl versions older than 5.14, install *local::lib*.
+For Perl versions older than 5.14, install _`local::lib`_.
```console
curl -L -C - -O http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz
@@ -22,73 +20,68 @@ perl Makefile.PL --bootstrap=$HOME/Library/Perl/5.12
make && make test && make install
```
-Install *cpanminus*:
+Install _cpanminus_:
```console
curl -L http://cpanmin.us | perl - --self-upgrade
```
-Perlbrew
---------
+## Perlbrew
An alternative to the above is to use [Perlbrew][2], which allows for the
management of multiple, isolated Perl installations in the home directory.
-plenv
------
+## plenv
-Yet another alternative is [plenv][3]. This is inspired from rbenv and enables
-switching between multiple binary installations.
+Yet another alternative is [_plenv_][3]. This is inspired from _rbenv_ and
+enables switching between multiple binary installations.
-The subcommands of plenv is similar with rbenv.
+The subcommands of _plenv_ is similar with _rbenv_.
-Aliases
--------
+## Aliases
### General
- - `pl` is short for `perl`.
- - `pld` looks up Perl documentation (`perldoc`).
- - `ple` executes a one line program in a loop (`perl -wlne`).
+- `pl` is short for `perl`.
+- `pld` looks up Perl documentation (`perldoc`).
+- `ple` executes a one line program in a loop (`perl -wlne`).
-### Perlbrew
+### Perlbrew (plb)
- - `plb` manages Perl environments.
- - `plba` lists available Perl versions.
- - `plbi` installs a Perl version.
- - `plbl` lists installed Perl versions.
- - `plbo` temporarily turns off Perlbrew.
- - `plbO` turns off Perlbrew.
- - `plbs` switches to a Perl version.
- - `plbu` uninstalls a Perl version.
- - `plbx` temporarily sets the Perl version to use.
+- `plb` manages Perl environments.
+- `plba` lists available Perl versions.
+- `plbi` installs a Perl version.
+- `plbl` lists installed Perl versions.
+- `plbo` temporarily turns off Perlbrew.
+- `plbO` turns off Perlbrew.
+- `plbs` switches to a Perl version.
+- `plbu` uninstalls a Perl version.
+- `plbx` temporarily sets the Perl version to use.
-### plenv
+### plenv (plv)
- - `plv` manages Perl environments.
- - `plvc` List all available plenv commands.
- - `plvl` Set or show the local application-specific Perl version.
- - `plvg` Set or show the global Perl version.
- - `plvs` Set or show the shell-specific Perl version.
- - `plvi` Install a Perl version using the perl-build plugin.
- - `plvu` Uninstall a specific Perl version.
- - `plvr` Rehash plenv shims (run this after installing executables).
- - `plvv` Show the current Perl version and its origin.
- - `plvV` List all Perl versions available to plenv.
- - `plvw` Display the full path to an executable.
- - `plvW` List all Perl versions that contain the given executable.
- - `plvm` List cpan modules in current perl.
- - `plvM` Migrate cpan modules from other version.
- - `plvI` Install cpanm.
+- `plv` manages Perl environments.
+- `plvc` List all available plenv commands.
+- `plvl` Set or show the local application-specific Perl version.
+- `plvg` Set or show the global Perl version.
+- `plvs` Set or show the shell-specific Perl version.
+- `plvi` Install a Perl version using the perl-build plugin.
+- `plvu` Uninstall a specific Perl version.
+- `plvr` Rehash plenv shims (run this after installing executables).
+- `plvv` Show the current Perl version and its origin.
+- `plvV` List all Perl versions available to plenv.
+- `plvw` Display the full path to an executable.
+- `plvW` List all Perl versions that contain the given executable.
+- `plvm` List cpan modules in current perl.
+- `plvM` Migrate cpan modules from other version.
+- `plvI` Install cpanm.
-Functions
----------
+## Functions
- - `perl-info` exposes information about the Perl environment via the
- `$perl_info` associative array.
+- `perl-info` exposes information about the Perl environment via the
+ `$perl_info` associative array.
-Theming
--------
+## Theming
To display the name of the current Perl version in a prompt, define the
following style in the `prompt_name_setup` function.
@@ -101,14 +94,13 @@ zstyle ':prezto:module:perl:info:version' format 'version:%v'
Then add `$perl_info[version]` to `$PROMPT` or `$RPROMPT` and call
`perl-info` in the `prompt_name_precmd` hook function.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][4].*
+_The authors of this module should be contacted via the [issue tracker][4]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: http://www.perl.org
-[2]: http://perlbrew.pl
+[1]: https://www.perl.org
+[2]: https://perlbrew.pl
[3]: https://github.com/tokuhirom/plenv
[4]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/prompt/README.md b/modules/prompt/README.md
index ef32770..2279b55 100644
--- a/modules/prompt/README.md
+++ b/modules/prompt/README.md
@@ -1,26 +1,24 @@
-Prompt
-======
+# Prompt
Loads prompt [themes][1].
-Settings
---------
+## Settings
### Prompt Theme
-To select a prompt theme, add the following to *zpreztorc*, and replace **name**
-with the name of the theme you wish to load. Setting it to **random** will load
-a random theme.
+To select a prompt theme, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_,
+and replace `''` with the name of the theme you wish to load. Setting it
+to `'random'` will load a random theme every time.
```sh
-zstyle ':prezto:module:prompt' theme 'name'
+zstyle ':prezto:module:prompt' theme ''
```
### Prompt Display Length
To change working directory prompt display length from 'short', set the
-following to 'long' (without `~` expansion) or 'full' (with `~` expansion)
-in *zpreztorc*.
+following to 'long' (without `~` expansion) or 'full' (with `~` expansion) in
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh
zstyle ':prezto:module:prompt' pwd-length 'short'
@@ -35,22 +33,21 @@ this can be disabled with the following snippet.
zstyle ':prezto:module:prompt' show-return-val 'no'
```
-Theming
--------
+## Theming
A prompt theme is an autoloadable function file with a special name,
`prompt_name_setup`, placed anywhere in `$fpath`, but for the purpose of this
-project, themes **should** be placed in the *modules/prompt/functions*
+project, themes **should** be placed in the _modules/prompt/functions_
directory.
### Required Variables
To ensure that your function works with the editor-info module you'll need to
-set the following variable:
+set the following variable in _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
-```
- # Tell prezto we can manage this prompt
- zstyle ':prezto:module:prompt' managed 'yes'
+```sh
+# Tell prezto we can manage this prompt
+zstyle ':prezto:module:prompt' managed 'yes'
```
This is to ensure compatibility with outside prompts, while allowing prezto
@@ -122,7 +119,7 @@ function prompt_name_preview {
### Hook Functions
-There are many Zsh [hook][2] functions, but mostly the *precmd* hook will be
+There are many Zsh [hook][2] functions, but mostly the _precmd_ hook will be
used.
#### `prompt_name_precmd`
@@ -134,7 +131,8 @@ When calling functions to get information to display in a prompt, do not assume
that all the dependencies have been loaded. Always check for the availability of
a function before you calling it.
-**Do not register hook functions. They will be registered by the `prompt` function.**
+**Do not register hook functions. They will be automatically registered by the
+`prompt` function.**
The most basic example of this function can be seen below.
@@ -146,10 +144,9 @@ function prompt_name_precmd {
}
```
-Troubleshooting
----------------
+## Troubleshooting
-### Fonts aren't displaying properly.
+### Fonts aren't displaying properly
On most systems, themes which use special characters need to have a patched font
installed and configured properly.
@@ -157,16 +154,14 @@ installed and configured properly.
Powerline provides some information on [terminal support][4] and [how to install
patched fonts][5] which should fix most font issues.
+## Authors
-Authors
--------
+_The authors of this module should be contacted via the [issue tracker][3]._
-*The authors of this module should be contacted via the [issue tracker][3].*
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
-
-[1]: http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Prompt-Themes
-[2]: http://zsh.sourceforge.net/Doc/Release/Functions.html#Hook-Functions
+[1]: https://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Prompt-Themes
+[2]: https://zsh.sourceforge.net/Doc/Release/Functions.html#Hook-Functions
[3]: https://github.com/sorin-ionescu/prezto/issues
-[4]: http://powerline.readthedocs.io/en/master/usage.html#terminal-emulator-requirements
-[5]: http://powerline.readthedocs.io/en/latest/installation.html#fonts-installation
+[4]: https://powerline.readthedocs.io/en/master/usage.html#terminal-emulator-requirements
+[5]: https://powerline.readthedocs.io/en/latest/installation.html#fonts-installation
diff --git a/modules/prompt/external/async b/modules/prompt/external/async
index 95c2b15..bbbc92b 160000
--- a/modules/prompt/external/async
+++ b/modules/prompt/external/async
@@ -1 +1 @@
-Subproject commit 95c2b1577f455728ec01cec001a86c216d0af2bd
+Subproject commit bbbc92bd01592513a6b7739a45b7911af18acaef
diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k
index d26bdcd..f5d6184 160000
--- a/modules/prompt/external/powerlevel10k
+++ b/modules/prompt/external/powerlevel10k
@@ -1 +1 @@
-Subproject commit d26bdcd6010cfe82bc7bab07e4363b40be834cc8
+Subproject commit f5d61840ae3a4f8c2765e1a67d94d9a96de71601
diff --git a/modules/prompt/external/powerlevel9k b/modules/prompt/external/powerlevel9k
deleted file mode 160000
index 2f4b150..0000000
--- a/modules/prompt/external/powerlevel9k
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2f4b15041fe31d85dc9ef705b818c3a0e6985da3
diff --git a/modules/prompt/functions/prompt_cloud_setup b/modules/prompt/functions/prompt_cloud_setup
index be2a33a..908e3c9 100644
--- a/modules/prompt/functions/prompt_cloud_setup
+++ b/modules/prompt/functions/prompt_cloud_setup
@@ -9,7 +9,7 @@
# - The prompt is prefixed by a character sequence of your choice.
# - Only displays the current directory instead of the full path.
# - Displays the current branch when in a git project (this requires loading
-# the git module before prompt in ~/.zpreztorc).
+# the git module before prompt in ${ZDOTDIR:-$HOME}/.zpreztorc).
# - Displays a character at the end of the prompt when in a git project with
# "dirty" files.
#
@@ -17,7 +17,7 @@
# This prompt's prefix symbol and colors are customizable:
# prompt cloud [] [] []
#
-# In ~/.zpreztorc:
+# In ${ZDOTDIR:-$HOME}/.zpreztorc:
# zstyle ':prezto:module:prompt' theme 'cloud' \
# [''] \
# [''] \
@@ -53,7 +53,7 @@ This prompt's prefix symbol and colors are customizable:
prompt cloud [] [] []
-In ~/.zpreztorc:
+In ${ZDOTDIR:-$HOME}/.zpreztorc:
zstyle ':prezto:module:prompt' theme 'cloud' [''] [''] ['']
If these options are not provided, the symbol defaults to ☁ with colors cyan
diff --git a/modules/prompt/functions/prompt_powerlevel9k_setup b/modules/prompt/functions/prompt_powerlevel9k_setup
deleted file mode 120000
index f692e0a..0000000
--- a/modules/prompt/functions/prompt_powerlevel9k_setup
+++ /dev/null
@@ -1 +0,0 @@
-../external/powerlevel9k/powerlevel9k.zsh-theme
\ No newline at end of file
diff --git a/modules/prompt/init.zsh b/modules/prompt/init.zsh
index 0ec007c..3180883 100644
--- a/modules/prompt/init.zsh
+++ b/modules/prompt/init.zsh
@@ -12,6 +12,16 @@ autoload -Uz promptinit && promptinit
zstyle -a ':prezto:module:prompt' theme 'prompt_argv'
if [[ "$TERM" == (dumb|linux|*bsd*) ]] || (( $#prompt_argv < 1 )); then
prompt 'off'
+elif [[ "$prompt_argv[1]" == 'powerlevel9k' ]] ; then
+ <
+#
+
+if (( $+commands[$words[1]] )); then
+
+ function _pip_completion {
+ compadd -- $( COMP_WORDS="$words[*]" COMP_CWORD=$(( CURRENT - 1 )) \
+ PIP_AUTO_COMPLETE=1 $words[1] 2>/dev/null )
+ }
+ _pip_completion "$@"
+
+fi
diff --git a/modules/python/init.zsh b/modules/python/init.zsh
index b878f04..ed68990 100644
--- a/modules/python/init.zsh
+++ b/modules/python/init.zsh
@@ -5,71 +5,77 @@
# Sorin Ionescu
# Sebastian Wiesner
# Patrick Bos
+# Indrajit Raychaudhuri
#
-# Load dependencies
+# Load dependencies.
pmodload 'helper'
-# Load manually installed pyenv into the path
-if [[ -s "${PYENV_ROOT:=$HOME/.pyenv}/bin/pyenv" ]]; then
- path=("${PYENV_ROOT}/bin" $path)
- eval "$(pyenv init - --no-rehash zsh)"
+# Load manually installed or package manager installed pyenv into the shell
+# session.
+if [[ -s "${local_pyenv::=${PYENV_ROOT:-$HOME/.pyenv}/bin/pyenv}" ]] \
+ || (( $+commands[pyenv] )); then
-# Load pyenv into the current python session
-elif (( $+commands[pyenv] )); then
- eval "$(pyenv init - --no-rehash zsh)"
+ # Ensure manually installed pyenv is added to path when present.
+ [[ -s $local_pyenv ]] && path=($local_pyenv:h $path)
+
+ # pyenv 2+ requires shims to be added to path before being initialized.
+ autoload -Uz is-at-least
+ if is-at-least 2 ${"$(pyenv --version 2>&1)"[(w)2]}; then
+ eval "$(pyenv init --path zsh)"
+ fi
+
+ eval "$(pyenv init - zsh)"
# Prepend PEP 370 per user site packages directory, which defaults to
# ~/Library/Python on macOS and ~/.local elsewhere, to PATH. The
# path can be overridden using PYTHONUSERBASE.
else
if [[ -n "$PYTHONUSERBASE" ]]; then
- path=($PYTHONUSERBASE/bin $path)
+ path=($PYTHONUSERBASE/bin(N) $path)
elif is-darwin; then
path=($HOME/Library/Python/*/bin(N) $path)
else
# This is subject to change.
- path=($HOME/.local/bin $path)
+ path=($HOME/.local/bin(N) $path)
fi
fi
+unset local_pyenv
+
# Return if requirements are not found.
-if (( ! $+commands[python] && ! $+commands[pyenv] )); then
+if (( ! $#commands[(i)python[23]#] && ! $+functions[pyenv] )); then
return 1
fi
function _python-workon-cwd {
- # Check if this is a Git repo
- local GIT_REPO_ROOT=""
- local GIT_TOPLEVEL="$(git rev-parse --show-toplevel 2> /dev/null)"
- if [[ $? == 0 ]]; then
- GIT_REPO_ROOT="$GIT_TOPLEVEL"
- fi
- # Get absolute path, resolving symlinks
- local PROJECT_ROOT="${PWD:A}"
+ # Check if this is a Git repo.
+ local GIT_REPO_ROOT="$(git rev-parse --show-toplevel 2> /dev/null)"
+ # Get absolute path, resolving symlinks.
+ local PROJECT_ROOT="$PWD:A"
while [[ "$PROJECT_ROOT" != "/" && ! -e "$PROJECT_ROOT/.venv" \
- && ! -d "$PROJECT_ROOT/.git" && "$PROJECT_ROOT" != "$GIT_REPO_ROOT" ]]; do
- PROJECT_ROOT="${PROJECT_ROOT:h}"
+ && ! -d "$PROJECT_ROOT/.git" && "$PROJECT_ROOT" != "$GIT_REPO_ROOT" ]]; do
+ PROJECT_ROOT="$PROJECT_ROOT:h"
done
- if [[ "$PROJECT_ROOT" == "/" ]]; then
+ if [[ $PROJECT_ROOT == "/" ]]; then
PROJECT_ROOT="."
fi
- # Check for virtualenv name override
+ # Check for virtualenv name override.
local ENV_NAME=""
if [[ -f "$PROJECT_ROOT/.venv" ]]; then
- ENV_NAME="$(cat "$PROJECT_ROOT/.venv")"
+ ENV_NAME="$(<$PROJECT_ROOT/.venv)"
elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]]; then
ENV_NAME="$PROJECT_ROOT/.venv"
- elif [[ "$PROJECT_ROOT" != "." ]]; then
- ENV_NAME="${PROJECT_ROOT:t}"
+ elif [[ $PROJECT_ROOT != "." ]]; then
+ ENV_NAME="$PROJECT_ROOT:t"
fi
if [[ -n $CD_VIRTUAL_ENV && "$ENV_NAME" != "$CD_VIRTUAL_ENV" ]]; then
- # We've just left the repo, deactivate the environment
- # Note: this only happens if the virtualenv was activated automatically
+ # We've just left the repo, deactivate the environment.
+ # Note: this only happens if the virtualenv was activated automatically.
deactivate && unset CD_VIRTUAL_ENV
fi
- if [[ "$ENV_NAME" != "" ]]; then
- # Activate the environment only if it is not already active
+ if [[ $ENV_NAME != "" ]]; then
+ # Activate the environment only if it is not already active.
if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then
if [[ -n "$WORKON_HOME" && -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then
workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME"
@@ -80,17 +86,17 @@ function _python-workon-cwd {
fi
}
-# Load auto workon cwd hook
-if zstyle -t ':prezto:module:python:virtualenv' auto-switch 'yes'; then
- # Auto workon when changing directory
+# Load auto workon cwd hook.
+if zstyle -t ':prezto:module:python:virtualenv' auto-switch; then
+ # Auto workon when changing directory.
autoload -Uz add-zsh-hook
add-zsh-hook chpwd _python-workon-cwd
fi
# Load virtualenvwrapper into the shell session, if pre-requisites are met
# and unless explicitly requested not to
-if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \
- zstyle -T ':prezto:module:python:virtualenv' initialize ; then
+if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) \
+ && zstyle -T ':prezto:module:python:virtualenv' initialize ; then
# Set the directory where virtual environments are stored.
export WORKON_HOME="${WORKON_HOME:-$HOME/.virtualenvs}"
@@ -105,7 +111,7 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \
# can exist in 'pyenv' synthesized paths (e.g., '~/.pyenv/plugins') instead.
local -a pyenv_plugins
if (( $+commands[pyenv] )); then
- pyenv_plugins=(${(@oM)${(f)"$(pyenv commands --no-sh 2>/dev/null)"}:#virtualenv*})
+ pyenv_plugins=(${(@oM)${(f)"$(pyenv commands --no-sh 2> /dev/null)"}:#virtualenv*})
fi
if (( $pyenv_plugins[(i)virtualenv-init] <= $#pyenv_plugins )); then
@@ -117,19 +123,10 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \
pyenv "$pyenv_plugins[(R)virtualenvwrapper(_lazy|)]"
fi
else
- # Fallback to 'virtualenvwrapper' without 'pyenv' wrapper if available
- # in '$path' or in an alternative location on a Debian based system.
- #
- # If homebrew is installed and the python location wasn't overridden via
- # environment variable we fall back to python3 then python2 in that order.
- # This is needed to fix an issue with virtualenvwrapper as homebrew no
- # longer shadows the system python.
- if [[ -z "$VIRTUALENVWRAPPER_PYTHON" ]] && (( $+commands[brew] )); then
- if (( $+commands[python3] )); then
- export VIRTUALENVWRAPPER_PYTHON=$commands[python3]
- elif (( $+commands[python2] )); then
- export VIRTUALENVWRAPPER_PYTHON=$commands[python2]
- fi
+ # Fallback to 'virtualenvwrapper' without 'pyenv' wrapper if 'python' is
+ # available in '$path'.
+ if (( ! $+VIRTUALENVWRAPPER_PYTHON )) && (( $#commands[(i)python[23]#] )); then
+ VIRTUALENVWRAPPER_PYTHON=$commands[(i)python[23]#]
fi
virtenv_sources=(
@@ -137,7 +134,7 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \
/usr/share/virtualenvwrapper/virtualenvwrapper(_lazy|).sh(OnN)
)
if (( $#virtenv_sources )); then
- source "${virtenv_sources[1]}"
+ source "$virtenv_sources[1]"
fi
unset virtenv_sources
@@ -146,38 +143,7 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \
unset pyenv_plugins
fi
-# Load PIP completion.
-# Detect and use one available from among 'pip', 'pip2', 'pip3' variants
-if [[ -n "$PYENV_ROOT" ]]; then
- for pip in pip{,2,3}; do
- pip_command="$(pyenv which "$pip" 2>/dev/null)"
- [[ -n "$pip_command" ]] && break
- done
- unset pip
-else
- pip_command="$commands[(i)pip(|[23])]"
-fi
-if [[ -n "$pip_command" ]]; then
- cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/pip-cache.zsh"
-
- if [[ "$pip_command" -nt "$cache_file" \
- || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
- || ! -s "$cache_file" ]]; then
- mkdir -p "$cache_file:h"
- # pip is slow; cache its output. And also support 'pip2', 'pip3' variants
- "$pip_command" completion --zsh \
- | sed -e "s/\(compctl -K [-_[:alnum:]]* pip\).*/\1{,2,3}{,.{0..9}}/" \
- >! "$cache_file" \
- 2> /dev/null
- fi
-
- source "$cache_file"
-
- unset cache_file
-fi
-unset pip_command
-
-# Load conda into the shell session, if requested
+# Load conda into the shell session, if requested.
zstyle -T ':prezto:module:python' conda-init
if (( $? && $+commands[conda] )); then
if (( $(conda ..changeps1) )); then
diff --git a/modules/rails/README.md b/modules/rails/README.md
index 19bea1d..129627a 100644
--- a/modules/rails/README.md
+++ b/modules/rails/README.md
@@ -1,34 +1,31 @@
-Ruby on Rails
-=============
+# Ruby on Rails
Defines [Ruby on Rails][1] aliases.
-Aliases
--------
+## Aliases
- - `ror` is short for `rails`.
- - `rorc` starts the Rails console.
- - `rordc` starts the Rails console connected to the database.
- - `rordm` migrates the database.
- - `rordM` migrates the database and recreates the test database.
- - `rordr` rolls the database schema back to the previous version.
- - `rorg` generates new code.
- - `rorl` displays the log.
- - `rorlc` truncates logs to zero bytes.
- - `rorp` installs a plugin.
- - `rorr` runs code in the application environment.
- - `rors` starts the Rails server.
- - `rorsd` starts the Rails server with the debugger.
- - `rorx` destroys newly generated code.
+- `ror` is short for `rails`.
+- `rorc` starts the Rails console.
+- `rordc` starts the Rails console connected to the database.
+- `rordm` migrates the database.
+- `rordM` migrates the database and recreates the test database.
+- `rordr` rolls the database schema back to the previous version.
+- `rorg` generates new code.
+- `rorl` displays the log.
+- `rorlc` truncates logs to zero bytes.
+- `rorp` installs a plugin.
+- `rorr` runs code in the application environment.
+- `rors` starts the Rails server.
+- `rorsd` starts the Rails server with the debugger.
+- `rorx` destroys newly generated code.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [Robby Russell](https://github.com/robbyrussell)
- - [Jake Bell](https://github.com/theunraveler)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Robby Russell](https://github.com/robbyrussell)
+- [Jake Bell](https://github.com/theunraveler)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: http://rubyonrails.org
+[1]: https://rubyonrails.org
[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/rsync/README.md b/modules/rsync/README.md
index 77d78ea..ca0627f 100644
--- a/modules/rsync/README.md
+++ b/modules/rsync/README.md
@@ -1,27 +1,26 @@
-Rsync
-=====
+# Rsync
Defines [rsync][1] aliases.
-macOS users are encouraged to use [Bombich's rsync][2], which has HFS+
-enhancements.
+macOS users are encouraged to use _rsync_ from [Homebrew][2] or [MacPorts][3],
+which has additional enhancements including patches from [Bombich][4].
-Aliases
--------
+## Aliases
- - `rsync-copy` copies files and directories from *source* to *destination*.
- - `rsync-move` moves files and directories from *source* to *destination*.
- - `rsync-update` updates files and directories on *destination*.
- - `rsync-synchronize` synchronizes files and directories between *source* and
- *destination*.
+- `rsync-copy` copies files and directories from _source_ to _destination_.
+- `rsync-move` moves files and directories from _source_ to _destination_.
+- `rsync-update` updates files and directories on _destination_.
+- `rsync-synchronize` synchronizes files and directories between _source_ and
+ _destination_.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][3].*
+_The authors of this module should be contacted via the [issue tracker][5]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: http://rsync.samba.org
-[2]: https://bombich.com/kb/ccc5/credits#rsync
-[3]: https://github.com/sorin-ionescu/prezto/issues
+[1]: https://rsync.samba.org
+[2]: https://github.com/Homebrew/homebrew-core
+[3]: https://ports.macports.org/port/rsync
+[4]: https://bombich.com/kb/ccc5/credits#rsync
+[5]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/rsync/init.zsh b/modules/rsync/init.zsh
index 79432c1..47eabfe 100644
--- a/modules/rsync/init.zsh
+++ b/modules/rsync/init.zsh
@@ -20,14 +20,19 @@ pmodload 'helper'
_rsync_cmd='rsync --verbose --progress --human-readable --compress --archive \
--hard-links --one-file-system'
-if grep -q 'xattrs' <(rsync --help 2>&1); then
- _rsync_cmd="${_rsync_cmd} --acls --xattrs"
-fi
+autoload -Uz is-at-least
+if is-at-least 3.1 ${"$(rsync --version 2>&1)"[(w)3]}; then
-# macOS and HFS+ Enhancements
-# https://bombich.com/kb/ccc5/credits
-if is-darwin && grep -q 'file-flags' <(rsync --help 2>&1); then
- _rsync_cmd="${_rsync_cmd} --crtimes --fileflags --protect-decmpfs --force-change"
+ # ACL and extended attributes support
+ if grep -q 'xattrs' <(rsync --help 2>&1); then
+ _rsync_cmd="${_rsync_cmd} --acls --xattrs"
+ fi
+
+ # macOS Enhancements
+ # https://bombich.com/kb/ccc5/credits
+ if is-darwin && grep -q 'file-flags' <(rsync --help 2>&1); then
+ _rsync_cmd="${_rsync_cmd} --crtimes --fileflags --force-change"
+ fi
fi
alias rsync-copy="${_rsync_cmd}"
diff --git a/modules/ruby/README.md b/modules/ruby/README.md
index feaa301..97a09f0 100644
--- a/modules/ruby/README.md
+++ b/modules/ruby/README.md
@@ -1,21 +1,29 @@
-Ruby
-====
+# Ruby
Configures [Ruby][1] local gem installation, loads version managers, and defines
aliases.
-Local Gem Installation
-----------------------
+## Local Gem Installation
When a Ruby version manager is not detected, local gems are installed in
-`~/.gems`; otherwise, they are installed according to the manager.
+_`~/.gem`_; otherwise, they are installed according to the manager.
-RVM
----
+## rbenv
-An alternative to the above is to use [The Ruby Version Manager (RVM)][2], which
-allows for managing multiple, isolated Ruby installations and gem sets in the
-home directory.
+An alternative RVM is to use [_rbenv_][2], which allows for switching between
+multiple, isolated Ruby installations in the home directory.
+
+While it is not as feature rich as RVM, it is not loaded into the shell and is
+not known to cause conflicts with shell scripts.
+
+This will be loaded automatically if _rbenv_ is installed to `$RBENV_ROOT`,
+_`~/.rbenv`_, or if the `rbenv` command is on the path.
+
+## rvm
+
+An alternative to the above is to use [The Ruby Version Manager (_rvm_)][3],
+which allows for managing multiple, isolated Ruby installations and gem sets in
+the home directory.
Since RVM is loaded into the shell and is known to override shell commands, it
may conflict with shell scripts.
@@ -23,93 +31,76 @@ may conflict with shell scripts.
Load this module as late as possible when using RVM since RVM will complain if
it is not first in `$PATH`.
-rbenv
------
+## chruby
-An alternative RVM is to use [rbenv][3], which allows for switching between
-multiple, isolated Ruby installations in the home directory.
-
-While it is not as feature rich as RVM, it is not loaded into the shell and is
-not known to cause conflicts with shell scripts.
-
-This will be loaded automatically if rbenv is installed to `$RBENV_ROOT`,
-`~/.rbenv`, or if the `rbenv` command is on the path.
-
-chruby
-------
-
-Yet another alternative is [chruby][4], which is simpler than both RVM and
-rbenv.
+Yet another alternative is [_chruby_][4], which is simpler than both _rvm_ and
+_rbenv_.
### Settings
#### Auto-Switch
To enable auto switching the Ruby version on directory change based on the
-`.ruby-version` file, add the following line to [`zpreztorc`][5]:
+`.ruby-version` file, add the following line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
```
-Bundler
--------
+## Bundler
Manage gems that are not meant to be used as commands, such as application
-dependencies, with [Bundler][6].
+dependencies, with [Bundler][5].
-Aliases
--------
+## Aliases
### General
- - `rb` is short for `ruby`.
+- `rb` is short for `ruby`.
### Bundler
- - `rbb` manages ruby dependencies (`bundle`).
- - `rbbc` cleans up unused gems in your bundler directory.
- - `rbbe` executes a script in the context of the current bundle.
- - `rbbi` installs the gems specified in the `Gemfile` in `vendor/bundle`.
- - `rbbI` installs the following:
- - gems specified in the `Gemfile` in `vendor/bundle`.
- - packages the gems into `vendor/cache`.
- - appends bundler directories to `.gitignore`.
- - `rbbl` lists all gems in the current bundle.
- - `rbbo` opens an installed gem in the editor.
- - `rbbp` packages gem files into `vendor/cache`.
- - `rbbu` updates gems to their latest version.
+- `rbb` manages ruby dependencies (`bundle`).
+- `rbbc` cleans up unused gems in your bundler directory.
+- `rbbe` executes a script in the context of the current bundle.
+- `rbbi` installs the gems specified in the `Gemfile` in `vendor/bundle`.
+- `rbbI` installs the following:
+ - gems specified in the `Gemfile` in `vendor/bundle`.
+ - packages the gems into `vendor/cache`.
+ - appends bundler directories to `.gitignore`.
+- `rbbl` lists all gems in the current bundle.
+- `rbbo` opens an installed gem in the editor.
+- `rbbp` packages gem files into `vendor/cache`.
+- `rbbu` updates gems to their latest version.
-Functions
----------
+## Functions
- - `ruby-app-root` displays the path to the Ruby application root directory.
- - `ruby-info` exposes information about the Ruby environment via the
- `$ruby_info` associative array.
+- `ruby-app-root` displays the path to the Ruby application root directory.
+- `ruby-info` exposes information about the Ruby environment via the
+ `$ruby_info` associative array.
-Theming
--------
+## Theming
To display the name of the current Ruby version in a prompt, define the
following style in the `prompt_name_setup` function.
- # %v - ruby version.
- zstyle ':prezto:module:ruby:info:version' format 'version:%v'
+```sh
+# %v - ruby version.
+zstyle ':prezto:module:ruby:info:version' format 'version:%v'
+```
Then add `$ruby_info[version]` to `$PROMPT` or `$RPROMPT` and call
`ruby-info` in the `prompt_name_preexec` hook function.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][7].*
+_The authors of this module should be contacted via the [issue tracker][6]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: http://www.ruby-lang.org
-[2]: https://rvm.io
-[3]: https://github.com/sstephenson/rbenv
+[1]: https://www.ruby-lang.org
+[2]: https://github.com/rbenv/rbenv
+[3]: https://rvm.io
[4]: https://github.com/postmodern/chruby
-[5]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zpreztorc
-[6]: http://gembundler.com
-[7]: https://github.com/sorin-ionescu/prezto/issues
+[5]: https://gembundler.com
+[6]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/ruby/init.zsh b/modules/ruby/init.zsh
index 1c1fb99..cf55bc5 100644
--- a/modules/ruby/init.zsh
+++ b/modules/ruby/init.zsh
@@ -1,27 +1,32 @@
#
-# Configures Ruby local gem installation, loads version managers, and defines
+# Configures Ruby local installation, loads version managers, and defines
# aliases.
#
-# Authors: Sorin Ionescu
+# Authors:
+# Sorin Ionescu
+# Indrajit Raychaudhuri
#
-# Load RVM into the shell session.
-if [[ -s "$HOME/.rvm/scripts/rvm" ]]; then
+# Possible lookup locations for manually installed rbenv and rvm.
+local_rbenv_paths=({$RBENV_ROOT,{$XDG_CONFIG_HOME/,$HOME/.}rbenv}/bin/rbenv(N))
+local_rvm_paths=({$RVM_DIR,{$XDG_CONFIG_HOME/,$HOME/.}rvm}/scripts/rvm(N))
+
+# Load manually installed or package manager installed rbenv into the shell
+# session.
+if (( $#local_rbenv_paths || $+commands[rbenv] )); then
+
+ # Ensure manually installed rbenv is added to path when present.
+ [[ -s $local_rbenv_paths[1] ]] && path=($local_rbenv_paths[1]:h $path)
+
+ eval "$(rbenv init - zsh)"
+
+# Load manually installed rvm into the shell session.
+elif (( $#local_rvm_paths )); then
# Unset AUTO_NAME_DIRS since auto adding variable-stored paths to ~ list
- # conflicts with RVM.
+ # conflicts with rvm.
unsetopt AUTO_NAME_DIRS
- # Source RVM.
- source "$HOME/.rvm/scripts/rvm"
-
-# Load manually installed rbenv into the shell session.
-elif [[ -s "${RBENV_ROOT:=$HOME/.rbenv}/bin/rbenv" ]]; then
- path=("${RBENV_ROOT}/bin" $path)
- eval "$(rbenv init - --no-rehash zsh)"
-
-# Load package manager installed rbenv into the shell session.
-elif (( $+commands[rbenv] )); then
- eval "$(rbenv init - --no-rehash zsh)"
+ source "$local_rvm_paths[1]"
# Load package manager installed chruby into the shell session.
elif (( $+commands[chruby-exec] )); then
@@ -34,7 +39,7 @@ elif (( $+commands[chruby-exec] )); then
source "${commands[chruby-exec]:h:h}/share/chruby/auto.sh"
fi
- # If a default Ruby is set, switch to it.
+ # If a default ruby is set, switch to it.
chruby_auto
fi
@@ -43,8 +48,10 @@ else
path=($HOME/.gem/ruby/*/bin(N) $path)
fi
+unset local_rbenv
+
# Return if requirements are not found.
-if (( ! $+commands[ruby] && ! ( $+commands[rvm] || $+commands[rbenv] ) )); then
+if (( ! $+commands[ruby] && ! $#functions[(i)r(benv|vm)] )); then
return 1
fi
diff --git a/modules/screen/README.md b/modules/screen/README.md
index 0a9ff07..a1775f7 100644
--- a/modules/screen/README.md
+++ b/modules/screen/README.md
@@ -1,44 +1,40 @@
-GNU Screen
-==========
+# GNU Screen
Defines [GNU Screen][1] aliases and provides for auto launching it at start-up.
-Settings
---------
+## Settings
### Auto-Start
Starts a GNU Screen session automatically when Zsh is launched.
-To enable this feature when launching Zsh in a local terminal, add the
-following line to *zpreztorc*:
+To enable this feature when launching Zsh in a local terminal, add the following
+line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:screen:auto-start' local 'yes'
```
-To enable this feature when launching Zsh in a SSH connection, add the
-following line to *zpreztorc*:
+To enable this feature when launching Zsh in a SSH connection, add the following
+line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:screen:auto-start' remote 'yes'
```
-Aliases
--------
+## Aliases
- - `scr` is short for `screen`.
- - `scrl` lists sessions/socket directory.
- - `scrn` starts a new session.
- - `scrr` attaches to a session if one exists or start a new one.
+- `scr` is short for `screen`.
+- `scrl` lists sessions/socket directory.
+- `scrn` starts a new session.
+- `scrr` attaches to a session if one exists or start a new one.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
- - [Georges Discry](https://github.com/gdiscry)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Georges Discry](https://github.com/gdiscry)
-[1]: http://www.gnu.org/software/screen/
+[1]: https://www.gnu.org/software/screen/
[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/spectrum/README.md b/modules/spectrum/README.md
index 66abcb2..de393a7 100644
--- a/modules/spectrum/README.md
+++ b/modules/spectrum/README.md
@@ -1,16 +1,14 @@
-Spectrum
-========
+# Spectrum
Provides for easier use of 256 colors and effects.
To learn more about text formatting, read [A Guide to 256 Color Codes][1].
-Variables
----------
+## Variables
- - `BG` provides background colors.
- - `FG` provides foreground colors.
- - `FX` provides effects.
+- `BG` provides background colors.
+- `FG` provides foreground colors.
+- `FX` provides effects.
### Background and Foreground
@@ -72,20 +70,19 @@ Though there are many effects, most terminals support at least bold formatting.
| font-fifth | no-font-fifth |
| font-sixth | no-font-sixth |
| font-seventh | no-font-seventh |
-| font-eigth | no-font-eigth |
+| font-eighth | no-font-eighth |
| font-ninth | no-font-ninth |
### Plain Text
Use `$BG[none]`, `$FG[none]`, or `$FX[none]` to turn off formatting.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [P.C. Shyamshankar](https://github.com/sykora)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [P.C. Shyamshankar](https://github.com/sykora)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://lucentbeing.com/writing/archives/a-guide-to-256-color-codes/
[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/spectrum/init.zsh b/modules/spectrum/init.zsh
index 61e2262..78beaed 100644
--- a/modules/spectrum/init.zsh
+++ b/modules/spectrum/init.zsh
@@ -49,7 +49,7 @@ FX=(
font-fifth "\e[15m" no-font-fifth "\e[10m"
font-sixth "\e[16m" no-font-sixth "\e[10m"
font-seventh "\e[17m" no-font-seventh "\e[10m"
- font-eigth "\e[18m" no-font-eigth "\e[10m"
+ font-eighth "\e[18m" no-font-eighth "\e[10m"
font-ninth "\e[19m" no-font-ninth "\e[10m"
)
diff --git a/modules/ssh/README.md b/modules/ssh/README.md
index a1727b9..5b81409 100644
--- a/modules/ssh/README.md
+++ b/modules/ssh/README.md
@@ -1,26 +1,24 @@
-SSH
-===
+# SSH
-Provides for an easier use of [SSH][1] by setting up [ssh-agent][2].
+Provides for an easier use of [SSH][1] by setting up [_ssh-agent_][2].
-Settings
---------
+## Settings
### Identities
-To load multiple identities, add the following line to *zpreztorc*:
+To load multiple identities, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_dsa' 'id_github'
```
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][3].*
+_The authors of this module should be contacted via the [issue tracker][3]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+[Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: http://www.openssh.com
-[2]: http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&sektion=1
+[1]: https://www.openssh.com
+[2]: https://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&sektion=1
[3]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/syntax-highlighting/README.md b/modules/syntax-highlighting/README.md
index 7a5a30c..2f6ea52 100644
--- a/modules/syntax-highlighting/README.md
+++ b/modules/syntax-highlighting/README.md
@@ -1,31 +1,28 @@
-Syntax Highlighting
-===================
+# Syntax Highlighting
Integrates [zsh-syntax-highlighting][1] into Prezto.
-This module should be loaded before the *prompt* module.
+This module must be loaded _before_ the _`prompt`_ module.
Additionally, if this module is used in conjunction with the
-*history-substring-search* module, this module must be loaded **before** the
-*history-substring-search* module.
+[_`history-substring-search`_][2] module, this module must be loaded _before_
+the _`history-substring-search`_ module.
-To elaborate: The relative order of loading the modules would be
-'syntax-highlighting', 'history-substring-search' and 'prompt'.
+To elaborate, the relative order of loading the modules would be
+_`syntax-highlighting`_, _`history-substring-search`_ and _`prompt`_.
-Contributors
-------------
+## Contributors
New features and bug fixes should be submitted to the
[zsh-syntax-highlighting][1] project according to its rules and regulations.
This module will be synchronized against it.
-Settings
---------
+## Settings
### Highlighting
To enable highlighting for this module only, add the following line to
-*zpreztorc*:
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:syntax-highlighting' color 'yes'
@@ -33,10 +30,11 @@ zstyle ':prezto:module:syntax-highlighting' color 'yes'
### Highlighters
-Syntax highlighting is accomplished by pluggable [highlighters][2]. This module
-only enables the *main* highlighter by default.
+Syntax highlighting is accomplished by pluggable [highlighters][3]. This module
+only enables the _main_ highlighter by default.
-To enable all highlighters, add the following to *zpreztorc*:
+To enable all highlighters, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh
zstyle ':prezto:module:syntax-highlighting' highlighters \
@@ -53,7 +51,7 @@ zstyle ':prezto:module:syntax-highlighting' highlighters \
Each syntax highlighter defines styles used to highlight tokens.
To highlight, for example, builtins, commands, and functions in blue instead of
-green, add the following to *zpreztorc*:
+green, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:syntax-highlighting' styles \
@@ -62,13 +60,13 @@ zstyle ':prezto:module:syntax-highlighting' styles \
'function' 'bg=blue'
```
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][3].*
+_The authors of this module should be contacted via the [issue tracker][4]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/zsh-users/zsh-syntax-highlighting
-[2]: https://github.com/zsh-users/zsh-syntax-highlighting/tree/master/highlighters
-[3]: https://github.com/sorin-ionescu/prezto/issues
+[2]: ../history-substring-search#readme
+[3]: https://github.com/zsh-users/zsh-syntax-highlighting/tree/master/highlighters
+[4]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/terminal/README.md b/modules/terminal/README.md
index 41a0885..be4e3a1 100644
--- a/modules/terminal/README.md
+++ b/modules/terminal/README.md
@@ -1,23 +1,21 @@
-Terminal
-========
+# Terminal
Sets terminal window and tab titles.
-Settings
---------
+## Settings
### Auto-Title
To auto set the terminal window and tab titles with the current command or
-directory, add the following to *zpreztorc*:
+directory, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:terminal' auto-title 'yes'
```
-Auto titling is disabled inside terminal multiplexers (except inside dvtm)
-since it interferes with window names defined in configuration files and
-profile managers. This can be overridden by setting it to `always`.
+Auto titling is disabled inside terminal multiplexers (except inside dvtm) since
+it interferes with window names defined in configuration files and profile
+managers. This can be overridden by setting it to `always`.
```sh
zstyle ':prezto:module:terminal' auto-title 'always'
@@ -25,7 +23,8 @@ zstyle ':prezto:module:terminal' auto-title 'always'
### Title formats
-To format terminal window and tab titles, add the following to *zpreztorc*:
+To format terminal window and tab titles, add the following to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh
zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s'
@@ -38,20 +37,18 @@ executing program name.
For a list of sequences, see [Expansion of Prompt Sequences][1].
-Functions
----------
+## Functions
- `set-tab-title` sets the terminal tab title.
- `set-window-title` sets the terminal window title.
- `set-multiplexer-title` sets the terminal multiplexer title.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
- - [Olaf Conradi](https://github.com/oohlaf)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Olaf Conradi](https://github.com/oohlaf)
-[1]: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences
+[1]: https://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences
[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/tmux/README.md b/modules/tmux/README.md
index 0738d7c..e7ae929 100644
--- a/modules/tmux/README.md
+++ b/modules/tmux/README.md
@@ -1,24 +1,22 @@
-Tmux
-====
+# Tmux
-Defines [tmux][1] aliases and provides for auto launching it at start-up.
+Defines [_tmux_][1] aliases and provides for auto launching it at start-up.
-Settings
---------
+## Settings
### Auto-Start
Starts a tmux session automatically when Zsh is launched.
-To enable this feature when launching Zsh in a local terminal, add the
-following line to *zpreztorc*:
+To enable this feature when launching Zsh in a local terminal, add the following
+line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:tmux:auto-start' local 'yes'
```
-To enable this feature when launching Zsh in a SSH connection, add the
-following line to *zpreztorc*:
+To enable this feature when launching Zsh in a SSH connection, add the following
+line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:tmux:auto-start' remote 'yes'
@@ -36,7 +34,7 @@ zstyle ':prezto:module:tmux:session' name ''
With `auto-start` enabled, you may want to control how multiple sessions are
managed. The `destroy-unattached` option of tmux controls if the unattached
sessions must be kept alive, making sessions available for later use, configured
-in *tmux.conf*:
+in _tmux.conf_:
```conf
set-option -g destroy-unattached [on | off]
@@ -45,7 +43,7 @@ set-option -g destroy-unattached [on | off]
#### iTerm2 Integration
[iTerm2][6] offers significant integration with tmux. This can be enabled by
-adding the following line to *zpreztorc*:
+adding the following line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:tmux:iterm' integrate 'yes'
@@ -53,19 +51,17 @@ zstyle ':prezto:module:tmux:iterm' integrate 'yes'
Read [iTerm2 and tmux Integration][7] for more information.
-Aliases
--------
+## Aliases
- - `tmuxa` attaches or switches to a tmux session.
- - `tmuxl` lists sessions managed by the tmux server.
+- `tmuxa` attaches or switches to a tmux session.
+- `tmuxl` lists sessions managed by the tmux server.
-Caveats
--------
+## Caveats
On macOS, launching tmux can cause the error **launch_msg(...): Socket is not
connected** to be displayed, which can be fixed by installing
[reattach-to-user-namespace][3], available in [Homebrew][4], and adding the
-following to *tmux.conf*:
+following to _tmux.conf_:
```conf
set-option -g default-command "reattach-to-user-namespace -l $SHELL -l"
@@ -74,20 +70,19 @@ set-option -g default-command "reattach-to-user-namespace -l $SHELL -l"
Furthermore, tmux is known to cause **kernel panics** on macOS. A discussion
about this and Prezto has already been [opened][2].
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][5].*
+_The authors of this module should be contacted via the [issue tracker][5]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
- - [Colin Hebert](https://github.com/ColinHebert)
- - [Georges Discry](https://github.com/gdiscry)
- - [Xavier Cambar](https://github.com/xcambar)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Colin Hebert](https://github.com/ColinHebert)
+- [Georges Discry](https://github.com/gdiscry)
+- [Xavier Cambar](https://github.com/xcambar)
-[1]: http://tmux.sourceforge.net
+[1]: https://tmux.github.io/
[2]: https://github.com/sorin-ionescu/prezto/issues/62
[3]: https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard
[4]: https://github.com/mxcl/homebrew
[5]: https://github.com/sorin-ionescu/prezto/issues
-[6]: http://iterm2.com
+[6]: https://iterm2.com
[7]: https://gitlab.com/gnachman/iterm2/wikis/TmuxIntegration
diff --git a/modules/utility/README.md b/modules/utility/README.md
index 1179478..142b1ea 100644
--- a/modules/utility/README.md
+++ b/modules/utility/README.md
@@ -1,68 +1,100 @@
-Utility
-=======
+# Utility
Defines general aliases and functions.
-Settings
---------
+This module must be loaded _before_ the [_`completion`_][1] module so that the
+provided completion definitions are loaded automatically by _`completion`_
+module.
+
+**Note:** Some of the utilities configured in this module might be provided via
+GNU utilities with incompatible arguments on non-GNU systems. In such cases,
+using [_`gnu-utility`_][2] module is recommended and it must be loaded
+_before_ this module.
+
+To elaborate, the relative order of loading the modules would be
+_`gnu-utility`_, _`utility`_ and _`completion`_.
+
+## Settings
### Highlighting
-If you have enabled color globally in *zpreztorc*, you may disable it for
-certain commands.
+If you have enabled color globally in _`${ZDOTDIR:-$HOME}/.zpreztorc`_, you may
+disable it selectively for certain commands.
-To disable `ls` color, add the following line to *zpreztorc*; when coloring is
-disabled, type indicators (\*, /, =>, @, =, |, %) will be appended to entries.
+To disable `ls` color, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_.
+When coloring is disabled, type indicators (`\*`, `/`, `=>`, `@`, `=`, `|`, `%`)
+will be appended to entries.
```sh
zstyle ':prezto:module:utility:ls' color 'no'
```
-To disable GNU coreutils `ls` to list directories grouped first, add the following line to *zpreztorc*:
+To disable GNU coreutils `ls` to list directories grouped first, add the
+following line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:utility:ls' dirs-first 'no'
```
-To disable `diff` highlighting, add the following line to *zpreztorc*:
+To disable `grep` highlighting, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
+
+```sh
+zstyle ':prezto:module:utility:grep' color 'no'
+```
+
+To disable `diff` highlighting, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:utility:diff' color 'no'
```
-To disable `wdiff` highlighting, add the following line to *zpreztorc*:
+To disable `wdiff` highlighting, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:utility:wdiff' color 'no'
```
-To disable `make` highlighting, add the following line to *zpreztorc*:
+To disable `make` highlighting, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:utility:make' color 'no'
```
-Aliases
--------
+### Download Helper
+
+To configure the download helper to be used with alias `get`, add the following
+to _`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `''` with `'curl'`,
+`'wget'` or `'aria2c'`.
+
+```sh
+zstyle -s ':prezto:module:utility:download' helper ''
+```
+
+## Aliases
### Disabled Spelling Correction
- - `ack`
- - `cd`
- - `cp`
- - `ebuild`
- - `gcc`
- - `gist`
- - `grep`
- - `heroku`
- - `ln`
- - `man`
- - `mkdir`
- - `mv`
- - `mysql`
- - `rm`
+- `ack`
+- `cd`
+- `cp`
+- `ebuild`
+- `gcc`
+- `gist`
+- `grep`
+- `heroku`
+- `ln`
+- `man`
+- `mkdir`
+- `mv`
+- `mysql`
+- `rm`
-To disable all spelling corrections, add the following line to *zpreztorc*:
+To disable all spelling corrections, add the following line to
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:utility' correct 'no'
@@ -70,122 +102,124 @@ zstyle ':prezto:module:utility' correct 'no'
### Disabled File Globbing
- - `bower`
- - `fc`
- - `find`
- - `ftp`
- - `history`
- - `locate`
- - `rake`
- - `rsync` (selectively enabled for local files)
- - `scp` (selectively enabled for local files)
- - `sftp`
+- `bower`
+- `fc`
+- `find`
+- `ftp`
+- `history`
+- `locate`
+- `rake`
+- `rsync` (selectively enabled for local files)
+- `scp` (selectively enabled for local files)
+- `sftp`
### General
- - `_` executes a command as another user (`sudo`).
- - `b` opens the default web browser.
- - `diffu` shorthand for `diff --unified`
- - `e` opens the default editor.
- - `mkdir` creates directories, including intermediary directories.
- - `p` opens the default pager.
- - `po` removes a directory from the stack and changes to it (`popd`).
- - `pu` changes the directory and pushes the old directory onto the stack
- (`pushd`).
- - `sa` search aliases for a word.
- - `type` displays all the attribute values of a shell parameter.
+- `_` executes a command as another user (`sudo`).
+- `b` opens the default web browser.
+- `diffu` shorthand for `diff --unified`.
+- `e` opens the default editor.
+- `mkdir` creates directories, including intermediary directories.
+- `p` opens the default pager.
+- `po` removes a directory from the stack and changes to it (`popd`).
+- `pu` changes the directory and pushes the old directory onto the stack
+ (`pushd`).
+- `sa` search aliases for a word.
+- `type` displays all the attribute values of a shell parameter.
### Files and Directories
- - `ls` lists with directories grouped first (GNU only).
- - `l` lists in one column, hidden files.
- - `ll` lists human readable sizes.
- - `lr` lists human readable sizes, recursively.
- - `la` lists human readable sizes, hidden files.
- - `lm` lists human readable sizes, hidden files through pager.
- - `lx` lists sorted by extension (GNU only).
- - `lk` lists sorted by size, largest last.
- - `lt` lists sorted by date, most recent last.
- - `lc` lists sorted by date, most recent last, shows change time.
- - `lu` lists sorted by date, most recent last, shows access time.
- - `sl` lists directory contents (`ls`).
+- `ls` lists with directories grouped first (GNU only).
+- `l` lists in one column, hidden files.
+- `ll` lists human readable sizes.
+- `lr` lists human readable sizes, recursively.
+- `la` lists human readable sizes, hidden files.
+- `lm` lists human readable sizes, hidden files through pager.
+- `lx` lists sorted by extension (GNU only).
+- `lk` lists sorted by size, largest last.
+- `lt` lists sorted by date, most recent last.
+- `lc` lists sorted by date, most recent last, shows change time.
+- `lu` lists sorted by date, most recent last, shows access time.
+- `sl` lists directory contents (correction for `ls`).
### macOS Everywhere
- - `o` opens files and directories (`open` or `xdg-open`).
- - `get` downloads files (`curl` or `wget`).
- - `pbcopy` copies to the pasteboard (`pbcopy`, `xclip` or `xsel`).
- - `pbpaste` pastes from the pasteboard (`pbcopy`, `xclip` or `xsel`).
- - `pbc` copies to the pasteboard (`pbcopy`).
- - `pbp` pastes from the pasteboard (`pbpaste`).
+- `o` opens files and directories (`open` or `xdg-open`).
+- `get` downloads files (`curl`, `wget` or `aria2c`).
+- `pbcopy` copies to the pasteboard (`pbcopy`, `xclip` or `xsel`).
+- `pbpaste` pastes from the pasteboard (`pbcopy`, `xclip` or `xsel`).
+- `pbc` copies to the pasteboard (`pbcopy`).
+- `pbp` pastes from the pasteboard (`pbpaste`).
### Resource Usage
- - `df` displays free disk space using human readable units (aliases to `pydf`,
- if installed).
- - `du` displays disk usage using human readable units.
- - `top` displays information about processes.
- - `topc` displays information about processes sorted by CPU usage.
- - `topm` displays information about processes sorted by RAM usage.
+- `df` displays free disk space using human readable units (aliases to `pydf`,
+ if installed).
+- `du` displays disk usage using human readable units.
+- `top` displays information about processes.
+- `topc` displays information about processes sorted by CPU usage.
+- `topm` displays information about processes sorted by RAM usage.
### Safe ops
By default, `cp`,`ln`, `mv` and `rm` are aliased to their interactive variants.
If this is not desired, it can be disabled by adding the following line to
-*zpreztorc*:
+_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
- zstyle ':prezto:module:utility' safe-ops 'no'.
+```sh
+zstyle ':prezto:module:utility' safe-ops 'no'.
+```
In addition, the following aliases have been added:
- - `cpi` copies files and directories interactively.
- - `lni` links files and directories interactively.
- - `mvi` moves files and directories interactively.
- - `rmi` removes files and directories interactively.
+- `cpi` copies files and directories interactively.
+- `lni` links files and directories interactively.
+- `mvi` moves files and directories interactively.
+- `rmi` removes files and directories interactively.
### Miscellaneous
- - `http-serve` serves a directory via HTTP.
+- `http-serve` serves a directory via HTTP.
-Functions
----------
+## Functions
### General
- - `slit` prints columns *1, 2, 3 ... n*.
+- `slit` prints columns _1, 2, 3 ... n_.
### Files and Directories
- - `cdls` changes to a directory and lists its contents.
- - `dut` displays the grand total disk usage using human readable units.
- - `find-exec` finds files and executes a command on them.
- - `mkdcd` makes a directory and changes to it.
- - `popdls` pops an entry off the directory stack and lists its contents.
- - `pushdls` pushes an entry onto the directory stack and lists its contents.
- - `noremoteglob` enable local path globbing but disable remote path globbing.
+- `cdls` changes to a directory and lists its contents.
+- `dut` displays the grand total disk usage using human readable units.
+- `find-exec` finds files and executes a command on them.
+- `mkdcd` makes a directory and changes to it.
+- `popdls` pops an entry off the directory stack and lists its contents.
+- `pushdls` pushes an entry onto the directory stack and lists its contents.
+- `noremoteglob` enable local path globbing but disable remote path globbing.
### Developer
- - `diff` highlights diff output (requires `colordiff`).
- - `make` highlights make output (requires `colormake`).
- - `wdiff` highlights wdiff output (requires `wdiff `or `Git`).
+- `diff` highlights diff output (requires `colordiff`).
+- `make` highlights make output (requires `colormake`).
+- `wdiff` highlights wdiff output (requires `wdiff` or `git`).
### Resource usage
- - `psu` displays user owned processes status.
+- `psu` displays user owned processes status.
### Search and Replace
- - `prep` provides a grep-like pattern search.
- - `psub` provides a sed-like pattern substitution.
+- `prep` provides a grep-like pattern search.
+- `psub` provides a sed-like pattern substitution.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][1].*
+_The authors of this module should be contacted via the [issue tracker][3]._
- - [Robby Russell](https://github.com/robbyrussell)
- - [Suraj N. Kurapati](https://github.com/sunaku)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Robby Russell](https://github.com/robbyrussell)
+- [Suraj N. Kurapati](https://github.com/sunaku)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: https://github.com/sorin-ionescu/prezto/issues
+[1]: ../completion#readme
+[2]: ../gnu-utility#readme
+[3]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/utility/functions/diff b/modules/utility/functions/diff
index d614b28..4e08494 100644
--- a/modules/utility/functions/diff
+++ b/modules/utility/functions/diff
@@ -5,13 +5,13 @@
# Sorin Ionescu
#
-function diff {
- if zstyle -t ':prezto:module:utility:diff' color \
- && (( $+commands[colordiff] )); then
- command colordiff "$@"
- else
- command diff "$@"
- fi
-}
+# function diff {
-diff "$@"
+if zstyle -t ':prezto:module:utility:diff' color \
+ && (( $+commands[colordiff] )); then
+ command colordiff "$@"
+else
+ command diff "$@"
+fi
+
+# }
diff --git a/modules/utility/functions/dut b/modules/utility/functions/dut
index 6592280..1474197 100644
--- a/modules/utility/functions/dut
+++ b/modules/utility/functions/dut
@@ -6,22 +6,22 @@
# Sorin Ionescu
#
-function dut {
- (( $# == 0 )) && set -- *
+# function dut {
- if grep -q -i 'GNU' < <(du --version 2>&1); then
- du -khsc "$@" | sort -h -r
- else
- local line size name
- local -a record
+(( $# == 0 )) && set -- *
- while IFS=$'\n' read line; do
- record=(${(z)line})
- size="$(($record[1] / 1024.0))"
- name="$record[2,-1]"
- printf "%9.1LfM %s\n" "$size" "$name"
- done < <(du -kcs "$@") | sort -n -r
- fi
-}
+if [[ ${(@M)${(f)"$(du --version 2>&1)"}:#*GNU *} ]]; then
+ du -khsc "$@" | sort -h -r
+else
+ local line size name
+ local -a record
-dut "$@"
+ while IFS=$'\n' read line; do
+ record=(${(z)line})
+ size="$(($record[1] / 1024.0))"
+ name="$record[2,-1]"
+ printf "%9.1LfM %s\n" "$size" "$name"
+ done < <(du -kcs "$@") | sort -n -r
+fi
+
+# }
diff --git a/modules/utility/functions/make b/modules/utility/functions/make
index 5ebab05..7cda8a6 100644
--- a/modules/utility/functions/make
+++ b/modules/utility/functions/make
@@ -5,16 +5,13 @@
# Sorin Ionescu
#
-function make {
- if zstyle -t ':prezto:module:utility:make' color; then
- if (( $+commands[colormake] )); then
- colormake "$@"
- else
- command make "$@"
- fi
- else
- command make "$@"
- fi
-}
+# function make {
-make "$@"
+if zstyle -t ':prezto:module:utility:make' color \
+ && (( $+commands[colormake] )); then
+ command colormake "$@"
+else
+ command make "$@"
+fi
+
+# }
diff --git a/modules/utility/functions/wdiff b/modules/utility/functions/wdiff
index ebfad0b..f1de659 100644
--- a/modules/utility/functions/wdiff
+++ b/modules/utility/functions/wdiff
@@ -3,27 +3,30 @@
#
# Authors:
# Sorin Ionescu
+# Indrajit Raychaudhuri
#
-function wdiff {
- if zstyle -t ':prezto:module:utility:wdiff' color; then
- if (( $+commands[wdiff] )); then
- command wdiff \
- --avoid-wraps \
- --start-delete="$(print -n $FG[red])" \
- --end-delete="$(print -n $FG[none])" \
- --start-insert="$(print -n $FG[green])" \
- --end-insert="$(print -n $FG[none])" \
- "$@" \
+# function wdiff {
+
+if zstyle -t ':prezto:module:utility:wdiff' color; then
+ if (( $+commands[wdiff] )); then
+ command wdiff \
+ --avoid-wraps \
+ --start-delete="$(print -n $FG[red])" \
+ --end-delete="$(print -n $FG[none])" \
+ --start-insert="$(print -n $FG[green])" \
+ --end-insert="$(print -n $FG[none])" \
+ "$@" \
| sed 's/^\(@@\( [+-][[:digit:]]*,[[:digit:]]*\)\{2\} @@\)$/;5;6m\10m/g'
- elif (( $+commands[git] )); then
- command git --no-pager diff --color=auto --no-ext-diff --no-index --color-words "$@"
- else
- command wdiff "$@"
- fi
+ elif (( $+commands[git] )); then
+ command git --no-pager diff --no-ext-diff --no-index --color=auto --color-words "$@"
else
command wdiff "$@"
fi
-}
+elif (( ! $+commands[wdiff] && $+commands[git] )); then
+ command git --no-pager diff --no-ext-diff --no-index --color=never "$@"
+else
+ command wdiff "$@"
+fi
-wdiff "$@"
+# }
diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh
index 7bb7532..c6dc3c0 100644
--- a/modules/utility/init.zsh
+++ b/modules/utility/init.zsh
@@ -15,6 +15,9 @@ if zstyle -T ':prezto:module:utility' correct; then
setopt CORRECT
fi
+# Load 'run-help' function.
+autoload -Uz run-help-{ip,openssl,sudo}
+
#
# Aliases
#
@@ -61,19 +64,19 @@ alias sa='alias | grep -i'
alias type='type -a'
# Safe ops. Ask the user before doing anything destructive.
-alias rmi="${aliases[rm]:-rm} -i"
-alias mvi="${aliases[mv]:-mv} -i"
alias cpi="${aliases[cp]:-cp} -i"
alias lni="${aliases[ln]:-ln} -i"
+alias mvi="${aliases[mv]:-mv} -i"
+alias rmi="${aliases[rm]:-rm} -i"
if zstyle -T ':prezto:module:utility' safe-ops; then
- alias rm="${aliases[rm]:-rm} -i"
- alias mv="${aliases[mv]:-mv} -i"
alias cp="${aliases[cp]:-cp} -i"
alias ln="${aliases[ln]:-ln} -i"
+ alias mv="${aliases[mv]:-mv} -i"
+ alias rm="${aliases[rm]:-rm} -i"
fi
# ls
-if is-callable 'dircolors'; then
+if [[ ${(@M)${(f)"$(ls --version 2>&1)"}:#*GNU *} ]]; then
# GNU Core Utilities
if zstyle -T ':prezto:module:utility:ls' dirs-first; then
@@ -81,12 +84,13 @@ if is-callable 'dircolors'; then
fi
if zstyle -t ':prezto:module:utility:ls' color; then
- # Call dircolors to define colors if they're missing
- if [[ -z "$LS_COLORS" ]]; then
- if [[ -s "$HOME/.dir_colors" ]]; then
- eval "$(dircolors --sh "$HOME/.dir_colors")"
+ # Define colors for GNU ls if they're not already defined
+ if (( ! $+LS_COLORS )); then
+ # Try dircolors when available
+ if is-callable 'dircolors'; then
+ eval "$(dircolors --sh $HOME/.dir_colors(.N))"
else
- eval "$(dircolors --sh)"
+ export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'
fi
fi
@@ -96,17 +100,13 @@ if is-callable 'dircolors'; then
fi
else
# BSD Core Utilities
+
if zstyle -t ':prezto:module:utility:ls' color; then
# Define colors for BSD ls if they're not already defined
- if [[ -z "$LSCOLORS" ]]; then
+ if (( ! $+LSCOLORS )); then
export LSCOLORS='exfxcxdxbxGxDxabagacad'
fi
- # Define colors for the completion system if they're not already defined
- if [[ -z "$LS_COLORS" ]]; then
- export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'
- fi
-
alias ls="${aliases[ls]:-ls} -G"
else
alias ls="${aliases[ls]:-ls} -F"
@@ -118,17 +118,20 @@ alias ll='ls -lh' # Lists human readable sizes.
alias lr='ll -R' # Lists human readable sizes, recursively.
alias la='ll -A' # Lists human readable sizes, hidden files.
alias lm='la | "$PAGER"' # Lists human readable sizes, hidden files through pager.
-alias lx='ll -XB' # Lists sorted by extension (GNU only).
alias lk='ll -Sr' # Lists sorted by size, largest last.
alias lt='ll -tr' # Lists sorted by date, most recent last.
alias lc='lt -c' # Lists sorted by date, most recent last, shows change time.
alias lu='lt -u' # Lists sorted by date, most recent last, shows access time.
-alias sl='ls' # I often screw this up.
+alias sl='ls' # Correction for common spelling error.
+
+if [[ ${(@M)${(f)"$(ls --version 2>&1)"}:#*GNU *} ]]; then
+ alias lx='ll -XB' # Lists sorted by extension (GNU only).
+fi
# Grep
if zstyle -t ':prezto:module:utility:grep' color; then
- export GREP_COLOR='37;45' # BSD.
- export GREP_COLORS="mt=$GREP_COLOR" # GNU.
+ export GREP_COLOR=${GREP_COLOR:-'37;45'} # BSD.
+ export GREP_COLORS=${GREP_COLORS:-"mt=$GREP_COLOR"} # GNU.
alias grep="${aliases[grep]:-grep} --color=auto"
fi
@@ -160,12 +163,22 @@ alias pbc='pbcopy'
alias pbp='pbpaste'
# File Download
-if (( $+commands[curl] )); then
- alias get='curl --continue-at - --location --progress-bar --remote-name --remote-time'
-elif (( $+commands[wget] )); then
- alias get='wget --continue --progress=bar --timestamping'
+zstyle -s ':prezto:module:utility:download' helper '_download_helper' || _download_helper='curl'
+
+typeset -A _download_helpers=(
+ aria2c 'aria2c --continue --remote-time --max-tries=0'
+ curl 'curl --continue-at - --location --progress-bar --remote-name --remote-time'
+ wget 'wget --continue --progress=bar --timestamping'
+)
+
+if (( $+commands[$_download_helper] && $+_download_helpers[$_download_helper] )); then
+ alias get="$_download_helpers[$_download_helper]"
+elif (( $+commands[curl] )); then
+ alias get="$_download_helpers[curl]"
fi
+unset _download_helper{,s}
+
# Resource Usage
alias df='df -kh'
alias du='du -kh'
@@ -181,10 +194,15 @@ fi
# Miscellaneous
# Serves a directory via HTTP.
-if (( $+commands[python3] )); then
- alias http-serve='python3 -m http.server'
-else
- alias http-serve='python -m SimpleHTTPServer'
+if (( $#commands[(i)python(|[23])] )); then
+ autoload -Uz is-at-least
+ if is-at-least 3 ${"$(python --version 2>&1)"[(w)2]}; then
+ alias http-serve='python -m http.server'
+ elif (( $+commands[python3] )); then
+ alias http-serve='python3 -m http.server'
+ else
+ alias http-serve='$commands[(i)python(|2)] -m SimpleHTTPServer'
+ fi
fi
#
diff --git a/modules/wakeonlan/README.md b/modules/wakeonlan/README.md
index dacfa52..ca4095a 100644
--- a/modules/wakeonlan/README.md
+++ b/modules/wakeonlan/README.md
@@ -1,18 +1,16 @@
-Wake-on-LAN
-===========
+# Wake-on-LAN
This module provides a wrapper around the [wakeonlan][1] tool.
-Usage
------
+## Usage
-To use this wrapper, create the *~/.wakeonlan* directory, and place in it one
+To use this wrapper, create the _`~/.wakeonlan`_ directory, and place in it one
file for each device you would like to be able to wake. Give the file a name
that describes the device, such as its hostname.
Each file should contain a line with the MAC address of the target device and
the network broadcast address. For instance, there might be a file
-*~/.wakeonlan/leto* with the following contents:
+_`~/.wakeonlan/leto`_ with the following contents:
```conf
00:11:22:33:44:55:66 192.168.0.255
@@ -20,21 +18,20 @@ the network broadcast address. For instance, there might be a file
To wake that device, use the following command:
-```sh
-$ wake leto
+```console
+wake leto
```
For more information on the configuration file format, read the
[wakeonlan man page][2].
-Authors
--------
+## Authors
-*The authors of this module should be contacted via [issue tracker][3].*
+_The authors of this module should be contacted via [issue tracker][3]._
- - [Paul Dann](https://github.com/giddie)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Paul Dann](https://github.com/giddie)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://gsd.di.uminho.pt/jpo/software/wakeonlan/
-[2]: http://man.cx/wakeonlan
+[2]: https://man.cx/wakeonlan
[3]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/modules/yum/README.md b/modules/yum/README.md
index fa944da..850b1c1 100644
--- a/modules/yum/README.md
+++ b/modules/yum/README.md
@@ -1,28 +1,25 @@
-Yum
-===
+# Yum
-Defines [yum][1] aliases.
+Defines [_yum_][1] aliases.
-Aliases
--------
+## Aliases
- - `yumc` removes package(s) and leaves.
- - `yumi` installs package(s).
- - `yumh` displays history.
- - `yuml` lists packages.
- - `yumL` lists installed packages.
- - `yumq` displays package information.
- - `yumr` removes package(s).
- - `yums` searches for a package.
- - `yumu` updates packages.
- - `yumU` upgrades packages.
+- `yumc` removes package(s) and leaves.
+- `yumi` installs package(s).
+- `yumh` displays history.
+- `yuml` lists packages.
+- `yumL` lists installed packages.
+- `yumq` displays package information.
+- `yumr` removes package(s).
+- `yums` searches for a package.
+- `yumu` updates packages.
+- `yumU` upgrades packages.
-Authors
--------
+## Authors
-*The authors of this module should be contacted via the [issue tracker][2].*
+_The authors of this module should be contacted via the [issue tracker][2]._
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://yum.baseurl.org
[2]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/runcoms/README.md b/runcoms/README.md
index 29d9f8a..277e833 100644
--- a/runcoms/README.md
+++ b/runcoms/README.md
@@ -1,34 +1,32 @@
-Configuration Files
-===================
+# Configuration Files
Zsh has several system-wide and user-local configuration files.
Prezto has one user-local configuration file.
System-wide configuration files are installation-dependent but are installed
-in */etc* by default.
+in *`/etc`* by default.
User-local configuration files have the same name as their global counterparts
but are prefixed with a dot (hidden). Zsh looks for these files in the path
stored in the `$ZDOTDIR` environment variable. However, if said variable is
not defined, Zsh will use the user's home directory.
-File Descriptions
------------------
+## File Descriptions
-The configuration files are read in the following order:
+The [configuration files][1] are read in the following order:
- 01. /etc/zshenv
- 02. ~/.zshenv
- 03. /etc/zprofile
- 04. ~/.zprofile
- 05. /etc/zshrc
- 06. ~/.zshrc
- 07. ~/.zpreztorc
- 08. /etc/zlogin
- 09. ~/.zlogin
- 10. ~/.zlogout
- 11. /etc/zlogout
+01. *`/etc/zshenv`*
+02. *`${ZDOTDIR:-$HOME}/.zshenv`*
+03. *`/etc/zprofile`*
+04. *`${ZDOTDIR:-$HOME}/.zprofile`*
+05. *`/etc/zshrc`*
+06. *`${ZDOTDIR:-$HOME}/.zshrc`*
+07. *`${ZDOTDIR:-$HOME}/.zpreztorc`*
+08. *`/etc/zlogin`*
+09. *`${ZDOTDIR:-$HOME}/.zlogin`*
+10. *`${ZDOTDIR:-$HOME}/.zlogout`*
+11. *`/etc/zlogout`*
### zshenv
@@ -37,16 +35,16 @@ small as possible and should only define environment variables.
### zprofile
-This file is similar to zlogin, but it is sourced before zshrc. It was added
-for [KornShell][1] fans. See the description of zlogin below for what it may
+This file is similar to *zlogin*, but it is sourced before *zshrc*. It was added
+for [KornShell][2] fans. See the description of *zlogin* below for what it may
contain.
-zprofile and zlogin are not meant to be used concurrently but can be done so.
+*zprofile* and *zlogin* are not meant to be used together but can be done so.
### zshrc
-This file is sourced by interactive shells. It should define aliases,
-functions, shell options, and key bindings.
+This file is sourced by interactive shells. It should define aliases, functions,
+shell options, and key bindings.
### zpreztorc
@@ -54,9 +52,9 @@ This file configures Prezto.
### zlogin
-This file is sourced by login shells after zshrc, and thus, it should contain
+This file is sourced by login shells after *zshrc*. Thus, it should contain
commands that need to execute at login. It is usually used for messages such as
-[fortune][2], [msgs][3], or for the creation of files.
+[*fortune*][3], [*msgs*][4], or for the creation of files.
This is not the file to define aliases, functions, shell options, and key
bindings. It should not change the shell environment.
@@ -64,16 +62,16 @@ bindings. It should not change the shell environment.
### zlogout
This file is sourced by login shells during logout. It should be used for
-displaying messages and the deletion of files.
+displaying messages and for deletion of files.
-Authors
--------
+## Authors
-*The authors of these files should be contacted via the [issue tracker][4].*
+*The authors of these files should be contacted via the [issue tracker][5].*
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
+- [Sorin Ionescu](https://github.com/sorin-ionescu)
-[1]: http://www.kornshell.com
-[2]: http://en.wikipedia.org/wiki/Fortune_(Unix)
-[3]: http://www.manpagez.com/man/1/msgs
-[4]: https://github.com/sorin-ionescu/prezto/issues
+[1]: http://zsh.sourceforge.net/Intro/intro_3.html#SEC3
+[2]: https://www.kornshell.com
+[3]: https://en.wikipedia.org/wiki/Fortune_(Unix)
+[4]: https://www.manpagez.com/man/1/msgs
+[5]: https://github.com/sorin-ionescu/prezto/issues
diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc
index 9a3c19a..cc6ebb4 100644
--- a/runcoms/zpreztorc
+++ b/runcoms/zpreztorc
@@ -38,6 +38,7 @@ zstyle ':prezto:load' pmodule \
'spectrum' \
'utility' \
'completion' \
+ 'history-substring-search' \
'prompt'
#
@@ -51,7 +52,7 @@ zstyle ':prezto:load' pmodule \
# Completions
#
-# Set the entries to ignore in static */etc/hosts* for host completion.
+# Set the entries to ignore in static '/etc/hosts' for host completion.
# zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \
# '0.0.0.0' '127.0.0.1'
diff --git a/runcoms/zprofile b/runcoms/zprofile
index acd7742..1cf48bf 100644
--- a/runcoms/zprofile
+++ b/runcoms/zprofile
@@ -53,8 +53,8 @@ path=(
# Set the default Less options.
# Mouse-wheel scrolling has been disabled by -X (disable screen clearing).
-# Remove -X and -F (exit if the content fits on one screen) to enable it.
-export LESS='-F -g -i -M -R -S -w -X -z-4'
+# Remove -X to enable it.
+export LESS='-g -i -M -R -S -w -X -z-4'
# Set the Less input preprocessor.
# Try both `lesspipe` and `lesspipe.sh` as either might exist on a system.