mirror of
				https://github.com/dcarrillo/prezto.git
				synced 2025-11-04 07:29:09 +00:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			77edfff10e
			...
			module/upd
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					5ecbb49630 | 
@@ -1,9 +0,0 @@
 | 
			
		||||
[*]
 | 
			
		||||
end_of_line = lf
 | 
			
		||||
insert_final_newline = true
 | 
			
		||||
indent_style = space
 | 
			
		||||
indent_size = 2
 | 
			
		||||
trim_trailing_whitespace = true
 | 
			
		||||
 | 
			
		||||
[{.gitattributes,.gitignore,.gitmodules}]
 | 
			
		||||
indent_style = tab
 | 
			
		||||
							
								
								
									
										24
									
								
								.github/ISSUE_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								.github/ISSUE_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							@@ -1,24 +0,0 @@
 | 
			
		||||
<!-- Please check if a similar issue already exists or has been closed before before opening your issue. -->
 | 
			
		||||
 | 
			
		||||
### Description
 | 
			
		||||
<!-- Provide a general description of the bug or feature -->
 | 
			
		||||
 | 
			
		||||
### Expected behavior
 | 
			
		||||
 | 
			
		||||
<!-- What you expected to happen -->
 | 
			
		||||
 | 
			
		||||
### Actual behavior
 | 
			
		||||
 | 
			
		||||
<!-- What actually happened -->
 | 
			
		||||
 | 
			
		||||
### Steps to Reproduce
 | 
			
		||||
 | 
			
		||||
1. [First Step]
 | 
			
		||||
2. [Second Step]
 | 
			
		||||
3. [and so on...]
 | 
			
		||||
 | 
			
		||||
### Versions
 | 
			
		||||
 | 
			
		||||
  - Prezto commit:
 | 
			
		||||
  - ZSH version:
 | 
			
		||||
  - OS information:
 | 
			
		||||
							
								
								
									
										10
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
								
							@@ -1,10 +0,0 @@
 | 
			
		||||
Please be sure to check out our [contributing guidelines](https://github.com/sorin-ionescu/prezto/blob/master/CONTRIBUTING.md)
 | 
			
		||||
before submitting your pull request.
 | 
			
		||||
 | 
			
		||||
Fixes #
 | 
			
		||||
 | 
			
		||||
## Proposed Changes
 | 
			
		||||
 | 
			
		||||
  -
 | 
			
		||||
  -
 | 
			
		||||
  -
 | 
			
		||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,4 +1,3 @@
 | 
			
		||||
*.zwc
 | 
			
		||||
*.zwc.old
 | 
			
		||||
modules/*/cache.zsh
 | 
			
		||||
contrib
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							@@ -1,6 +1,3 @@
 | 
			
		||||
[submodule "modules/autosuggestions/external"]
 | 
			
		||||
	path = modules/autosuggestions/external
 | 
			
		||||
	url = https://github.com/zsh-users/zsh-autosuggestions.git
 | 
			
		||||
[submodule "modules/history-substring-search/external"]
 | 
			
		||||
	path = modules/history-substring-search/external
 | 
			
		||||
	url = https://github.com/zsh-users/zsh-history-substring-search.git
 | 
			
		||||
@@ -10,22 +7,3 @@
 | 
			
		||||
[submodule "modules/completion/external"]
 | 
			
		||||
	path = modules/completion/external
 | 
			
		||||
	url = https://github.com/zsh-users/zsh-completions.git
 | 
			
		||||
[submodule "modules/prompt/external/powerline"]
 | 
			
		||||
	path = modules/prompt/external/powerline
 | 
			
		||||
	url = https://github.com/davidjrice/prezto_powerline.git
 | 
			
		||||
[submodule "modules/prompt/external/agnoster"]
 | 
			
		||||
	path = modules/prompt/external/agnoster
 | 
			
		||||
	url = https://github.com/agnoster/agnoster-zsh-theme.git
 | 
			
		||||
[submodule "modules/prompt/external/pure"]
 | 
			
		||||
	path = modules/prompt/external/pure
 | 
			
		||||
	url = https://github.com/sindresorhus/pure.git
 | 
			
		||||
[submodule "modules/fasd/external"]
 | 
			
		||||
	path = modules/fasd/external
 | 
			
		||||
	url = https://github.com/clvv/fasd.git
 | 
			
		||||
[submodule "modules/prompt/external/async"]
 | 
			
		||||
	path = modules/prompt/external/async
 | 
			
		||||
	url = https://github.com/mafredri/zsh-async.git
 | 
			
		||||
[submodule "modules/prompt/external/powerlevel10k"]
 | 
			
		||||
	path = modules/prompt/external/powerlevel10k
 | 
			
		||||
	url = https://github.com/romkatv/powerlevel10k.git
 | 
			
		||||
	shallow = true
 | 
			
		||||
 
 | 
			
		||||
@@ -1,74 +1,42 @@
 | 
			
		||||
# 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
 | 
			
		||||
#### Modules
 | 
			
		||||
 | 
			
		||||
This project follows the [Google Shell Style Guide][5] when possible. However,
 | 
			
		||||
there are a number of additional things to keep in mind.
 | 
			
		||||
   - A *README.md* must be present.
 | 
			
		||||
   - Large functions must be placed in a *functions* directory.
 | 
			
		||||
   - Functions that take arguments must have completion.
 | 
			
		||||
 | 
			
		||||
- 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.
 | 
			
		||||
#### Themes
 | 
			
		||||
 | 
			
		||||
### Using an Alternative *zprezto* Directory
 | 
			
		||||
 | 
			
		||||
To work on Prezto without affecting your current configuration:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
mkdir devel-zprezto
 | 
			
		||||
cd devel-zprezto
 | 
			
		||||
git clone --recursive https://github.com/sorin-ionescu/prezto.git .zprezto
 | 
			
		||||
ZDOTDIR=$(pwd)
 | 
			
		||||
echo "Your development ZDOTDIR is $ZDOTDIR"
 | 
			
		||||
setopt EXTENDED_GLOB
 | 
			
		||||
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
 | 
			
		||||
    ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
 | 
			
		||||
done
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Then to start zsh in this development environment you will run:
 | 
			
		||||
 | 
			
		||||
```console
 | 
			
		||||
ZDOTDIR=/path/to/devel-zprezto zsh
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Modules
 | 
			
		||||
 | 
			
		||||
- A *README.md* must be present.
 | 
			
		||||
- Large functions must be placed in a *functions* directory.
 | 
			
		||||
- Functions that take arguments must have completion.
 | 
			
		||||
 | 
			
		||||
### 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][5].
 | 
			
		||||
 | 
			
		||||
[1]: https://github.com/sorin-ionescu/prezto/contributors
 | 
			
		||||
[2]: https://gun.io/blog/how-to-github-fork-branch-and-pull-request
 | 
			
		||||
[2]: http://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]: https://github.github.com/gfm/#images
 | 
			
		||||
[5]: http://daringfireball.net/projects/markdown/syntax#img
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										15
									
								
								INSTALL.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								INSTALL.md
									
									
									
									
									
								
							@@ -1,15 +0,0 @@
 | 
			
		||||
 | 
			
		||||
# Install and update
 | 
			
		||||
 | 
			
		||||
## Install
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
git clone https://github.com/dcarrillo/prezto.git ~/.zprezto
 | 
			
		||||
cd ~/.zprezto
 | 
			
		||||
git remote add upstream https://github.com/sorin-ionescu/prezto.git
 | 
			
		||||
git submodule update --init --recursive
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Keep updated
 | 
			
		||||
 | 
			
		||||
Run the [update](scripts/update_zprezto) script.
 | 
			
		||||
							
								
								
									
										20
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								LICENSE
									
									
									
									
									
								
							@@ -1,20 +0,0 @@
 | 
			
		||||
Copyright (c) 2009-2011 Robby Russell and contributors
 | 
			
		||||
Copyright (c) 2011-2017 Sorin Ionescu and contributors
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
 | 
			
		||||
this software and associated documentation files (the "Software"), to deal in
 | 
			
		||||
the Software without restriction, including without limitation the rights to
 | 
			
		||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
 | 
			
		||||
of the Software, and to permit persons to whom the Software is furnished to do
 | 
			
		||||
so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE
 | 
			
		||||
							
								
								
									
										203
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										203
									
								
								README.md
									
									
									
									
									
								
							@@ -1,168 +1,109 @@
 | 
			
		||||
# 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
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
### Manual
 | 
			
		||||
Prezto will work with any recent release of Zsh, but the minimum recommended
 | 
			
		||||
version is 4.3.10.
 | 
			
		||||
 | 
			
		||||
Prezto will work with any recent release of Zsh, but the minimum required
 | 
			
		||||
version is **4.3.11**.
 | 
			
		||||
  1. Launch Zsh:
 | 
			
		||||
 | 
			
		||||
01. Launch Zsh:
 | 
			
		||||
        zsh
 | 
			
		||||
 | 
			
		||||
    ```console
 | 
			
		||||
    zsh
 | 
			
		||||
    ```
 | 
			
		||||
  2. Clone the repository:
 | 
			
		||||
 | 
			
		||||
02. Clone the repository:
 | 
			
		||||
        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:
 | 
			
		||||
 | 
			
		||||
    <details>
 | 
			
		||||
      <summary><em>Optional: Installing in <code>$XDG_CONFIG_HOME</code></em></summary>
 | 
			
		||||
        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.
 | 
			
		||||
  4. Set Zsh as your default shell:
 | 
			
		||||
 | 
			
		||||
      - Clone the repository:
 | 
			
		||||
        chsh -s /bin/zsh
 | 
			
		||||
 | 
			
		||||
        ```console
 | 
			
		||||
        git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}/.zprezto"
 | 
			
		||||
        ```
 | 
			
		||||
 | 
			
		||||
      - Configure `$XDG_CONFIG_HOME` and `$ZDOTDIR` in _`$HOME/.zshenv`_:
 | 
			
		||||
 | 
			
		||||
        ```sh
 | 
			
		||||
        export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:=$HOME/.config}"
 | 
			
		||||
        export ZDOTDIR="${ZDOTDIR:=$XDG_CONFIG_HOME/zsh}"
 | 
			
		||||
        source "$ZDOTDIR/.zshenv"
 | 
			
		||||
        ```
 | 
			
		||||
 | 
			
		||||
    </details>
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
### [Fig](https://fig.io)
 | 
			
		||||
 | 
			
		||||
Fig adds apps, shortcuts, and autocomplete to your existing terminal.
 | 
			
		||||
 | 
			
		||||
Install `prezto` in just one click.
 | 
			
		||||
 | 
			
		||||
<a href="https://fig.io/plugins/other/prezto" target="_blank"><img src="https://fig.io/badges/install-with-fig.svg" /></a>
 | 
			
		||||
  5. 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 _`${ZDOTDIR:-$HOME}/.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 *~/.zshenv* then open a new Zsh terminal
 | 
			
		||||
window or tab.
 | 
			
		||||
 | 
			
		||||
## Updating
 | 
			
		||||
Usage
 | 
			
		||||
-----
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
Prezto has many features disabled by default. Read the source code and the
 | 
			
		||||
accompanying README files to learn about what is available.
 | 
			
		||||
Prezto has many features disabled by default. Read the source code and
 | 
			
		||||
accompanying README files to learn of what is available.
 | 
			
		||||
 | 
			
		||||
### Modules
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
  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.
 | 
			
		||||
 | 
			
		||||
### Themes
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
  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.
 | 
			
		||||
 | 
			
		||||
    ![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.
 | 
			
		||||
     ![sorin theme][2]
 | 
			
		||||
 | 
			
		||||
### External Modules
 | 
			
		||||
Customization
 | 
			
		||||
-------------
 | 
			
		||||
 | 
			
		||||
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`_.
 | 
			
		||||
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].
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
## Customization
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
(The MIT License)
 | 
			
		||||
 | 
			
		||||
[1]: https://www.zsh.org
 | 
			
		||||
[2]: https://i.imgur.com/nrGV6pg.png "sorin theme"
 | 
			
		||||
[3]: https://git-scm.com
 | 
			
		||||
Copyright (c) 2009-2012 Robby Russell, Sorin Ionescu, and contributors.
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
 | 
			
		||||
this software and associated documentation files (the "Software"), to deal in
 | 
			
		||||
the Software without restriction, including without limitation the rights to
 | 
			
		||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
 | 
			
		||||
of the Software, and to permit persons to whom the Software is furnished to do
 | 
			
		||||
so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all
 | 
			
		||||
copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
			
		||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
SOFTWARE.
 | 
			
		||||
 | 
			
		||||
[1]: http://www.zsh.org
 | 
			
		||||
[2]: http://i.imgur.com/nBEEZ.png "sorin theme"
 | 
			
		||||
[3]: http://git-scm.com
 | 
			
		||||
[4]: https://github.com
 | 
			
		||||
[5]: https://gitimmersion.com
 | 
			
		||||
[6]: https://git.github.io/git-reference/
 | 
			
		||||
[5]: http://gitimmersion.com
 | 
			
		||||
[6]: http://gitref.org
 | 
			
		||||
[7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf
 | 
			
		||||
[8]: https://grml.org/zsh/zsh-lovers.html
 | 
			
		||||
[9]: modules#readme
 | 
			
		||||
[10]: runcoms#readme
 | 
			
		||||
[11]: modules/git#readme
 | 
			
		||||
[8]: http://grml.org/zsh/zsh-lovers.html
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										135
									
								
								init.zsh
									
									
									
									
									
								
							
							
						
						
									
										135
									
								
								init.zsh
									
									
									
									
									
								
							@@ -10,62 +10,13 @@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Check for the minimum supported version.
 | 
			
		||||
min_zsh_version='4.3.11'
 | 
			
		||||
min_zsh_version='4.3.10'
 | 
			
		||||
if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
 | 
			
		||||
  printf "prezto: old shell detected, minimum required: %s\n" "$min_zsh_version" >&2
 | 
			
		||||
  print "prezto: old shell detected, minimum required: $min_zsh_version" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
unset min_zsh_version
 | 
			
		||||
 | 
			
		||||
# zprezto convenience updater
 | 
			
		||||
# The function is surrounded by ( ) instead of { } so it starts in a subshell
 | 
			
		||||
# and won't affect the environment of the calling shell
 | 
			
		||||
function zprezto-update {
 | 
			
		||||
  (
 | 
			
		||||
    function cannot-fast-forward {
 | 
			
		||||
      local STATUS="$1"
 | 
			
		||||
      [[ -n "${STATUS}" ]] && printf "%s\n" "${STATUS}"
 | 
			
		||||
      printf "Unable to fast-forward the changes. You can fix this by "
 | 
			
		||||
      printf "running\ncd '%s' and then\n'git pull' " "${ZPREZTODIR}"
 | 
			
		||||
      printf "to manually pull and possibly merge in changes\n"
 | 
			
		||||
    }
 | 
			
		||||
    cd -q -- "${ZPREZTODIR}" || return 7
 | 
			
		||||
    local orig_branch="$(git symbolic-ref HEAD 2> /dev/null | cut -d '/' -f 3)"
 | 
			
		||||
    if [[ "$orig_branch" == "master" ]]; then
 | 
			
		||||
      git fetch || return "$?"
 | 
			
		||||
      local UPSTREAM=$(git rev-parse '@{u}')
 | 
			
		||||
      local LOCAL=$(git rev-parse HEAD)
 | 
			
		||||
      local REMOTE=$(git rev-parse "$UPSTREAM")
 | 
			
		||||
      local BASE=$(git merge-base HEAD "$UPSTREAM")
 | 
			
		||||
      if [[ $LOCAL == $REMOTE ]]; then
 | 
			
		||||
        printf "There are no updates.\n"
 | 
			
		||||
        return 0
 | 
			
		||||
      elif [[ $LOCAL == $BASE ]]; then
 | 
			
		||||
        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
 | 
			
		||||
          cannot-fast-forward
 | 
			
		||||
          return 1
 | 
			
		||||
        fi
 | 
			
		||||
      elif [[ $REMOTE == $BASE ]]; then
 | 
			
		||||
        cannot-fast-forward "Commits in master that aren't in upstream."
 | 
			
		||||
        return 1
 | 
			
		||||
      else
 | 
			
		||||
        cannot-fast-forward "Upstream and local have diverged."
 | 
			
		||||
        return 1
 | 
			
		||||
      fi
 | 
			
		||||
    else
 | 
			
		||||
      printf "zprezto install at '%s' is not on the master branch " "${ZPREZTODIR}"
 | 
			
		||||
      printf "(you're on '%s')\nUnable to automatically update.\n" "${orig_branch}"
 | 
			
		||||
      return 1
 | 
			
		||||
    fi
 | 
			
		||||
    return 1
 | 
			
		||||
  )
 | 
			
		||||
}
 | 
			
		||||
#
 | 
			
		||||
# Module Loader
 | 
			
		||||
#
 | 
			
		||||
@@ -73,70 +24,44 @@ function zprezto-update {
 | 
			
		||||
# Loads Prezto modules.
 | 
			
		||||
function pmodload {
 | 
			
		||||
  local -a pmodules
 | 
			
		||||
  local -a pmodule_dirs
 | 
			
		||||
  local -a locations
 | 
			
		||||
  local pmodule
 | 
			
		||||
  local pmodule_location
 | 
			
		||||
  local pfunction_glob='^([_.]*|prompt_*_setup|README*|*~)(-.N:t)'
 | 
			
		||||
 | 
			
		||||
  # Load in any additional directories and warn if they don't exist
 | 
			
		||||
  zstyle -a ':prezto:load' pmodule-dirs 'user_pmodule_dirs'
 | 
			
		||||
  for user_dir in "$user_pmodule_dirs[@]"; do
 | 
			
		||||
    if [[ ! -d "$user_dir" ]]; then
 | 
			
		||||
      echo "$0: Missing user module dir: $user_dir"
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  pmodule_dirs=("$ZPREZTODIR/modules" "$ZPREZTODIR/contrib" "$user_pmodule_dirs[@]")
 | 
			
		||||
  local pfunction_glob='^([_.]*|prompt_*_setup|README*)(.N:t)'
 | 
			
		||||
 | 
			
		||||
  # $argv is overridden in the anonymous function.
 | 
			
		||||
  pmodules=("$argv[@]")
 | 
			
		||||
 | 
			
		||||
  # Add functions to $fpath.
 | 
			
		||||
  fpath=(${pmodules:+${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions(/FN)} $fpath)
 | 
			
		||||
 | 
			
		||||
  function {
 | 
			
		||||
    local pfunction
 | 
			
		||||
 | 
			
		||||
    # Extended globbing is needed for listing autoloadable function directories.
 | 
			
		||||
    setopt LOCAL_OPTIONS EXTENDED_GLOB
 | 
			
		||||
 | 
			
		||||
    # Load Prezto functions.
 | 
			
		||||
    for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions/$~pfunction_glob; do
 | 
			
		||||
      autoload -Uz "$pfunction"
 | 
			
		||||
    done
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  # Load Prezto modules.
 | 
			
		||||
  for pmodule in "$pmodules[@]"; do
 | 
			
		||||
    if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then
 | 
			
		||||
      continue
 | 
			
		||||
    elif [[ ! -d "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule" ]]; then
 | 
			
		||||
      print "$0: no such module: $pmodule" >&2
 | 
			
		||||
      continue
 | 
			
		||||
    else
 | 
			
		||||
      locations=(${pmodule_dirs:+${^pmodule_dirs}/$pmodule(-/FN)})
 | 
			
		||||
      if (( ${#locations} > 1 )); then
 | 
			
		||||
        if ! zstyle -t ':prezto:load' pmodule-allow-overrides 'yes'; then
 | 
			
		||||
          print "$0: conflicting module locations: $locations"
 | 
			
		||||
          continue
 | 
			
		||||
        fi
 | 
			
		||||
      elif (( ${#locations} < 1 )); then
 | 
			
		||||
        print "$0: no such module: $pmodule"
 | 
			
		||||
        continue
 | 
			
		||||
      fi
 | 
			
		||||
 | 
			
		||||
      # Grab the full path to this module
 | 
			
		||||
      pmodule_location=${locations[-1]}
 | 
			
		||||
 | 
			
		||||
      # Add functions to $fpath.
 | 
			
		||||
      fpath=(${pmodule_location}/functions(-/FN) $fpath)
 | 
			
		||||
 | 
			
		||||
      function {
 | 
			
		||||
        local pfunction
 | 
			
		||||
 | 
			
		||||
        # Extended globbing is needed for listing autoloadable function directories.
 | 
			
		||||
        setopt LOCAL_OPTIONS EXTENDED_GLOB
 | 
			
		||||
 | 
			
		||||
        # Load Prezto functions.
 | 
			
		||||
        for pfunction in ${pmodule_location}/functions/$~pfunction_glob; do
 | 
			
		||||
          autoload -Uz "$pfunction"
 | 
			
		||||
        done
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if [[ -s "${pmodule_location}/init.zsh" ]]; then
 | 
			
		||||
        source "${pmodule_location}/init.zsh"
 | 
			
		||||
      elif [[ -s "${pmodule_location}/${pmodule}.plugin.zsh" ]]; then
 | 
			
		||||
        source "${pmodule_location}/${pmodule}.plugin.zsh"
 | 
			
		||||
      if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" ]]; then
 | 
			
		||||
        source "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh"
 | 
			
		||||
      fi
 | 
			
		||||
 | 
			
		||||
      if (( $? == 0 )); then
 | 
			
		||||
        zstyle ":prezto:module:$pmodule" loaded 'yes'
 | 
			
		||||
      else
 | 
			
		||||
        # Remove the $fpath entry.
 | 
			
		||||
        fpath[(r)${pmodule_location}/functions]=()
 | 
			
		||||
        fpath[(r)${ZDOTDIR:-$HOME}/.zprezto/modules/${pmodule}/functions]=()
 | 
			
		||||
 | 
			
		||||
        function {
 | 
			
		||||
          local pfunction
 | 
			
		||||
@@ -146,7 +71,7 @@ function pmodload {
 | 
			
		||||
          setopt LOCAL_OPTIONS EXTENDED_GLOB
 | 
			
		||||
 | 
			
		||||
          # Unload Prezto functions.
 | 
			
		||||
          for pfunction in ${pmodule_location}/functions/$~pfunction_glob; do
 | 
			
		||||
          for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/functions/$~pfunction_glob; do
 | 
			
		||||
            unfunction "$pfunction"
 | 
			
		||||
          done
 | 
			
		||||
        }
 | 
			
		||||
@@ -161,12 +86,6 @@ function pmodload {
 | 
			
		||||
# Prezto Initialization
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# This finds the directory prezto is installed to so plugin managers don't need
 | 
			
		||||
# to rely on dirty hacks to force prezto into a directory. Additionally, it
 | 
			
		||||
# needs to be done here because inside the pmodload function ${0:h} evaluates to
 | 
			
		||||
# the current directory of the shell rather than the prezto dir.
 | 
			
		||||
ZPREZTODIR=${0:h}
 | 
			
		||||
 | 
			
		||||
# Source the Prezto configuration file.
 | 
			
		||||
if [[ -s "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then
 | 
			
		||||
  source "${ZDOTDIR:-$HOME}/.zpreztorc"
 | 
			
		||||
@@ -183,9 +102,6 @@ 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"
 | 
			
		||||
@@ -195,3 +111,4 @@ unset zfunction{s,}
 | 
			
		||||
zstyle -a ':prezto:load' pmodule 'pmodules'
 | 
			
		||||
pmodload "$pmodules[@]"
 | 
			
		||||
unset pmodules
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,166 +1,174 @@
 | 
			
		||||
# Modules
 | 
			
		||||
Modules
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
Load modules in _`${ZDOTDIR:-$HOME}/.zpreztorc`_. The order matters.
 | 
			
		||||
Load modules in *zpreztorc*. The order matters.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:load' pmodule 'environment' 'terminal'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:load' pmodule 'environment' 'terminal'
 | 
			
		||||
 | 
			
		||||
## Archive
 | 
			
		||||
Archive
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
Provides functions to list and extract archives.
 | 
			
		||||
 | 
			
		||||
## Autosuggestions
 | 
			
		||||
Command-Not-Found
 | 
			
		||||
-----------------
 | 
			
		||||
 | 
			
		||||
Integrates zsh-autosuggestions into Prezto.
 | 
			
		||||
Loads the command-not-found tool on Debian-based distributions.
 | 
			
		||||
 | 
			
		||||
## Command-Not-Found
 | 
			
		||||
Completion
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
Loads the command-not-found tool on macOS or Debian-based distributions.
 | 
			
		||||
Loads and configures tab completion and provides additional completions from
 | 
			
		||||
the zsh-completions project.
 | 
			
		||||
 | 
			
		||||
## Completion
 | 
			
		||||
 | 
			
		||||
Loads and configures <kbd>TAB</kbd> completion and provides additional
 | 
			
		||||
completions from the zsh-completions project.
 | 
			
		||||
 | 
			
		||||
## Directory
 | 
			
		||||
Directory
 | 
			
		||||
---------
 | 
			
		||||
 | 
			
		||||
Sets directory options and defines directory aliases.
 | 
			
		||||
 | 
			
		||||
## DNF
 | 
			
		||||
Dpkg
 | 
			
		||||
----
 | 
			
		||||
 | 
			
		||||
Defines _dnf_ aliases.
 | 
			
		||||
Defines dpkg aliases and functions.
 | 
			
		||||
 | 
			
		||||
## Dpkg
 | 
			
		||||
 | 
			
		||||
Defines _dpkg_ aliases and functions.
 | 
			
		||||
 | 
			
		||||
## Editor
 | 
			
		||||
 | 
			
		||||
Sets key bindings.
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
Sets history options and defines history aliases.
 | 
			
		||||
 | 
			
		||||
## History Substring Search
 | 
			
		||||
History Substring Search
 | 
			
		||||
------------------------
 | 
			
		||||
 | 
			
		||||
Integrates zsh-history-substring-search into Prezto.
 | 
			
		||||
 | 
			
		||||
## Homebrew
 | 
			
		||||
History
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
Sets history options and defines history aliases.
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
OSX
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Initializes OCaml package management.
 | 
			
		||||
Defines Mac OS X aliases and functions.
 | 
			
		||||
 | 
			
		||||
## 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.
 | 
			
		||||
Enables local Perl module installation on Mac OS X 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-Agent
 | 
			
		||||
---------
 | 
			
		||||
 | 
			
		||||
Provides for an easier use of SSH by setting up ssh-agent.
 | 
			
		||||
Provides for an easier use of 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.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,53 +1,41 @@
 | 
			
		||||
# Archive
 | 
			
		||||
Archive
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
Provides functions to create, list, and extract archives.
 | 
			
		||||
Provides functions to list and extract archives.
 | 
			
		||||
 | 
			
		||||
This module must be loaded _before_ the [_`completion`_][1] module so that the
 | 
			
		||||
provided completion definitions are loaded automatically by _`completion`_
 | 
			
		||||
module.
 | 
			
		||||
Functions
 | 
			
		||||
---------
 | 
			
		||||
 | 
			
		||||
## Functions
 | 
			
		||||
  - `lsarchive` lists the contents of one or more archives.
 | 
			
		||||
  - `unarchive` extracts the contents of one or more archives.
 | 
			
		||||
 | 
			
		||||
- `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
 | 
			
		||||
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`.
 | 
			
		||||
  - *.tar.bz2*, *.tbz* require `tar`.
 | 
			
		||||
  - *.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* requires `unzip`.
 | 
			
		||||
  - *.rar* requires `unrar` or `rar`.
 | 
			
		||||
  - *.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.
 | 
			
		||||
Authors
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
## Alternatives
 | 
			
		||||
*The authors of this module should be contacted via the [issue tracker][1].*
 | 
			
		||||
 | 
			
		||||
Specifically on macOS, [The Unarchiver][2] provides a similar command line tool
 | 
			
		||||
which doesn't depend on a number of other programs being installed.
 | 
			
		||||
  - [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
[1]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
_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)
 | 
			
		||||
 | 
			
		||||
[1]: ../completion#readme
 | 
			
		||||
[2]: https://theunarchiver.com/command-line
 | 
			
		||||
[3]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 
 | 
			
		||||
@@ -10,4 +10,5 @@
 | 
			
		||||
 | 
			
		||||
_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|zst|jar|rar|7z)(-.)'" && return 0
 | 
			
		||||
  "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|rar|7z)(-.)'" && return 0
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,4 +10,5 @@
 | 
			
		||||
 | 
			
		||||
_arguments \
 | 
			
		||||
  '(-r --remove)'{-r,--remove}'[remove archive]' \
 | 
			
		||||
  "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|zst|jar|rar|7z|deb)(-.)'" && return 0
 | 
			
		||||
  "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|rar|7z|deb)(-.)'" && return 0
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,75 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Creates archive file
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Matt Hamilton <m@tthamilton.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function archive {
 | 
			
		||||
 | 
			
		||||
local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin _zstd_bin
 | 
			
		||||
 | 
			
		||||
if (( $# < 2 )); then
 | 
			
		||||
  cat >&2 <<EOF
 | 
			
		||||
usage: $0 [archive_name.zip] [/path/to/include/into/archive ...]
 | 
			
		||||
 | 
			
		||||
Where 'archive.zip' uses any of the following extensions:
 | 
			
		||||
 | 
			
		||||
.tar.gz, .tar.bz2, .tar.xz, .tar.lzma, .tar.zst, .tar, .zip, .rar, .7z
 | 
			
		||||
 | 
			
		||||
There is no '-v' switch; all operations are verbose.
 | 
			
		||||
EOF
 | 
			
		||||
return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# we are quitting (above) if there are not exactly 2 vars,
 | 
			
		||||
#  so we don't need any argc check here.
 | 
			
		||||
 | 
			
		||||
# strip the path, just in case one is provided for some reason
 | 
			
		||||
archive_name="${1:t}"
 | 
			
		||||
# let paths be handled by actual archive helper
 | 
			
		||||
path_to_archive="${@:2}"
 | 
			
		||||
 | 
			
		||||
# here, we check for dropin/multi-threaded replacements
 | 
			
		||||
# this should eventually be moved to modules/archive/init.zsh
 | 
			
		||||
# as a global alias
 | 
			
		||||
if (( $+commands[pigz] )); then
 | 
			
		||||
  _gzip_bin='pigz'
 | 
			
		||||
else
 | 
			
		||||
  _gzip_bin='gzip'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if (( $+commands[pixz] )); then
 | 
			
		||||
  _xz_bin='pixz'
 | 
			
		||||
else
 | 
			
		||||
  _xz_bin='xz'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if (( $+commands[lbzip2] )); then
 | 
			
		||||
  _bzip2_bin='lbzip2'
 | 
			
		||||
elif (( $+commands[pbzip2] )); then
 | 
			
		||||
  _bzip2_bin='pbzip2'
 | 
			
		||||
else
 | 
			
		||||
  _bzip2_bin='bzip2'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
_zstd_bin='zstd'
 | 
			
		||||
 | 
			
		||||
case "${archive_name}" in
 | 
			
		||||
  (*.tar.gz|*.tgz) tar -cvf "${archive_name}" --use-compress-program="${_gzip_bin}" "${=path_to_archive}" ;;
 | 
			
		||||
  (*.tar.bz2|*.tbz|*.tbz2) tar -cvf "${archive_name}" --use-compress-program="${_bzip2_bin}" "${=path_to_archive}" ;;
 | 
			
		||||
  (*.tar.xz|*.txz) tar -cvf "${archive_name}" --use-compress-program="${_xz_bin}" "${=path_to_archive}" ;;
 | 
			
		||||
  (*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${=path_to_archive}" ;;
 | 
			
		||||
  (*.tar.zst|*.tzst) tar -cvf "${archive_name}" --use-compress-program="${_zstd_bin}" "${=path_to_archive}" ;;
 | 
			
		||||
  (*.tar) tar -cvf "${archive_name}" "${=path_to_archive}" ;;
 | 
			
		||||
  (*.zip|*.jar) zip -r "${archive_name}" "${=path_to_archive}" ;;
 | 
			
		||||
  (*.rar) rar a "${archive_name}" "${=path_to_archive}" ;;
 | 
			
		||||
  (*.7z) 7za a "${archive_name}" "${=path_to_archive}" ;;
 | 
			
		||||
  (*.gz) print "\n.gz is only useful for single files, and does not capture permissions. Use .tar.gz" ;;
 | 
			
		||||
  (*.bz2) print "\n.bzip2 is only useful for single files, and does not capture permissions. Use .tar.bz2" ;;
 | 
			
		||||
  (*.xz) print "\n.xz is only useful for single files, and does not capture permissions. Use .tar.xz" ;;
 | 
			
		||||
  (*.lzma) print "\n.lzma is only useful for single files, and does not capture permissions. Use .tar.lzma" ;;
 | 
			
		||||
  (*) print "\nunknown archive type for archive: ${archive_name}" ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
@@ -5,8 +5,6 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function lsarchive {
 | 
			
		||||
 | 
			
		||||
local verbose
 | 
			
		||||
 | 
			
		||||
if (( $# == 0 )); then
 | 
			
		||||
@@ -32,7 +30,7 @@ while (( $# > 0 )); do
 | 
			
		||||
    continue
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  case "$1:l" in
 | 
			
		||||
  case "$1" in
 | 
			
		||||
    (*.tar.gz|*.tgz) tar t${verbose:+v}vzf "$1" ;;
 | 
			
		||||
    (*.tar.bz2|*.tbz|*.tbz2) tar t${verbose:+v}jf "$1" ;;
 | 
			
		||||
    (*.tar.xz|*.txz) tar --xz --help &> /dev/null \
 | 
			
		||||
@@ -41,17 +39,14 @@ while (( $# > 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] )) \
 | 
			
		||||
      && unrar ${${verbose:+v}:-l} "$1" ) \
 | 
			
		||||
      || ( (( $+commands[rar] )) \
 | 
			
		||||
      && rar ${${verbose:+v}:-l} "$1" ) \
 | 
			
		||||
      || lsar ${verbose:+-l} "$1" ;;
 | 
			
		||||
    (*.zip) unzip -l${verbose:+v} "$1" ;;
 | 
			
		||||
    (*.rar) unrar &> /dev/null \
 | 
			
		||||
      && unrar ${${verbose:+v}:-l} "$1" \
 | 
			
		||||
      || rar ${${verbose:+v}:-l} "$1" ;;
 | 
			
		||||
    (*.7z) 7za l "$1" ;;
 | 
			
		||||
    (*)
 | 
			
		||||
      print "$0: cannot list: $1" >&2
 | 
			
		||||
			print "$0: cannot list: $1" >&2
 | 
			
		||||
      success=1
 | 
			
		||||
    ;;
 | 
			
		||||
  esac
 | 
			
		||||
@@ -59,4 +54,3 @@ while (( $# > 0 )); do
 | 
			
		||||
  shift
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,14 +5,10 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function unarchive {
 | 
			
		||||
 | 
			
		||||
local remove_archive
 | 
			
		||||
local success
 | 
			
		||||
local file_name
 | 
			
		||||
local file_path
 | 
			
		||||
local extract_dir
 | 
			
		||||
local _gzip_bin _bzip2_bin _xz_bin _zstd_bin
 | 
			
		||||
 | 
			
		||||
if (( $# == 0 )); then
 | 
			
		||||
  cat >&2 <<EOF
 | 
			
		||||
@@ -31,31 +27,6 @@ if [[ "$1" == "-r" || "$1" == "--remove" ]]; then
 | 
			
		||||
  shift
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# here, we check for dropin/multi-threaded replacements
 | 
			
		||||
# this should eventually be moved to modules/archive/init.zsh
 | 
			
		||||
# as a global alias
 | 
			
		||||
if (( $+commands[unpigz] )); then
 | 
			
		||||
  _gzip_bin='unpigz'
 | 
			
		||||
else
 | 
			
		||||
  _gzip_bin='gunzip'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if (( $+commands[pixz] )); then
 | 
			
		||||
  _xz_bin='pixz -d'
 | 
			
		||||
else
 | 
			
		||||
  _xz_bin='xz'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if (( $+commands[lbunzip2] )); then
 | 
			
		||||
  _bzip2_bin='lbunzip2'
 | 
			
		||||
elif (( $+commands[pbunzip2] )); then
 | 
			
		||||
  _bzip2_bin='pbunzip2'
 | 
			
		||||
else
 | 
			
		||||
  _bzip2_bin='bunzip2'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
_zstd_bin='zstd'
 | 
			
		||||
 | 
			
		||||
while (( $# > 0 )); do
 | 
			
		||||
  if [[ ! -s "$1" ]]; then
 | 
			
		||||
    print "$0: file not valid: $1" >&2
 | 
			
		||||
@@ -65,36 +36,34 @@ while (( $# > 0 )); do
 | 
			
		||||
 | 
			
		||||
  success=0
 | 
			
		||||
  file_name="${1:t}"
 | 
			
		||||
  file_path="${1:A}"
 | 
			
		||||
  extract_dir="${file_name:r}"
 | 
			
		||||
  case "$1:l" in
 | 
			
		||||
    (*.tar.gz|*.tgz) tar -xvf "$1" --use-compress-program="${_gzip_bin}" ;;
 | 
			
		||||
    (*.tar.bz2|*.tbz|*.tbz2) tar -xvf "$1" --use-compress-program="${_bzip2_bin}" ;;
 | 
			
		||||
    (*.tar.xz|*.txz) tar -xvf "$1" --use-compress-program="${_xz_bin}" ;;
 | 
			
		||||
  case "$1" in
 | 
			
		||||
    (*.tar.gz|*.tgz) tar xvzf "$1" ;;
 | 
			
		||||
    (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;;
 | 
			
		||||
    (*.tar.xz|*.txz) tar --xz --help &> /dev/null \
 | 
			
		||||
      && tar --xz -xvf "$1" \
 | 
			
		||||
      || xzcat "$1" | tar xvf - ;;
 | 
			
		||||
    (*.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" ;;
 | 
			
		||||
      || lzcat "$1" | tar xvf - ;;
 | 
			
		||||
    (*.tar) tar xvf "$1" ;;
 | 
			
		||||
    (*.gz) gunzip "$1" ;;
 | 
			
		||||
    (*.bz2) bunzip2 "$1" ;;
 | 
			
		||||
    (*.xz) unxz "$1" ;;
 | 
			
		||||
    (*.lzma) unlzma "$1" ;;
 | 
			
		||||
    (*.Z) uncompress "$1" ;;
 | 
			
		||||
    (*.zip|*.jar) unzip "$1" -d $extract_dir ;;
 | 
			
		||||
    (*.rar) ( (( $+commands[unrar] )) \
 | 
			
		||||
      && unrar x -ad "$1" ) \
 | 
			
		||||
      || ( (( $+commands[rar] )) \
 | 
			
		||||
      && rar x -ad "$1" ) \
 | 
			
		||||
      || unar -d "$1" ;;
 | 
			
		||||
    (*.zip) unzip "$1" -d $extract_dir ;;
 | 
			
		||||
    (*.rar) unrar &> /dev/null \
 | 
			
		||||
      && unrar e -ad "$1" \
 | 
			
		||||
      || rar e -ad "$1" ;;
 | 
			
		||||
    (*.7z) 7za x "$1" ;;
 | 
			
		||||
    (*.deb)
 | 
			
		||||
      mkdir -p "$extract_dir/control"
 | 
			
		||||
      mkdir -p "$extract_dir/data"
 | 
			
		||||
      cd "$extract_dir"; ar vx "${file_path}" > /dev/null
 | 
			
		||||
      cd control; tar xvf ../control.tar.*
 | 
			
		||||
      cd ../data; tar xvf ../data.tar.*
 | 
			
		||||
      cd ..; rm control.tar.* data.tar.* debian-binary
 | 
			
		||||
      cd "$extract_dir"; ar vx "../${1}" > /dev/null
 | 
			
		||||
      cd control; tar xzvf ../control.tar.gz
 | 
			
		||||
      cd ../data; tar xzvf ../data.tar.gz
 | 
			
		||||
      cd ..; rm *.tar.gz debian-binary
 | 
			
		||||
      cd ..
 | 
			
		||||
    ;;
 | 
			
		||||
    (*)
 | 
			
		||||
@@ -108,4 +77,3 @@ while (( $# > 0 )); do
 | 
			
		||||
  shift
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,62 +0,0 @@
 | 
			
		||||
# 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`_][3]
 | 
			
		||||
module, this module must be loaded _after_ the _`syntax-highlighting`_ module.
 | 
			
		||||
 | 
			
		||||
Additionally, 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 as well.
 | 
			
		||||
 | 
			
		||||
To elaborate, the relative order of loading the modules would be
 | 
			
		||||
_`syntax-highlighting`_, _`history-substring-search`_ and _`autosuggestions`_.
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
 | 
			
		||||
### Highlighting
 | 
			
		||||
 | 
			
		||||
If colors are enabled, _autosuggestions_ will automatically highlight
 | 
			
		||||
positive results.
 | 
			
		||||
 | 
			
		||||
To enable highlighting for this module only, add the following line to
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:autosuggestions' color 'yes'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
To set the query found color, add the following line to
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:autosuggestions:color' found ''
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
 | 
			
		||||
_The authors of this module should be contacted via the [issue tracker][5]._
 | 
			
		||||
 | 
			
		||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
[1]: https://github.com/tarruda/zsh-autosuggestions
 | 
			
		||||
[2]: https://fishshell.com
 | 
			
		||||
[3]: ../syntax-highlighting#readme
 | 
			
		||||
[4]: ../history-substring-search#readme
 | 
			
		||||
[5]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 Submodule modules/autosuggestions/external deleted from a411ef3e09
									
								
							@@ -1,35 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Integrates zsh-autosuggestions into Prezto.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Load dependencies.
 | 
			
		||||
pmodload 'editor'
 | 
			
		||||
 | 
			
		||||
# Source module files.
 | 
			
		||||
source "${0:h}/external/zsh-autosuggestions.zsh" || return 1
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Highlighting
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Set highlight color, default 'fg=8'.
 | 
			
		||||
zstyle -s ':prezto:module:autosuggestions:color' found \
 | 
			
		||||
  'ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE' || ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8'
 | 
			
		||||
 | 
			
		||||
# Disable highlighting.
 | 
			
		||||
if ! zstyle -t ':prezto:module:autosuggestions' color; then
 | 
			
		||||
  ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=''
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Key Bindings
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if [[ -n "$key_info" ]]; then
 | 
			
		||||
  # vi
 | 
			
		||||
  bindkey -M viins "$key_info[Control]F" vi-forward-word
 | 
			
		||||
  bindkey -M viins "$key_info[Control]E" vi-add-eol
 | 
			
		||||
fi
 | 
			
		||||
@@ -1,13 +0,0 @@
 | 
			
		||||
#compdef aws_switch_profile
 | 
			
		||||
#autoload
 | 
			
		||||
 | 
			
		||||
if [[ ! -f ~/.aws/credentials ]]; then
 | 
			
		||||
    return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
local profiles
 | 
			
		||||
profiles=$(grep -E "^\[.+\]" ~/.aws/credentials | tr -d '[' | tr -d ']' )
 | 
			
		||||
 | 
			
		||||
_arguments "1:toggle:((
 | 
			
		||||
$profiles
 | 
			
		||||
))" && return 0
 | 
			
		||||
@@ -1,33 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Exposes information about the AWS_PROFILE environment via the $aws_info associative
 | 
			
		||||
# array.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function aws-info {
 | 
			
		||||
 | 
			
		||||
local profile_format
 | 
			
		||||
local profile_formatted
 | 
			
		||||
local aws_prompt
 | 
			
		||||
local aws_region_prompt
 | 
			
		||||
 | 
			
		||||
unset aws_info
 | 
			
		||||
typeset -gA aws_info
 | 
			
		||||
 | 
			
		||||
if (( ${+AWS_SECRET_ACCESS_KEY} )); then
 | 
			
		||||
  aws_prompt="${AWS_PROFILE}  "
 | 
			
		||||
elif (( ${+AWS_PROFILE} )); then
 | 
			
		||||
    aws_prompt=$AWS_PROFILE
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if (( ${+AWS_DEFAULT_REGION} )) && [[ ${_aws_region} = "true" ]]; then
 | 
			
		||||
  AWS_REGION=$(cut -d "-" -f 1 <<<$AWS_DEFAULT_REGION | cut -b 1)$(cut -d "-" -f 2 <<<$AWS_DEFAULT_REGION | cut -b 1)$(cut -d "-" -f 3 <<<$AWS_DEFAULT_REGION | cut -b 1)
 | 
			
		||||
  aws_region_prompt=" $AWS_REGION"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if (( ${+AWS_SECRET_ACCESS_KEY} )) || (( ${+AWS_DEFAULT_REGION} )); then
 | 
			
		||||
  zstyle -s ':prezto:module:aws:info:profile' format 'profile_format'
 | 
			
		||||
  zformat -f profile_formatted "$profile_format" "v:${aws_prompt:t}${aws_region_prompt}"
 | 
			
		||||
  aws_info[profile]="$profile_formatted"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
@@ -1,185 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Defines aws cli aliases/functions.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Daniel Carrillo
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Get the output parameter
 | 
			
		||||
zstyle -s ':prezto:module:aws' output '_aws_output' || _aws_output='table'
 | 
			
		||||
zstyle -s ':prezto:module:aws' show_region '_aws_region' || _aws_region='false'
 | 
			
		||||
zstyle -s ':prezto:module:aws' profile '_aws_profile' || _aws_profile='default'
 | 
			
		||||
zstyle -s ':prezto:module:aws' sso '_aws_sso' || _aws_sso='false'
 | 
			
		||||
 | 
			
		||||
# Return if requirements are not found.
 | 
			
		||||
if (( ! $+commands[aws] )); then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
function _get_aws_profile {
 | 
			
		||||
    if [[ -z "${AWS_PROFILE+1}" ]]; then
 | 
			
		||||
        echo ${_aws_profile}
 | 
			
		||||
    else
 | 
			
		||||
        echo $AWS_PROFILE
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_i {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
    aws ec2 describe-instances --profile $profile --output ${_aws_output} \
 | 
			
		||||
        --query 'Reservations[].Instances[].[Tags[?Key==`Name`] | [0].Value, LaunchTime, State.Name,
 | 
			
		||||
                 InstanceType, VpcId, InstanceId, Placement.AvailabilityZone, PrivateIpAddress, PublicIpAddress]'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_ebs {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
    aws ec2 describe-volumes --profile $profile --output ${_aws_output} \
 | 
			
		||||
        --query 'Volumes[].[Tags[?Key==`Name`] | [0].Value, VolumeId, Attachments[0].InstanceId, Size, VolumeType, Iops, AvailabilityZone]'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_elb {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
    aws elb describe-load-balancers --profile $profile --output ${_aws_output} \
 | 
			
		||||
        --query "LoadBalancerDescriptions[*].{type:'elb',scheme:Scheme,dns:DNSName,vpc:VPCId,name:LoadBalancerName,subnets:Subnets[*] | join(',', @)}"
 | 
			
		||||
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
    aws elbv2 describe-load-balancers --profile $profile --output ${_aws_output} \
 | 
			
		||||
        --query "LoadBalancers[*].{type:Type,scheme:Scheme,dns:DNSName,vpc:VpcId,name:LoadBalancerName,subnets:AvailabilityZones[*].SubnetId | join(',', @)}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_userdata {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
    aws ec2 describe-instance-attribute --profile $profile --output text \
 | 
			
		||||
        --attribute userData --instance-id $1 \
 | 
			
		||||
        --query 'UserData.Value' | base64 -d
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_vpc {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
    aws ec2 describe-vpcs --profile $profile --output ${_aws_output} \
 | 
			
		||||
        --query 'Vpcs[*].{id:VpcId,cidr:CidrBlock,tag:Tags[0].Value}'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_subnets {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
    aws ec2 describe-subnets --profile $profile --output text \
 | 
			
		||||
        --query 'Subnets[].[Tags[?Key==`Name`] | [0].Value, SubnetId, VpcId, CidrBlock]' \
 | 
			
		||||
        | sort -k1 | column -t
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_ag {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
    aws autoscaling describe-auto-scaling-groups --profile $profile --output ${_aws_output} \
 | 
			
		||||
        --query 'AutoScalingGroups[*].{name:AutoScalingGroupName,az:VPCZoneIdentifier}'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_ami {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
    aws ec2 describe-images --profile $profile --output ${_aws_output} \
 | 
			
		||||
        --owner self --query 'Images[*].{date:CreationDate,id:ImageId,name:Name,virt:VirtualizationType,st:State}'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_kms_decrypt {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
 | 
			
		||||
    if [[ -z $1 ]]; then
 | 
			
		||||
        echo "String is missing"
 | 
			
		||||
        return 1
 | 
			
		||||
    fi
 | 
			
		||||
    aws kms --profile $profile decrypt --ciphertext-blob fileb://<(base64 -d <<<$1) \
 | 
			
		||||
        --output text --query Plaintext | base64 -d
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_ssm_session {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
 | 
			
		||||
    if [[ -z $1 ]]; then
 | 
			
		||||
        echo "Instance id is missing"
 | 
			
		||||
        return 1
 | 
			
		||||
    fi
 | 
			
		||||
    aws ssm start-session --profile $profile --target $1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_ssm_session_any {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
    local id
 | 
			
		||||
 | 
			
		||||
    if [[ -z $1 ]]; then
 | 
			
		||||
        echo "Instance name is missing"
 | 
			
		||||
        return 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    id=$(aws ec2 describe-instances --profile $profile --output text \
 | 
			
		||||
        --filter "Name=tag:Name,Values=$1" "Name=instance-state-name,Values=running" \
 | 
			
		||||
        --query 'Reservations[0].Instances[0].InstanceId')
 | 
			
		||||
    if [[ $2 == "ssh" ]]; then
 | 
			
		||||
        shift 2
 | 
			
		||||
        AWS_PROFILE=$profile ssh $id $@
 | 
			
		||||
    else
 | 
			
		||||
        aws ssm start-session --profile $profile --target $id
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_cf {
 | 
			
		||||
    local profile=$(_get_aws_profile)
 | 
			
		||||
 | 
			
		||||
    if ! type "jq" > /dev/null; then
 | 
			
		||||
      echo "ERROR: this function needs jq to be installed"
 | 
			
		||||
      return 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    aws cloudfront list-distributions --profile $profile --output json \
 | 
			
		||||
        --query "DistributionList.Items[*].{id:Id,domain:DomainName,status:Status,
 | 
			
		||||
                 origin:Origins.Items[].DomainName | join(' ', @), aliases:Aliases.Items | join(' ', @)}" \
 | 
			
		||||
        | jq -r ".[] | [.id, .domain, .aliases, .status, .origin] | @csv" | tr -d '"' | column --separator="," --table
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# ~/.ssh/config
 | 
			
		||||
#
 | 
			
		||||
# Host i-*
 | 
			
		||||
#    ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
 | 
			
		||||
#    User <your_user>
 | 
			
		||||
function ssh_aws_any {
 | 
			
		||||
    host=$1
 | 
			
		||||
    shift
 | 
			
		||||
    extra_params=$@
 | 
			
		||||
    aws_ssm_session_any $host ssh $extra_params
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_switch_profile {
 | 
			
		||||
    local region
 | 
			
		||||
    local credentials
 | 
			
		||||
 | 
			
		||||
    if [[ -z $1 ]]; then
 | 
			
		||||
        echo "Profile can't be an empty string"
 | 
			
		||||
        return 1
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    echo "Activating profile $1..."
 | 
			
		||||
    unset -m "AWS_*"
 | 
			
		||||
    export AWS_PROFILE=$1
 | 
			
		||||
    if [[ -f ~/.aws/credentials ]]; then #&& (( ! ${+AWS_DEFAULT_REGION} ))
 | 
			
		||||
      region=$(aws configure get region)
 | 
			
		||||
      if [[ ! -z $region ]]; then
 | 
			
		||||
        export AWS_DEFAULT_REGION=$region
 | 
			
		||||
      else
 | 
			
		||||
        unset AWS_DEFAULT_REGION
 | 
			
		||||
      fi
 | 
			
		||||
 | 
			
		||||
      if [[ ${_aws_sso} == "true" ]]; then
 | 
			
		||||
        credentials=$(aws-export-credentials --env-export 2>&1)
 | 
			
		||||
 | 
			
		||||
        if [[ $credentials =~ "has expired" ]]; then
 | 
			
		||||
            aws sso login
 | 
			
		||||
            credentials=$(aws-export-credentials --env-export)
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        eval $credentials
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_deactivate_profile {
 | 
			
		||||
    echo "Deactivating aws profile..."
 | 
			
		||||
    unset -m "AWS_*"
 | 
			
		||||
}
 | 
			
		||||
@@ -1,23 +1,15 @@
 | 
			
		||||
# 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.
 | 
			
		||||
Loads the [command-not-found][1] tool on Debian-based distributions.
 | 
			
		||||
 | 
			
		||||
Debian and Arch Linux based distributions use the [`command-not-found`][1] tool.
 | 
			
		||||
Authors
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
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].
 | 
			
		||||
*The authors of this module should be contacted via the [issue tracker][2].*
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
_The authors of this module should be contacted via the [issue tracker][4]._
 | 
			
		||||
 | 
			
		||||
- [Joseph Booker](https://github.com/sargas)
 | 
			
		||||
- [Indrajit Raychaudhuri](https://github.com/indrajitr)
 | 
			
		||||
  - [Joseph Booker](https://github.com/sargas)
 | 
			
		||||
 | 
			
		||||
[1]: https://code.launchpad.net/command-not-found
 | 
			
		||||
[2]: https://github.com/Homebrew/homebrew-command-not-found
 | 
			
		||||
[3]: https://github.com/Homebrew/homebrew-command-not-found#install
 | 
			
		||||
[4]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
[2]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,21 +3,12 @@
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Joseph Jon Booker <joe@neoturbine.net>
 | 
			
		||||
#   Indrajit Raychaudhuri <irc+code@indrajit.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Load command-not-found on Debian-based distributions.
 | 
			
		||||
if [[ -s /etc/zsh_command_not_found ]]; then
 | 
			
		||||
  source /etc/zsh_command_not_found
 | 
			
		||||
# Load command-not-found on Arch Linux-based distributions.
 | 
			
		||||
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.
 | 
			
		||||
elif (( $+commands[brew] )) \
 | 
			
		||||
      && [[ -s ${hb_cnf_handler::="${HOMEBREW_REPOSITORY:-$commands[brew]:A:h:h}/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
 | 
			
		||||
if [[ ! -s '/etc/zsh_command_not_found' ]]; then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
source '/etc/zsh_command_not_found'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,55 +1,24 @@
 | 
			
		||||
# Completion
 | 
			
		||||
Completion
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
Loads and configures <kbd>TAB</kbd> 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 late _after_ the _`utility`_ module and all other
 | 
			
		||||
modules that provide completion definitions.
 | 
			
		||||
This module must be loaded **after** the *utility* module.
 | 
			
		||||
 | 
			
		||||
## Options
 | 
			
		||||
Contributors
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
- `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 <kbd>TAB</kbd> 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.
 | 
			
		||||
Completions should be submitted to the [zsh-completions][1] project according
 | 
			
		||||
to its rules and regulations. This module will be synchronized against it.
 | 
			
		||||
 | 
			
		||||
## Variables
 | 
			
		||||
Authors
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
- `LS_COLORS` used by default for Zsh [standard style][2] 'list-colors'.
 | 
			
		||||
*The authors of this module should be contacted via the [issue tracker][2].*
 | 
			
		||||
 | 
			
		||||
## 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'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Contributors
 | 
			
		||||
 | 
			
		||||
Completions should be submitted to the [zsh-completions][1] project according to
 | 
			
		||||
its rules and regulations. This module will be synchronized against it.
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
_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://zsh.sourceforge.net/Doc/Release/Completion-System.html#Standard-Styles
 | 
			
		||||
[3]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
[2]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 Submodule modules/completion/external updated: 0331b2908f...662229f6f0
									
								
							@@ -7,77 +7,36 @@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# 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 on macOS when available.
 | 
			
		||||
if (( $+commands[brew] )); then
 | 
			
		||||
  brew_prefix=${HOMEBREW_PREFIX:-${HOMEBREW_REPOSITORY:-$commands[brew]:A:h:h}}
 | 
			
		||||
  # $HOMEBREW_PREFIX defaults to $HOMEBREW_REPOSITORY but is explicitly set to
 | 
			
		||||
  # /usr/local when $HOMEBREW_REPOSITORY is /usr/local/Homebrew.
 | 
			
		||||
  # https://github.com/Homebrew/brew/blob/2a850e02d8f2dedcad7164c2f4b95d340a7200bb/bin/brew#L66-L69
 | 
			
		||||
  [[ $brew_prefix == '/usr/local/Homebrew' ]] && brew_prefix=$brew_prefix:h
 | 
			
		||||
  fpath=($brew_prefix/opt/curl/share/zsh/site-functions(/N) $fpath)
 | 
			
		||||
  unset brew_prefix
 | 
			
		||||
fi
 | 
			
		||||
# Load and initialize the completion system ignoring insecure directories.
 | 
			
		||||
autoload -Uz compinit && compinit -i
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# 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
 | 
			
		||||
# shell is opened each day.
 | 
			
		||||
autoload -Uz compinit
 | 
			
		||||
_comp_path="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump"
 | 
			
		||||
# #q expands globs in conditional expressions
 | 
			
		||||
if [[ $_comp_path(#qNmh-20) ]]; then
 | 
			
		||||
  # -C (skip function check) implies -i (skip security check).
 | 
			
		||||
  compinit -C -d "$_comp_path"
 | 
			
		||||
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
 | 
			
		||||
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 succesive 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.
 | 
			
		||||
unsetopt MENU_COMPLETE     # Do not autoselect the first completion entry.
 | 
			
		||||
unsetopt FLOW_CONTROL      # Disable start/stop characters in shell editor.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# 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.
 | 
			
		||||
# Use caching to make completion for cammands such as dpkg and apt usable.
 | 
			
		||||
zstyle ':completion::complete:*' use-cache on
 | 
			
		||||
zstyle ':completion::complete:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompcache"
 | 
			
		||||
zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache"
 | 
			
		||||
 | 
			
		||||
# Case-insensitive (all), partial-word, and then substring completion.
 | 
			
		||||
if zstyle -t ':prezto:module:completion:*' case-sensitive; then
 | 
			
		||||
@@ -97,6 +56,7 @@ 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
 | 
			
		||||
@@ -106,9 +66,8 @@ zstyle ':completion:*' completer _complete _match _approximate
 | 
			
		||||
zstyle ':completion:*:match:*' original only
 | 
			
		||||
zstyle ':completion:*:approximate:*' max-errors 1 numeric
 | 
			
		||||
 | 
			
		||||
# Increase the number of errors based on the length of the typed word. But make
 | 
			
		||||
# sure to cap (at 7) the max-errors to avoid hanging.
 | 
			
		||||
zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3>7?7:($#PREFIX+$#SUFFIX)/3))numeric)'
 | 
			
		||||
# Increase the number of errors based on the length of the typed word.
 | 
			
		||||
zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)'
 | 
			
		||||
 | 
			
		||||
# Don't complete unavailable commands.
 | 
			
		||||
zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
 | 
			
		||||
@@ -117,6 +76,7 @@ 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'
 | 
			
		||||
@@ -128,17 +88,14 @@ zstyle ':completion:*:history-words' remove-all-dups yes
 | 
			
		||||
zstyle ':completion:*:history-words' list false
 | 
			
		||||
zstyle ':completion:*:history-words' menu yes
 | 
			
		||||
 | 
			
		||||
# Environment Variables
 | 
			
		||||
# Environmental Variables
 | 
			
		||||
zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
 | 
			
		||||
 | 
			
		||||
# Populate hostname completion. But allow ignoring custom entries from static
 | 
			
		||||
# */etc/hosts* which might be uninteresting.
 | 
			
		||||
zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores'
 | 
			
		||||
 | 
			
		||||
# Populate hostname completion.
 | 
			
		||||
zstyle -e ':completion:*:hosts' hosts 'reply=(
 | 
			
		||||
  ${=${=${=${${(f)"$(cat {/etc/ssh/ssh_,~/.ssh/}known_hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
 | 
			
		||||
  ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2> /dev/null))"}%%(\#${_etc_host_ignores:+|${(j:|:)~_etc_host_ignores}})*}
 | 
			
		||||
  ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2> /dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
 | 
			
		||||
  ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
 | 
			
		||||
  ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*}
 | 
			
		||||
  ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
 | 
			
		||||
)'
 | 
			
		||||
 | 
			
		||||
# Don't complete uninteresting users...
 | 
			
		||||
@@ -159,7 +116,7 @@ zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
 | 
			
		||||
zstyle ':completion:*:rm:*' file-patterns '*:all-files'
 | 
			
		||||
 | 
			
		||||
# Kill
 | 
			
		||||
zstyle ':completion:*:*:*:*:processes' command 'ps -u $LOGNAME -o pid,user,command -w'
 | 
			
		||||
zstyle ':completion:*:*:*:*:processes' command 'ps -u $USER -o pid,user,comm -w'
 | 
			
		||||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'
 | 
			
		||||
zstyle ':completion:*:*:kill:*' menu yes select
 | 
			
		||||
zstyle ':completion:*:*:kill:*' force-list always
 | 
			
		||||
@@ -182,9 +139,11 @@ if [[ -s "$HOME/.mutt/aliases" ]]; then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# SSH/SCP/RSYNC
 | 
			
		||||
zstyle ':completion:*:(ssh|scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
 | 
			
		||||
zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
 | 
			
		||||
zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
 | 
			
		||||
zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
 | 
			
		||||
zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr
 | 
			
		||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
 | 
			
		||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
 | 
			
		||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,30 +1,36 @@
 | 
			
		||||
# 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.
 | 
			
		||||
  - `AUTO_NAME_DIRS` auto adds variable-stored paths to `~` list.
 | 
			
		||||
  - `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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,7 @@ setopt PUSHD_IGNORE_DUPS    # Do not store duplicates in the stack.
 | 
			
		||||
setopt PUSHD_SILENT         # Do not print the directory stack after pushd or popd.
 | 
			
		||||
setopt PUSHD_TO_HOME        # Push to home directory when no argument is given.
 | 
			
		||||
setopt CDABLE_VARS          # Change directory to a path stored in a variable.
 | 
			
		||||
setopt AUTO_NAME_DIRS       # Auto add variable-stored paths to ~ list.
 | 
			
		||||
setopt MULTIOS              # Write to multiple descriptors.
 | 
			
		||||
setopt EXTENDED_GLOB        # Use extended globbing syntax.
 | 
			
		||||
unsetopt CLOBBER            # Do not overwrite existing files with > and >>.
 | 
			
		||||
@@ -27,3 +28,4 @@ unsetopt CLOBBER            # Do not overwrite existing files with > and >>.
 | 
			
		||||
 | 
			
		||||
alias d='dirs -v'
 | 
			
		||||
for index ({1..9}) alias "$index"="cd +${index}"; unset index
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
# DNF
 | 
			
		||||
 | 
			
		||||
Defines [dnf][1] 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.
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
_The authors of this module should be contacted via the [issue tracker][2]._
 | 
			
		||||
 | 
			
		||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
[1]: https://fedoraproject.org/wiki/Features/DNF
 | 
			
		||||
[2]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
@@ -1,28 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Defines dnf aliases.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   FireWave <firewave@free.fr>
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Return if requirements are not found.
 | 
			
		||||
if (( ! $+commands[dnf] )); then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Aliases
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
alias dnfc='sudo dnf clean all'    # Cleans the cache.
 | 
			
		||||
alias dnfh='dnf history'           # Displays history.
 | 
			
		||||
alias dnfi='sudo dnf install'      # Installs package(s).
 | 
			
		||||
alias dnfl='dnf list'              # Lists packages.
 | 
			
		||||
alias dnfL='dnf list installed'    # Lists installed packages.
 | 
			
		||||
alias dnfq='dnf info'              # Displays package information.
 | 
			
		||||
alias dnfr='sudo dnf remove'       # Removes package(s).
 | 
			
		||||
alias dnfs='dnf search'            # Searches for a package.
 | 
			
		||||
alias dnfu='sudo dnf update'       # Updates packages.
 | 
			
		||||
alias dnfU='sudo dnf upgrade'      # Upgrades packages.
 | 
			
		||||
 | 
			
		||||
@@ -1,196 +0,0 @@
 | 
			
		||||
# Docker
 | 
			
		||||
 | 
			
		||||
Defines [Docker][1] aliases and functions.
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
 | 
			
		||||
### Docker
 | 
			
		||||
 | 
			
		||||
- `dk` is short for `docker`
 | 
			
		||||
- `dka` Attach to a running container
 | 
			
		||||
- `dkb` Build an image from a Dockerfile
 | 
			
		||||
- `dkd` Inspect changes on a container's filesystem
 | 
			
		||||
- `dkdf` Show docker filesystem usage
 | 
			
		||||
- `dke` Run a command in a running container
 | 
			
		||||
- `dkE` Run an interactive command in a running container
 | 
			
		||||
- `dkh` Show the history of an image
 | 
			
		||||
- `dki` List images
 | 
			
		||||
- `dkin` Return low-level information on a container, image or task
 | 
			
		||||
- `dkk` Kill a running container
 | 
			
		||||
- `dkl` Fetch the logs of a container
 | 
			
		||||
- `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` 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
 | 
			
		||||
- `dkRe` like `dkR` and set entry point to `/bin/bash`
 | 
			
		||||
- `dkrm` Remove one or more containers
 | 
			
		||||
- `dkrmi` Remove one or more images
 | 
			
		||||
- `dkrmC` Clean up exited containers
 | 
			
		||||
- `dkrmI` Clean up dangling images
 | 
			
		||||
- `dkrmV` Clean up unused volumes ( Docker >= 1.9 )
 | 
			
		||||
- `dkrn` Rename a container
 | 
			
		||||
- `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)
 | 
			
		||||
- `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
 | 
			
		||||
- `dkx` Stop a running container
 | 
			
		||||
 | 
			
		||||
#### container (C)
 | 
			
		||||
 | 
			
		||||
- `dkC` Manage containers
 | 
			
		||||
- `dkCa` Attach to a running container
 | 
			
		||||
- `dkCcp` Copy files/folders between a container and the local filesystem
 | 
			
		||||
- `dkCd` Inspect changes on a container's filesystem
 | 
			
		||||
- `dkCe` Run a command in a running container
 | 
			
		||||
- `dkCin` Display detailed information on one or more containers
 | 
			
		||||
- `dkCk` Kill one or more running containers
 | 
			
		||||
- `dkCl` Fetch the logs of a container
 | 
			
		||||
- `dkCls` List containers
 | 
			
		||||
- `dkCp` Pause all processes within one or more containers
 | 
			
		||||
- `dkCpr` Remove all stopped containers
 | 
			
		||||
- `dkCrn` Rename a container
 | 
			
		||||
- `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
 | 
			
		||||
- `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
 | 
			
		||||
- `dkCx` Stop one or more running containers
 | 
			
		||||
- `dkCtop` Display the running processes of a container
 | 
			
		||||
- `dkCP` Unpause all processes within one or more containers
 | 
			
		||||
- `dkCup` Update configuration of one or more containers
 | 
			
		||||
- `dkCw` Block until one or more containers stop, then print their exit codes
 | 
			
		||||
 | 
			
		||||
#### image (I)
 | 
			
		||||
 | 
			
		||||
- `dkI` Manage images
 | 
			
		||||
- `dkIb` Build an image from a Dockerfile
 | 
			
		||||
- `dkIh` Show the history of an image
 | 
			
		||||
- `dkIim` Import the contents from a tarball to create a filesystem image
 | 
			
		||||
- `dkIin` Display detailed information on one or more images
 | 
			
		||||
- `dkIls` List images
 | 
			
		||||
- `dkIpr` Remove unused images
 | 
			
		||||
- `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)
 | 
			
		||||
- `dkIt` Tag an image into a repository
 | 
			
		||||
 | 
			
		||||
#### volume (V)
 | 
			
		||||
 | 
			
		||||
- `dkV` Manage volumes
 | 
			
		||||
- `dkVin` Display detailed information on one or more volumes
 | 
			
		||||
- `dkVls` List volumes
 | 
			
		||||
- `dkVpr` Remove all unused volumes
 | 
			
		||||
- `dkVrm` Remove one or more volumes
 | 
			
		||||
 | 
			
		||||
#### network (N)
 | 
			
		||||
 | 
			
		||||
- `dkN` Manage networks
 | 
			
		||||
- `dkNs` Connect a container to a network
 | 
			
		||||
- `dkNx` Disconnects a container from a network
 | 
			
		||||
- `dkNin` Displays detailed information on a network
 | 
			
		||||
- `dkNls` Lists all the networks created by the user
 | 
			
		||||
- `dkNpr` Remove all unused networks
 | 
			
		||||
- `dkNrm` Deletes one or more networks
 | 
			
		||||
 | 
			
		||||
#### system (Y)
 | 
			
		||||
 | 
			
		||||
- `dkY` Manage Docker
 | 
			
		||||
- `dkYdf` Show docker filesystem usage
 | 
			
		||||
- `dkYpr` Remove unused data
 | 
			
		||||
 | 
			
		||||
#### stack (K)
 | 
			
		||||
 | 
			
		||||
- `dkK` Manage Docker stacks
 | 
			
		||||
- `dkKls` List stacks
 | 
			
		||||
- `dkKps` List the tasks in the stack
 | 
			
		||||
- `dkKrm` Remove the stack
 | 
			
		||||
 | 
			
		||||
#### swarm (W)
 | 
			
		||||
 | 
			
		||||
- `dkW` Manage Docker Swarm
 | 
			
		||||
 | 
			
		||||
### Docker Machine
 | 
			
		||||
 | 
			
		||||
- `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)
 | 
			
		||||
- `dkmin` Inspect information about a machine
 | 
			
		||||
- `dkmip` Get the IP address of a machine
 | 
			
		||||
- `dkmk` Kill a machine
 | 
			
		||||
- `dkmls` List machines
 | 
			
		||||
- `dkmpr` Re-provision existing machines
 | 
			
		||||
- `dkmps` is alias for `dkmls`
 | 
			
		||||
- `dkmrg` Regenerate TLS Certificates for a machine
 | 
			
		||||
- `dkmrm` Remove a machine
 | 
			
		||||
- `dkms` Start a machine
 | 
			
		||||
- `dkmsh` Log into or run a command on a machine with SSH
 | 
			
		||||
- `dkmst` Get the status of a machine
 | 
			
		||||
- `dkmS` Restart a machine
 | 
			
		||||
- `dkmu` Get the URL of a machine
 | 
			
		||||
- `dkmup` Upgrade a machine to the latest version of Docker
 | 
			
		||||
- `dkmV` Show the Docker Machine version or a machine docker version
 | 
			
		||||
- `dkmx` Stop a machine
 | 
			
		||||
 | 
			
		||||
### Docker Compose
 | 
			
		||||
 | 
			
		||||
- `dkc` is short for `docker-compose`
 | 
			
		||||
- `dkcb` Build or rebuild services
 | 
			
		||||
- `dkcB` Build or rebuild services and do not use cache when building the image
 | 
			
		||||
- `dkcd` Stop and remove containers, networks, images, and volumes
 | 
			
		||||
- `dkce` Execute a command in a running container
 | 
			
		||||
- `dkck` Kill containers
 | 
			
		||||
- `dkcl` View output from containers
 | 
			
		||||
- `dkcls` is alias for `dkcps`
 | 
			
		||||
- `dkcp` Pause services
 | 
			
		||||
- `dkcP` Unpause services
 | 
			
		||||
- `dkcpl` Pull service images
 | 
			
		||||
- `dkcph` Push service images
 | 
			
		||||
- `dkcps` List containers
 | 
			
		||||
- `dkcr` Run a one-off command
 | 
			
		||||
- `dkcR` Run a one-off command and remove container after run.
 | 
			
		||||
- `dkcrm` Remove stopped containers
 | 
			
		||||
- `dkcs` Start services
 | 
			
		||||
- `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
 | 
			
		||||
- `dkcV` Show the Docker-Compose version information
 | 
			
		||||
- `dkcx` Stop services
 | 
			
		||||
 | 
			
		||||
## Support
 | 
			
		||||
 | 
			
		||||
If you're having problems, use the [Prezto issue tracker][2].
 | 
			
		||||
 | 
			
		||||
## Acknowledgements
 | 
			
		||||
 | 
			
		||||
This module is a copy of [akarzim/zsh-docker-aliases][3] by [François Vantomme][4] (MIT License).
 | 
			
		||||
 | 
			
		||||
[1]: https://www.docker.com/
 | 
			
		||||
[2]: https://github.com/zsh-users/prezto/issues
 | 
			
		||||
[3]: https://github.com/akarzim/zsh-docker-aliases
 | 
			
		||||
[4]: https://github.com/akarzim
 | 
			
		||||
@@ -1,177 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Defines Docker aliases.
 | 
			
		||||
#
 | 
			
		||||
# Author:
 | 
			
		||||
#   François Vantomme <akarzim@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Aliases
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Docker
 | 
			
		||||
alias dk='docker'
 | 
			
		||||
alias dka='docker attach'
 | 
			
		||||
alias dkb='docker build'
 | 
			
		||||
alias dkd='docker diff'
 | 
			
		||||
alias dkdf='docker system df'
 | 
			
		||||
alias dke='docker exec'
 | 
			
		||||
alias dkE='docker exec -it'
 | 
			
		||||
alias dkh='docker history'
 | 
			
		||||
alias dki='docker images'
 | 
			
		||||
alias dkin='docker inspect'
 | 
			
		||||
alias dkim='docker import'
 | 
			
		||||
alias dkk='docker kill'
 | 
			
		||||
alias dkl='docker logs'
 | 
			
		||||
alias dkli='docker login'
 | 
			
		||||
alias dklo='docker logout'
 | 
			
		||||
alias dkls='docker ps'
 | 
			
		||||
alias dkp='docker pause'
 | 
			
		||||
alias dkP='docker unpause'
 | 
			
		||||
alias dkpl='docker pull'
 | 
			
		||||
alias dkph='docker push'
 | 
			
		||||
alias dkps='docker ps'
 | 
			
		||||
alias dkpsa='docker ps -a'
 | 
			
		||||
alias dkr='docker run'
 | 
			
		||||
alias dkR='docker run -it --rm'
 | 
			
		||||
alias dkRe='docker run -it --rm --entrypoint /bin/bash'
 | 
			
		||||
alias dkRM='docker system prune'
 | 
			
		||||
alias dkrm='docker rm'
 | 
			
		||||
alias dkrmi='docker rmi'
 | 
			
		||||
alias dkrn='docker rename'
 | 
			
		||||
alias dks='docker start'
 | 
			
		||||
alias dkS='docker restart'
 | 
			
		||||
alias dkss='docker stats'
 | 
			
		||||
alias dksv='docker save'
 | 
			
		||||
alias dkt='docker tag'
 | 
			
		||||
alias dktop='docker top'
 | 
			
		||||
alias dkup='docker update'
 | 
			
		||||
alias dkV='docker volume'
 | 
			
		||||
alias dkv='docker version'
 | 
			
		||||
alias dkw='docker wait'
 | 
			
		||||
alias dkx='docker stop'
 | 
			
		||||
 | 
			
		||||
## Container (C)
 | 
			
		||||
alias dkC='docker container'
 | 
			
		||||
alias dkCa='docker container attach'
 | 
			
		||||
alias dkCcp='docker container cp'
 | 
			
		||||
alias dkCd='docker container diff'
 | 
			
		||||
alias dkCe='docker container exec'
 | 
			
		||||
alias dkCin='docker container inspect'
 | 
			
		||||
alias dkCk='docker container kill'
 | 
			
		||||
alias dkCl='docker container logs'
 | 
			
		||||
alias dkCls='docker container ls'
 | 
			
		||||
alias dkCp='docker container pause'
 | 
			
		||||
alias dkCpr='docker container prune'
 | 
			
		||||
alias dkCrn='docker container rename'
 | 
			
		||||
alias dkCS='docker container restart'
 | 
			
		||||
alias dkCrm='docker container rm'
 | 
			
		||||
alias dkCr='docker container run'
 | 
			
		||||
alias dkCR='docker container run -it --rm'
 | 
			
		||||
alias dkCRe='docker container run -it --rm --entrypoint /bin/bash'
 | 
			
		||||
alias dkCs='docker container start'
 | 
			
		||||
alias dkCss='docker container stats'
 | 
			
		||||
alias dkCx='docker container stop'
 | 
			
		||||
alias dkCtop='docker container top'
 | 
			
		||||
alias dkCP='docker container unpause'
 | 
			
		||||
alias dkCup='docker container update'
 | 
			
		||||
alias dkCw='docker container wait'
 | 
			
		||||
 | 
			
		||||
## Image (I)
 | 
			
		||||
alias dkI='docker image'
 | 
			
		||||
alias dkIb='docker image build'
 | 
			
		||||
alias dkIh='docker image history'
 | 
			
		||||
alias dkIim='docker image import'
 | 
			
		||||
alias dkIin='docker image inspect'
 | 
			
		||||
alias dkIls='docker image ls'
 | 
			
		||||
alias dkIpr='docker image prune'
 | 
			
		||||
alias dkIpl='docker image pull'
 | 
			
		||||
alias dkIph='docker image push'
 | 
			
		||||
alias dkIrm='docker image rm'
 | 
			
		||||
alias dkIsv='docker image save'
 | 
			
		||||
alias dkIt='docker image tag'
 | 
			
		||||
 | 
			
		||||
## Volume (V)
 | 
			
		||||
alias dkV='docker volume'
 | 
			
		||||
alias dkVin='docker volume inspect'
 | 
			
		||||
alias dkVls='docker volume ls'
 | 
			
		||||
alias dkVpr='docker volume prune'
 | 
			
		||||
alias dkVrm='docker volume rm'
 | 
			
		||||
 | 
			
		||||
## Network (N)
 | 
			
		||||
alias dkN='docker network'
 | 
			
		||||
alias dkNs='docker network connect'
 | 
			
		||||
alias dkNx='docker network disconnect'
 | 
			
		||||
alias dkNin='docker network inspect'
 | 
			
		||||
alias dkNls='docker network ls'
 | 
			
		||||
alias dkNpr='docker network prune'
 | 
			
		||||
alias dkNrm='docker network rm'
 | 
			
		||||
 | 
			
		||||
## System (Y)
 | 
			
		||||
alias dkY='docker system'
 | 
			
		||||
alias dkYdf='docker system df'
 | 
			
		||||
alias dkYpr='docker system prune'
 | 
			
		||||
 | 
			
		||||
## Stack (K)
 | 
			
		||||
alias dkK='docker stack'
 | 
			
		||||
alias dkKls='docker stack ls'
 | 
			
		||||
alias dkKps='docker stack ps'
 | 
			
		||||
alias dkKrm='docker stack rm'
 | 
			
		||||
 | 
			
		||||
## Swarm (W)
 | 
			
		||||
alias dkW='docker swarm'
 | 
			
		||||
 | 
			
		||||
## CleanUp (rm)
 | 
			
		||||
# Clean up exited containers (docker < 1.13)
 | 
			
		||||
alias dkrmC='docker rm $(docker ps -qaf status=exited)'
 | 
			
		||||
# Clean up dangling images (docker < 1.13)
 | 
			
		||||
alias dkrmI='docker rmi $(docker images -qf dangling=true)'
 | 
			
		||||
# Clean up dangling volumes (docker < 1.13)
 | 
			
		||||
alias dkrmV='docker volume rm $(docker volume ls -qf dangling=true)'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Docker Machine (m)
 | 
			
		||||
alias dkm='docker-machine'
 | 
			
		||||
alias dkma='docker-machine active'
 | 
			
		||||
alias dkmcp='docker-machine scp'
 | 
			
		||||
alias dkmin='docker-machine inspect'
 | 
			
		||||
alias dkmip='docker-machine ip'
 | 
			
		||||
alias dkmk='docker-machine kill'
 | 
			
		||||
alias dkmls='docker-machine ls'
 | 
			
		||||
alias dkmpr='docker-machine provision'
 | 
			
		||||
alias dkmps='docker-machine ps'
 | 
			
		||||
alias dkmrg='docker-machine regenerate-certs'
 | 
			
		||||
alias dkmrm='docker-machine rm'
 | 
			
		||||
alias dkms='docker-machine start'
 | 
			
		||||
alias dkmsh='docker-machine ssh'
 | 
			
		||||
alias dkmst='docker-machine status'
 | 
			
		||||
alias dkmS='docker-machine restart'
 | 
			
		||||
alias dkmu='docker-machine url'
 | 
			
		||||
alias dkmup='docker-machine upgrade'
 | 
			
		||||
alias dkmv='docker-machine version'
 | 
			
		||||
alias dkmx='docker-machine stop'
 | 
			
		||||
 | 
			
		||||
# Docker Compose (c)
 | 
			
		||||
alias dkc='docker compose'
 | 
			
		||||
alias dkcb='docker compose build'
 | 
			
		||||
alias dkcB='docker compose build --no-cache'
 | 
			
		||||
alias dkcd='docker compose down'
 | 
			
		||||
alias dkce='docker compose exec'
 | 
			
		||||
alias dkck='docker compose kill'
 | 
			
		||||
alias dkcl='docker compose logs'
 | 
			
		||||
alias dkcls='docker compose ps'
 | 
			
		||||
alias dkcp='docker compose pause'
 | 
			
		||||
alias dkcP='docker compose unpause'
 | 
			
		||||
alias dkcpl='docker compose pull'
 | 
			
		||||
alias dkcph='docker compose push'
 | 
			
		||||
alias dkcps='docker compose ps'
 | 
			
		||||
alias dkcr='docker compose run'
 | 
			
		||||
alias dkcR='docker compose run --rm'
 | 
			
		||||
alias dkcrm='docker compose rm'
 | 
			
		||||
alias dkcs='docker compose start'
 | 
			
		||||
alias dkcsc='docker compose scale'
 | 
			
		||||
alias dkcS='docker compose restart'
 | 
			
		||||
alias dkcu='docker compose up'
 | 
			
		||||
alias dkcU='docker compose up -d'
 | 
			
		||||
alias dkcv='docker compose version'
 | 
			
		||||
alias dkcx='docker compose stop'
 | 
			
		||||
@@ -1,57 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Defines Docker aliases.
 | 
			
		||||
#
 | 
			
		||||
# Author:
 | 
			
		||||
#   François Vantomme <akarzim@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Return if requirements are not found.
 | 
			
		||||
if (( ! $+commands[docker] )); then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Functions
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Set Docker Machine environment
 | 
			
		||||
function dkme {
 | 
			
		||||
  if (( ! $+commands[docker-machine] )); then
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  eval $(docker-machine env $1)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Set Docker Machine default machine
 | 
			
		||||
function dkmd {
 | 
			
		||||
  if (( ! $+commands[docker-machine] )); then
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  pushd ~/.docker/machine/machines
 | 
			
		||||
 | 
			
		||||
  if [[ ! -d $1 ]]; then
 | 
			
		||||
    echo "Docker machine '$1' does not exists. Abort."
 | 
			
		||||
    popd
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [[ -L default ]]; then
 | 
			
		||||
    eval $(rm -f default)
 | 
			
		||||
  elif [[ -d default ]]; then
 | 
			
		||||
    echo "A default machine already exists. Abort."
 | 
			
		||||
    popd
 | 
			
		||||
    return 1
 | 
			
		||||
  elif [[ -e default ]]; then
 | 
			
		||||
    echo "A file named 'default' already exists. Abort."
 | 
			
		||||
    popd
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  eval $(ln -s $1 default)
 | 
			
		||||
  popd
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Source module files.
 | 
			
		||||
source "${0:h}/alias.zsh"
 | 
			
		||||
@@ -1,8 +1,10 @@
 | 
			
		||||
# 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.
 | 
			
		||||
@@ -18,20 +20,23 @@ Defines [_dpkg_][1] aliases and functions.
 | 
			
		||||
- `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]: https://wiki.debian.org/Teams/Dpkg
 | 
			
		||||
[1]: http://wiki.debian.org/Teams/Dpkg
 | 
			
		||||
[2]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,6 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function deb-clone {
 | 
			
		||||
 | 
			
		||||
local clone_script="${0}.sh"
 | 
			
		||||
local package_list=$(
 | 
			
		||||
  perl \
 | 
			
		||||
@@ -26,4 +24,3 @@ print '#!/bin/sh\n' > "$clone_script"
 | 
			
		||||
print "aptitude install ${package_list}\n" >> "$clone_script"
 | 
			
		||||
chmod +x "$clone_script"
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -7,8 +7,6 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function deb-history {
 | 
			
		||||
 | 
			
		||||
case "$1" in
 | 
			
		||||
  (install)
 | 
			
		||||
    zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*)
 | 
			
		||||
@@ -37,4 +35,3 @@ EOF
 | 
			
		||||
  ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,6 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function deb-kbuild {
 | 
			
		||||
 | 
			
		||||
make-kpkg clean
 | 
			
		||||
MAKEFLAGS='' time fakeroot make-kpkg \
 | 
			
		||||
  --append-to-version '-custom' \
 | 
			
		||||
@@ -15,4 +13,3 @@ MAKEFLAGS='' time fakeroot make-kpkg \
 | 
			
		||||
  kernel_image \
 | 
			
		||||
  kernel_headers
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -54,4 +54,5 @@ fi
 | 
			
		||||
alias deb-build='time dpkg-buildpackage -rfakeroot -us -uc'
 | 
			
		||||
 | 
			
		||||
# Removes all kernel images and headers, except for the ones in use.
 | 
			
		||||
alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n$(uname -r)))"'
 | 
			
		||||
alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))"'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,102 +1,63 @@
 | 
			
		||||
# Editor
 | 
			
		||||
Editor
 | 
			
		||||
======
 | 
			
		||||
 | 
			
		||||
Sets editor specific key bindings options and variables.
 | 
			
		||||
Sets key bindings.
 | 
			
		||||
 | 
			
		||||
## Options
 | 
			
		||||
 | 
			
		||||
- `BEEP` beep on error in line editor.
 | 
			
		||||
 | 
			
		||||
## Variables
 | 
			
		||||
 | 
			
		||||
- `WORDCHARS` treat a given set of characters as part of a word.
 | 
			
		||||
 | 
			
		||||
## Settings
 | 
			
		||||
Settings
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
### Key bindings
 | 
			
		||||
 | 
			
		||||
To enable key bindings, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_,
 | 
			
		||||
and replace `'<bindings>'` with `'emacs'` or `'vi'`.
 | 
			
		||||
To enable key bindings, add the following to *zpreztorc*, and replace 'bindings'
 | 
			
		||||
with 'emacs' or 'vi'.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:editor' key-bindings '<bindings>'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:editor' key-bindings 'bindings'
 | 
			
		||||
 | 
			
		||||
### Dot Expansion
 | 
			
		||||
 | 
			
		||||
To enable the auto conversion of .... to ../.., add the following to
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
 | 
			
		||||
*zpreztorc*.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:editor' dot-expansion 'yes'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:editor' dot-expansion 'yes'
 | 
			
		||||
 | 
			
		||||
### PS Context
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:editor:info:keymap:primary' format '>>>'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:editor:info:keymap:primary' format '>>>'
 | 
			
		||||
 | 
			
		||||
To indicate when the editor is in the primary keymap (emacs or viins) insert
 | 
			
		||||
mode, add the following to your `theme_prompt_setup` function.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I'
 | 
			
		||||
 | 
			
		||||
To indicate when the editor is in the primary keymap (emacs or viins) overwrite
 | 
			
		||||
mode, add the following to your `theme_prompt_setup` function.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O'
 | 
			
		||||
 | 
			
		||||
To indicate when the editor is in the alternate keymap (vicmd), add the
 | 
			
		||||
following to your `theme_prompt_setup` function.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<'
 | 
			
		||||
 | 
			
		||||
To indicate when the editor is completing, add the following to your
 | 
			
		||||
`theme_prompt_setup` function.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:editor:info:completing' format '...'
 | 
			
		||||
```
 | 
			
		||||
    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` and call `editor-info` in the
 | 
			
		||||
`prompt_name_preexec` hook function.
 | 
			
		||||
 | 
			
		||||
## Convenience Functions
 | 
			
		||||
Authors
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
### bindkey-all
 | 
			
		||||
*The authors of this module should be contacted via the [issue tracker][1].*
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
  - [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
names of each of the keymaps, and just run the command for each keymap.
 | 
			
		||||
[1]: https://github.com/sorin-ionescu/oh-my-zsh/issues
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
_The authors of this module should be contacted via the [issue tracker][1]._
 | 
			
		||||
 | 
			
		||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
[1]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,8 @@ fi
 | 
			
		||||
# Options
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
setopt BEEP                     # Beep on error in line editor.
 | 
			
		||||
# Beep on error in line editor.
 | 
			
		||||
setopt BEEP
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Variables
 | 
			
		||||
@@ -27,44 +28,40 @@ WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
 | 
			
		||||
zmodload zsh/terminfo
 | 
			
		||||
typeset -gA key_info
 | 
			
		||||
key_info=(
 | 
			
		||||
  'Control'         '\C-'
 | 
			
		||||
  'ControlLeft'     '\e[1;5D \e[5D \e\e[D \eOd'
 | 
			
		||||
  'ControlRight'    '\e[1;5C \e[5C \e\e[C \eOc'
 | 
			
		||||
  'ControlPageUp'   '\e[5;5~'
 | 
			
		||||
  'ControlPageDown' '\e[6;5~'
 | 
			
		||||
  'Escape'       '\e'
 | 
			
		||||
  'Meta'         '\M-'
 | 
			
		||||
  'Backspace'    "^?"
 | 
			
		||||
  'Delete'       "^[[3~"
 | 
			
		||||
  'F1'           "$terminfo[kf1]"
 | 
			
		||||
  'F2'           "$terminfo[kf2]"
 | 
			
		||||
  'F3'           "$terminfo[kf3]"
 | 
			
		||||
  'F4'           "$terminfo[kf4]"
 | 
			
		||||
  'F5'           "$terminfo[kf5]"
 | 
			
		||||
  'F6'           "$terminfo[kf6]"
 | 
			
		||||
  'F7'           "$terminfo[kf7]"
 | 
			
		||||
  'F8'           "$terminfo[kf8]"
 | 
			
		||||
  'F9'           "$terminfo[kf9]"
 | 
			
		||||
  'F10'          "$terminfo[kf10]"
 | 
			
		||||
  'F11'          "$terminfo[kf11]"
 | 
			
		||||
  'F12'          "$terminfo[kf12]"
 | 
			
		||||
  'Insert'       "$terminfo[kich1]"
 | 
			
		||||
  'Home'         "$terminfo[khome]"
 | 
			
		||||
  'PageUp'       "$terminfo[kpp]"
 | 
			
		||||
  'End'          "$terminfo[kend]"
 | 
			
		||||
  'PageDown'     "$terminfo[knp]"
 | 
			
		||||
  'Up'           "$terminfo[kcuu1]"
 | 
			
		||||
  'Left'         "$terminfo[kcub1]"
 | 
			
		||||
  'Down'         "$terminfo[kcud1]"
 | 
			
		||||
  'Right'        "$terminfo[kcuf1]"
 | 
			
		||||
  'BackTab'      "$terminfo[kcbt]"
 | 
			
		||||
  'Control'   '\C-'
 | 
			
		||||
  'Escape'    '\e'
 | 
			
		||||
  'Meta'      '\M-'
 | 
			
		||||
  'Backspace' "^?"
 | 
			
		||||
  'Delete'    "^[[3~"
 | 
			
		||||
  'F1'        "$terminfo[kf1]"
 | 
			
		||||
  'F2'        "$terminfo[kf2]"
 | 
			
		||||
  'F3'        "$terminfo[kf3]"
 | 
			
		||||
  'F4'        "$terminfo[kf4]"
 | 
			
		||||
  'F5'        "$terminfo[kf5]"
 | 
			
		||||
  'F6'        "$terminfo[kf6]"
 | 
			
		||||
  'F7'        "$terminfo[kf7]"
 | 
			
		||||
  'F8'        "$terminfo[kf8]"
 | 
			
		||||
  'F9'        "$terminfo[kf9]"
 | 
			
		||||
  'F10'       "$terminfo[kf10]"
 | 
			
		||||
  'F11'       "$terminfo[kf11]"
 | 
			
		||||
  'F12'       "$terminfo[kf12]"
 | 
			
		||||
  'Insert'    "$terminfo[kich1]"
 | 
			
		||||
  'Home'      "$terminfo[khome]"
 | 
			
		||||
  'PageUp'    "$terminfo[kpp]"
 | 
			
		||||
  'End'       "$terminfo[kend]"
 | 
			
		||||
  'PageDown'  "$terminfo[knp]"
 | 
			
		||||
  'Up'        "$terminfo[kcuu1]"
 | 
			
		||||
  'Left'      "$terminfo[kcub1]"
 | 
			
		||||
  'Down'      "$terminfo[kcud1]"
 | 
			
		||||
  'Right'     "$terminfo[kcuf1]"
 | 
			
		||||
  'BackTab'   "$terminfo[kcbt]"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Set empty $key_info values to an invalid UTF-8 sequence to induce silent
 | 
			
		||||
# bindkey failure.
 | 
			
		||||
for key in "${(k)key_info[@]}"; do
 | 
			
		||||
  if [[ -z "$key_info[$key]" ]]; then
 | 
			
		||||
    key_info[$key]='<27>'
 | 
			
		||||
    key_info["$key"]='<27>'
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
@@ -79,97 +76,61 @@ zle -N edit-command-line
 | 
			
		||||
#
 | 
			
		||||
# Functions
 | 
			
		||||
#
 | 
			
		||||
# Runs bindkey but for all of the keymaps. Running it with no arguments will
 | 
			
		||||
# print out the mappings for all of the keymaps.
 | 
			
		||||
function bindkey-all {
 | 
			
		||||
  local keymap=''
 | 
			
		||||
  for keymap in $(bindkey -l); do
 | 
			
		||||
    [[ "$#" -eq 0 ]] && printf "#### %s\n" "${keymap}" 1>&2
 | 
			
		||||
    bindkey -M "${keymap}" "$@"
 | 
			
		||||
  done
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Exposes information about the Zsh Line Editor via the $editor_info associative
 | 
			
		||||
# array.
 | 
			
		||||
function editor-info {
 | 
			
		||||
  # Ensure that we're going to set the editor-info for prompts that
 | 
			
		||||
  # are prezto managed and/or compatible.
 | 
			
		||||
  if zstyle -t ':prezto:module:prompt' managed; then
 | 
			
		||||
    # Clean up previous $editor_info.
 | 
			
		||||
    unset editor_info
 | 
			
		||||
    typeset -gA editor_info
 | 
			
		||||
  # Clean up previous $editor_info.
 | 
			
		||||
  unset editor_info
 | 
			
		||||
  typeset -gA editor_info
 | 
			
		||||
 | 
			
		||||
    if [[ "$KEYMAP" == 'vicmd' ]]; then
 | 
			
		||||
      zstyle -s ':prezto:module:editor:info:keymap:alternate' format 'REPLY'
 | 
			
		||||
      editor_info[keymap]="$REPLY"
 | 
			
		||||
  if [[ "$KEYMAP" == 'vicmd' ]]; then
 | 
			
		||||
    zstyle -s ':prezto:module:editor:info:keymap:alternate' format 'REPLY'
 | 
			
		||||
    editor_info[keymap]="$REPLY"
 | 
			
		||||
  else
 | 
			
		||||
    zstyle -s ':prezto:module:editor:info:keymap:primary' format 'REPLY'
 | 
			
		||||
    editor_info[keymap]="$REPLY"
 | 
			
		||||
 | 
			
		||||
    if [[ "$ZLE_STATE" == *overwrite* ]]; then
 | 
			
		||||
      zstyle -s ':prezto:module:editor:info:keymap:primary:overwrite' format 'REPLY'
 | 
			
		||||
      editor_info[overwrite]="$REPLY"
 | 
			
		||||
    else
 | 
			
		||||
      zstyle -s ':prezto:module:editor:info:keymap:primary' format 'REPLY'
 | 
			
		||||
      editor_info[keymap]="$REPLY"
 | 
			
		||||
 | 
			
		||||
      if [[ "$ZLE_STATE" == *overwrite* ]]; then
 | 
			
		||||
        zstyle -s ':prezto:module:editor:info:keymap:primary:overwrite' format 'REPLY'
 | 
			
		||||
        editor_info[overwrite]="$REPLY"
 | 
			
		||||
      else
 | 
			
		||||
        zstyle -s ':prezto:module:editor:info:keymap:primary:insert' format 'REPLY'
 | 
			
		||||
        editor_info[overwrite]="$REPLY"
 | 
			
		||||
      fi
 | 
			
		||||
      zstyle -s ':prezto:module:editor:info:keymap:primary:insert' format 'REPLY'
 | 
			
		||||
      editor_info[overwrite]="$REPLY"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    unset REPLY
 | 
			
		||||
    zle zle-reset-prompt
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  unset REPLY
 | 
			
		||||
 | 
			
		||||
  zle reset-prompt
 | 
			
		||||
  zle -R
 | 
			
		||||
}
 | 
			
		||||
zle -N editor-info
 | 
			
		||||
 | 
			
		||||
# Reset the prompt based on the current context and
 | 
			
		||||
# the ps-context option.
 | 
			
		||||
function zle-reset-prompt {
 | 
			
		||||
  if zstyle -t ':prezto:module:editor' ps-context; then
 | 
			
		||||
    # If we aren't within one of the specified contexts, then we want to reset
 | 
			
		||||
    # the prompt with the appropriate editor_info[keymap] if there is one.
 | 
			
		||||
    if [[ $CONTEXT != (select|cont) ]]; then
 | 
			
		||||
      zle reset-prompt
 | 
			
		||||
      zle -R
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    zle reset-prompt
 | 
			
		||||
    zle -R
 | 
			
		||||
# Ensures that $terminfo values are valid and updates editor information when
 | 
			
		||||
# the keymap changes.
 | 
			
		||||
function zle-keymap-select zle-line-init zle-line-finish {
 | 
			
		||||
  # The terminal must be in application mode when ZLE is active for $terminfo
 | 
			
		||||
  # values to be valid.
 | 
			
		||||
  if (( $+terminfo[smkx] && $+terminfo[rmkx] )); then
 | 
			
		||||
    case "$0" in
 | 
			
		||||
      (zle-line-init)
 | 
			
		||||
        # Enable terminal application mode.
 | 
			
		||||
        echoti smkx
 | 
			
		||||
      ;;
 | 
			
		||||
      (zle-line-finish)
 | 
			
		||||
        # Disable terminal application mode.
 | 
			
		||||
        echoti rmkx
 | 
			
		||||
      ;;
 | 
			
		||||
    esac
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
zle -N zle-reset-prompt
 | 
			
		||||
 | 
			
		||||
# Updates editor information when the keymap changes.
 | 
			
		||||
function zle-keymap-select {
 | 
			
		||||
  # Update editor information.
 | 
			
		||||
  zle editor-info
 | 
			
		||||
}
 | 
			
		||||
zle -N zle-keymap-select
 | 
			
		||||
 | 
			
		||||
# Enables terminal application mode and updates editor information.
 | 
			
		||||
function zle-line-init {
 | 
			
		||||
  # The terminal must be in application mode when ZLE is active for $terminfo
 | 
			
		||||
  # values to be valid.
 | 
			
		||||
  if (( $+terminfo[smkx] )); then
 | 
			
		||||
    # Enable terminal application mode.
 | 
			
		||||
    echoti smkx
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Update editor information.
 | 
			
		||||
  zle editor-info
 | 
			
		||||
}
 | 
			
		||||
zle -N zle-line-init
 | 
			
		||||
 | 
			
		||||
# Disables terminal application mode and updates editor information.
 | 
			
		||||
function zle-line-finish {
 | 
			
		||||
  # The terminal must be in application mode when ZLE is active for $terminfo
 | 
			
		||||
  # values to be valid.
 | 
			
		||||
  if (( $+terminfo[rmkx] )); then
 | 
			
		||||
    # Disable terminal application mode.
 | 
			
		||||
    echoti rmkx
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Update editor information.
 | 
			
		||||
  zle editor-info
 | 
			
		||||
}
 | 
			
		||||
zle -N zle-line-finish
 | 
			
		||||
zle -N zle-line-init
 | 
			
		||||
 | 
			
		||||
# Toggles emacs overwrite mode and updates editor information.
 | 
			
		||||
function overwrite-mode {
 | 
			
		||||
@@ -214,14 +175,6 @@ zle -N expand-dot-to-parent-directory-path
 | 
			
		||||
function expand-or-complete-with-indicator {
 | 
			
		||||
  local indicator
 | 
			
		||||
  zstyle -s ':prezto:module:editor:info:completing' format 'indicator'
 | 
			
		||||
 | 
			
		||||
  # This is included to work around a bug in zsh which shows up when interacting
 | 
			
		||||
  # with multi-line prompts.
 | 
			
		||||
  if [[ -z "$indicator" ]]; then
 | 
			
		||||
    zle expand-or-complete
 | 
			
		||||
    return
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  print -Pn "$indicator"
 | 
			
		||||
  zle expand-or-complete
 | 
			
		||||
  zle redisplay
 | 
			
		||||
@@ -237,35 +190,6 @@ function prepend-sudo {
 | 
			
		||||
}
 | 
			
		||||
zle -N prepend-sudo
 | 
			
		||||
 | 
			
		||||
# Expand aliases
 | 
			
		||||
function glob-alias {
 | 
			
		||||
  zle _expand_alias
 | 
			
		||||
  zle expand-word
 | 
			
		||||
  zle magic-space
 | 
			
		||||
}
 | 
			
		||||
zle -N glob-alias
 | 
			
		||||
 | 
			
		||||
# Toggle the comment character at the start of the line. This is meant to work
 | 
			
		||||
# around a buggy implementation of pound-insert in zsh.
 | 
			
		||||
#
 | 
			
		||||
# This is currently only used for the emacs keys because vi-pound-insert has
 | 
			
		||||
# been reported to work properly.
 | 
			
		||||
function pound-toggle {
 | 
			
		||||
  if [[ "$BUFFER" = '#'* ]]; then
 | 
			
		||||
    # Because of an oddity in how zsh handles the cursor when the buffer size
 | 
			
		||||
    # changes, we need to make this check before we modify the buffer and let
 | 
			
		||||
    # zsh handle moving the cursor back if it's past the end of the line.
 | 
			
		||||
    if [[ $CURSOR != $#BUFFER ]]; then
 | 
			
		||||
      (( CURSOR -= 1 ))
 | 
			
		||||
    fi
 | 
			
		||||
    BUFFER="${BUFFER:1}"
 | 
			
		||||
  else
 | 
			
		||||
    BUFFER="#$BUFFER"
 | 
			
		||||
    (( CURSOR += 1 ))
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
zle -N pound-toggle
 | 
			
		||||
 | 
			
		||||
# Reset to default key bindings.
 | 
			
		||||
bindkey -d
 | 
			
		||||
 | 
			
		||||
@@ -273,12 +197,10 @@ bindkey -d
 | 
			
		||||
# Emacs Key Bindings
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
for key in "$key_info[Escape]"{B,b} "${(s: :)key_info[ControlLeft]}" \
 | 
			
		||||
  "${key_info[Escape]}${key_info[Left]}"
 | 
			
		||||
  bindkey -M emacs "$key" emacs-backward-word
 | 
			
		||||
for key in "$key_info[Escape]"{F,f} "${(s: :)key_info[ControlRight]}" \
 | 
			
		||||
  "${key_info[Escape]}${key_info[Right]}"
 | 
			
		||||
  bindkey -M emacs "$key" emacs-forward-word
 | 
			
		||||
for key ("$key_info[Escape]"{B,b}) bindkey -M emacs "$key" emacs-backward-word
 | 
			
		||||
for key ("$key_info[Escape]"{F,f}) bindkey -M emacs "$key" emacs-forward-word
 | 
			
		||||
bindkey -M emacs "$key_info[Escape]$key_info[Left]" emacs-backward-word
 | 
			
		||||
bindkey -M emacs "$key_info[Escape]$key_info[Right]" emacs-forward-word
 | 
			
		||||
 | 
			
		||||
# Kill to the beginning of the line.
 | 
			
		||||
for key in "$key_info[Escape]"{K,k}
 | 
			
		||||
@@ -303,22 +225,15 @@ if (( $+widgets[history-incremental-pattern-search-backward] )); then
 | 
			
		||||
    history-incremental-pattern-search-forward
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Toggle comment at the start of the line. Note that we use pound-toggle which
 | 
			
		||||
# is similar to pount insert, but meant to work around some issues that were
 | 
			
		||||
# being seen in iTerm.
 | 
			
		||||
bindkey -M emacs "$key_info[Escape];" pound-toggle
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Vi Key Bindings
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Edit command in an external editor emacs style (v is used for visual mode)
 | 
			
		||||
bindkey -M vicmd "$key_info[Control]X$key_info[Control]E" edit-command-line
 | 
			
		||||
# Edit command in an external editor.
 | 
			
		||||
bindkey -M vicmd "v" edit-command-line
 | 
			
		||||
 | 
			
		||||
# Undo/Redo
 | 
			
		||||
bindkey -M vicmd "u" undo
 | 
			
		||||
bindkey -M viins "$key_info[Control]_" undo
 | 
			
		||||
bindkey -M vicmd "$key_info[Control]R" redo
 | 
			
		||||
 | 
			
		||||
if (( $+widgets[history-incremental-pattern-search-backward] )); then
 | 
			
		||||
@@ -329,61 +244,14 @@ else
 | 
			
		||||
  bindkey -M vicmd "/" history-incremental-search-forward
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Toggle comment at the start of the line.
 | 
			
		||||
bindkey -M vicmd "#" vi-pound-insert
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Emacs and Vi Key Bindings
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Unbound keys in vicmd and viins mode will cause really odd things to happen
 | 
			
		||||
# such as the casing of all the characters you have typed changing or other
 | 
			
		||||
# undefined things. In emacs mode they just insert a tilde, but bind these keys
 | 
			
		||||
# in the main keymap to a noop op so if there is no keybind in the users mode
 | 
			
		||||
# it will fall back and do nothing.
 | 
			
		||||
function _prezto-zle-noop {  ; }
 | 
			
		||||
zle -N _prezto-zle-noop
 | 
			
		||||
local -a unbound_keys
 | 
			
		||||
unbound_keys=(
 | 
			
		||||
  "${key_info[F1]}"
 | 
			
		||||
  "${key_info[F2]}"
 | 
			
		||||
  "${key_info[F3]}"
 | 
			
		||||
  "${key_info[F4]}"
 | 
			
		||||
  "${key_info[F5]}"
 | 
			
		||||
  "${key_info[F6]}"
 | 
			
		||||
  "${key_info[F7]}"
 | 
			
		||||
  "${key_info[F8]}"
 | 
			
		||||
  "${key_info[F9]}"
 | 
			
		||||
  "${key_info[F10]}"
 | 
			
		||||
  "${key_info[F11]}"
 | 
			
		||||
  "${key_info[F12]}"
 | 
			
		||||
  "${key_info[PageUp]}"
 | 
			
		||||
  "${key_info[PageDown]}"
 | 
			
		||||
  "${key_info[ControlPageUp]}"
 | 
			
		||||
  "${key_info[ControlPageDown]}"
 | 
			
		||||
)
 | 
			
		||||
for keymap in $unbound_keys; do
 | 
			
		||||
  bindkey -M viins "${keymap}" _prezto-zle-noop
 | 
			
		||||
  bindkey -M vicmd "${keymap}" _prezto-zle-noop
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# Keybinds for all keymaps
 | 
			
		||||
for keymap in 'emacs' 'viins' 'vicmd'; do
 | 
			
		||||
for keymap in 'emacs' 'viins'; do
 | 
			
		||||
  bindkey -M "$keymap" "$key_info[Home]" beginning-of-line
 | 
			
		||||
  bindkey -M "$keymap" "$key_info[End]" end-of-line
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# Keybinds for all vi keymaps
 | 
			
		||||
for keymap in viins vicmd; do
 | 
			
		||||
  # Ctrl + Left and Ctrl + Right bindings to forward/backward word
 | 
			
		||||
  for key in "${(s: :)key_info[ControlLeft]}"
 | 
			
		||||
    bindkey -M "$keymap" "$key" vi-backward-word
 | 
			
		||||
  for key in "${(s: :)key_info[ControlRight]}"
 | 
			
		||||
    bindkey -M "$keymap" "$key" vi-forward-word
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# Keybinds for emacs and vi insert mode
 | 
			
		||||
for keymap in 'emacs' 'viins'; do
 | 
			
		||||
  bindkey -M "$keymap" "$key_info[Insert]" overwrite-mode
 | 
			
		||||
  bindkey -M "$keymap" "$key_info[Delete]" delete-char
 | 
			
		||||
  bindkey -M "$keymap" "$key_info[Backspace]" backward-delete-char
 | 
			
		||||
@@ -426,14 +294,8 @@ for keymap in 'emacs' 'viins'; do
 | 
			
		||||
 | 
			
		||||
  # Insert 'sudo ' at the beginning of the line.
 | 
			
		||||
  bindkey -M "$keymap" "$key_info[Control]X$key_info[Control]S" prepend-sudo
 | 
			
		||||
 | 
			
		||||
  # control-space expands all aliases, including global
 | 
			
		||||
  bindkey -M "$keymap" "$key_info[Control] " glob-alias
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# Delete key deletes character in vimcmd cmd mode instead of weird default functionality
 | 
			
		||||
bindkey -M vicmd "$key_info[Delete]" delete-char
 | 
			
		||||
 | 
			
		||||
# Do not expand .... to ../.. during incremental search.
 | 
			
		||||
if zstyle -t ':prezto:module:editor' dot-expansion; then
 | 
			
		||||
  bindkey -M isearch . self-insert 2> /dev/null
 | 
			
		||||
@@ -453,4 +315,5 @@ else
 | 
			
		||||
  print "prezto: editor: invalid key bindings: $key_bindings" >&2
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
unset key{,map,_bindings}
 | 
			
		||||
unset key{,map,bindings}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,10 @@
 | 
			
		||||
# Emacs
 | 
			
		||||
Emacs
 | 
			
		||||
=====
 | 
			
		||||
 | 
			
		||||
Enables Emacs dependency management.
 | 
			
		||||
 | 
			
		||||
## Dependency management
 | 
			
		||||
Dependency management
 | 
			
		||||
---------------------
 | 
			
		||||
 | 
			
		||||
[Carton][1] installs and manages Emacs packages for Emacs package development
 | 
			
		||||
and Emacs configuration.
 | 
			
		||||
@@ -10,20 +12,22 @@ 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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,52 +1,26 @@
 | 
			
		||||
# Environment
 | 
			
		||||
Environment
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
Sets general shell options and defines environment variables.
 | 
			
		||||
 | 
			
		||||
This module must be loaded first.
 | 
			
		||||
 | 
			
		||||
## Contributors
 | 
			
		||||
Environment Variables
 | 
			
		||||
---------------------
 | 
			
		||||
 | 
			
		||||
This module **MUST NOT** rely on any command that is not built in Zsh.
 | 
			
		||||
Contributors
 | 
			
		||||
------------
 | 
			
		||||
 | 
			
		||||
Non-interactive environment variables should be defined in
 | 
			
		||||
[_`${ZDOTDIR:-$HOME}/.zshenv`_][1].
 | 
			
		||||
This module **MUST NOT** rely on any command not built in Zsh.
 | 
			
		||||
 | 
			
		||||
## Options
 | 
			
		||||
Non-interactive environment variables should be defined in *zshenv*.
 | 
			
		||||
 | 
			
		||||
### General
 | 
			
		||||
Authors
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
*The authors of this module should be contacted via the [issue tracker][1].*
 | 
			
		||||
 | 
			
		||||
### Jobs
 | 
			
		||||
  - [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
[1]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
## 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.
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
_The authors of this module should be contacted via the [issue tracker][2]._
 | 
			
		||||
 | 
			
		||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
[1]: ../../runcoms#zshenv
 | 
			
		||||
[2]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 
 | 
			
		||||
@@ -9,35 +9,18 @@
 | 
			
		||||
# Smart URLs
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# This logic comes from an old version of zim. Essentially, bracketed-paste was
 | 
			
		||||
# added as a requirement of url-quote-magic in 5.1, but in 5.1.1 bracketed
 | 
			
		||||
# paste had a regression. Additionally, 5.2 added bracketed-paste-url-magic
 | 
			
		||||
# which is generally better than url-quote-magic so we load that when possible.
 | 
			
		||||
autoload -Uz is-at-least
 | 
			
		||||
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
 | 
			
		||||
  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
 | 
			
		||||
fi
 | 
			
		||||
autoload -Uz url-quote-magic
 | 
			
		||||
zle -N self-insert url-quote-magic
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# General
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
setopt COMBINING_CHARS      # Combine zero-length punctuation characters (accents)
 | 
			
		||||
                            # with the base character.
 | 
			
		||||
setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell.
 | 
			
		||||
setopt RC_QUOTES            # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
 | 
			
		||||
unsetopt MAIL_WARNING       # Don't print a warning message if a mail file has been accessed.
 | 
			
		||||
 | 
			
		||||
# Allow mapping Ctrl+S and Ctrl+Q shortcuts
 | 
			
		||||
[[ -r ${TTY:-} && -w ${TTY:-} && $+commands[stty] == 1 ]] && stty -ixon <$TTY >$TTY
 | 
			
		||||
setopt BRACE_CCL          # Allow brace character class list expansion.
 | 
			
		||||
setopt COMBINING_CHARS    # Combine zero-length punctuation characters (accents)
 | 
			
		||||
                          # with the base character.
 | 
			
		||||
setopt RC_QUOTES          # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
 | 
			
		||||
unsetopt MAIL_WARNING     # Don't print a warning message if a mail file has been accessed.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Jobs
 | 
			
		||||
@@ -50,6 +33,15 @@ unsetopt BG_NICE          # Don't run all background jobs at a lower priority.
 | 
			
		||||
unsetopt HUP              # Don't kill jobs on shell exit.
 | 
			
		||||
unsetopt CHECK_JOBS       # Don't report on jobs when shell exit.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Grep
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if zstyle -t ':prezto:environment:grep' color; then
 | 
			
		||||
  export GREP_COLOR='37;45'
 | 
			
		||||
  export GREP_OPTIONS='--color=auto'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Termcap
 | 
			
		||||
#
 | 
			
		||||
@@ -63,3 +55,4 @@ if zstyle -t ':prezto:environment:termcap' color; then
 | 
			
		||||
  export LESS_TERMCAP_ue=$'\E[0m'          # Ends underline.
 | 
			
		||||
  export LESS_TERMCAP_us=$'\E[01;32m'      # Begins underline.
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,41 +1,39 @@
 | 
			
		||||
# 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 shell completion to work, this module must be loaded _after_ the
 | 
			
		||||
[_`completion`_][5] module.
 | 
			
		||||
For completion to work, this module must be loaded **after** the *completion*
 | 
			
		||||
module.
 | 
			
		||||
 | 
			
		||||
The Prezto Fasd configuration differs from the default. The default aliases have
 | 
			
		||||
been disabled.
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
Aliases
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
`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.
 | 
			
		||||
  - `j` changes the current working directory interactively.
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
Completion
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
- `j` changes the current working directory interactively.
 | 
			
		||||
Type `,`, `f,`, `d,` in front of a comma-separated query or type `,,`,  `,,f`,
 | 
			
		||||
`,,d` at the end of a comma-separated query then hit <kbd>tab</kbd>.
 | 
			
		||||
 | 
			
		||||
## Completion
 | 
			
		||||
Authors
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
Type `,`, `f,`, `d,` in front of a comma-separated query or type `,,`, `,,f`,
 | 
			
		||||
`,,d` at the end of a comma-separated query then hit <kbd>TAB</kbd>.
 | 
			
		||||
*The authors of this module should be contacted via the [issue tracker][5].*
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
_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]: ../completion#readme
 | 
			
		||||
[6]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
[5]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 Submodule modules/fasd/external deleted from 48220241e7
									
								
							@@ -9,20 +9,17 @@
 | 
			
		||||
# Load dependencies.
 | 
			
		||||
pmodload 'editor'
 | 
			
		||||
 | 
			
		||||
# If the command doesn't exist externally, we need to fall back to the bundled
 | 
			
		||||
# submodule.
 | 
			
		||||
# Return if requirements are not found.
 | 
			
		||||
if (( ! $+commands[fasd] )); then
 | 
			
		||||
  source "${0:h}/external/fasd" || return 1
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Initialization
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/fasd-cache.zsh"
 | 
			
		||||
if [[ "${commands[fasd]}" -nt "$cache_file" \
 | 
			
		||||
      || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
 | 
			
		||||
      || ! -s "$cache_file"  ]]; then
 | 
			
		||||
cache_file="${0:h}/cache.zsh"
 | 
			
		||||
if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file"  ]]; then
 | 
			
		||||
  # Set the base init arguments.
 | 
			
		||||
  init_args=(zsh-hook)
 | 
			
		||||
 | 
			
		||||
@@ -31,7 +28,6 @@ if [[ "${commands[fasd]}" -nt "$cache_file" \
 | 
			
		||||
    init_args+=(zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install)
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  mkdir -p "$cache_file:h"
 | 
			
		||||
  # Cache init code.
 | 
			
		||||
  fasd --init "$init_args[@]" >! "$cache_file" 2> /dev/null
 | 
			
		||||
fi
 | 
			
		||||
@@ -55,3 +51,4 @@ function fasd_cd {
 | 
			
		||||
 | 
			
		||||
# Changes the current working directory interactively.
 | 
			
		||||
alias j='fasd_cd -i'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,336 +1,219 @@
 | 
			
		||||
# Git
 | 
			
		||||
Git
 | 
			
		||||
===
 | 
			
		||||
 | 
			
		||||
Enhances the [Git][1] distributed version control system by providing aliases,
 | 
			
		||||
functions and by exposing repository status information to prompts.
 | 
			
		||||
 | 
			
		||||
This module must be loaded _before_ the [_`completion`_][13] module so that the
 | 
			
		||||
provided completion definitions are loaded automatically by _`completion`_
 | 
			
		||||
module.
 | 
			
		||||
Git **1.7.2** is the [minimum required version][7].
 | 
			
		||||
 | 
			
		||||
**Note:** Git **2.11** is the minimum required version for better
 | 
			
		||||
[git-rev-list][7] and [git-submodule][14] support.
 | 
			
		||||
 | 
			
		||||
## Settings
 | 
			
		||||
Settings
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
### Log
 | 
			
		||||
 | 
			
		||||
To configure the format of the [git-log][8] output, add the following to
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'<context>'` with `'brief'`,
 | 
			
		||||
`'oneline'`, and `'medium'`. This will be passed to the `--pretty=format:`
 | 
			
		||||
switch.
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:git:log:context' format '<context>'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:git:log:context' format ''
 | 
			
		||||
 | 
			
		||||
### Status
 | 
			
		||||
 | 
			
		||||
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 `'<state>'` with `'dirty'`,
 | 
			
		||||
`'untracked'`, `'all'`, or `'none'`.
 | 
			
		||||
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*.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:git:status:ignore' submodules '<state>'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:git:status:ignore' submodules 'all'
 | 
			
		||||
 | 
			
		||||
This setting affects all aliases and functions that call `git-status`.
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
 | 
			
		||||
Aliases are enabled by default. To disable them, add the following to
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:git:alias' skip 'yes'
 | 
			
		||||
```
 | 
			
		||||
Aliases
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
### Git
 | 
			
		||||
 | 
			
		||||
- `g` is short for `git`.
 | 
			
		||||
  - `g` is short for `git`.
 | 
			
		||||
 | 
			
		||||
### Branch (b)
 | 
			
		||||
### Branch
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
  - `gbL` lists local and remote branches and their commits.
 | 
			
		||||
  - `gbs` lists branches and their commits with ancestry graphs.
 | 
			
		||||
  - `gbS` lists local and remote branches and their commits with ancestry
 | 
			
		||||
    graphs.
 | 
			
		||||
  - `gbx` deletes a branch.
 | 
			
		||||
  - `gbX` deletes a branch irrespective of its merged status.
 | 
			
		||||
  - `gbm` renames a branch.
 | 
			
		||||
  - `gbM` renames a branch even if the new branch name already exists.
 | 
			
		||||
 | 
			
		||||
### Commit (c)
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
### Commit
 | 
			
		||||
 | 
			
		||||
### Conflict (C)
 | 
			
		||||
  - `gc` records changes to the repository.
 | 
			
		||||
  - `gca` stages all modified and deleted files.
 | 
			
		||||
  - `gcm` 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*.
 | 
			
		||||
  - `gcF` amends the tip of the current branch.
 | 
			
		||||
  - `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.
 | 
			
		||||
  - `gcl` lists lost commits.
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
### Conflict
 | 
			
		||||
 | 
			
		||||
### Data (d)
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
### Data
 | 
			
		||||
 | 
			
		||||
### Fetch (f)
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
### Fetch
 | 
			
		||||
 | 
			
		||||
### Flow (F)
 | 
			
		||||
  - `gf` downloads objects and references from another repository.
 | 
			
		||||
  - `gfc` clones a repository into a new directory.
 | 
			
		||||
  - `gfm` fetches from and merges with another repository or local branch.
 | 
			
		||||
  - `gfr` fetches from and rebases on another repository or local branch.
 | 
			
		||||
 | 
			
		||||
- `gFi` is short for `git flow init`
 | 
			
		||||
### Grep
 | 
			
		||||
 | 
			
		||||
#### Feature (Ff)
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
- `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`
 | 
			
		||||
### Index
 | 
			
		||||
 | 
			
		||||
#### Bugfix (Fb)
 | 
			
		||||
  - `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).
 | 
			
		||||
  - `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).
 | 
			
		||||
 | 
			
		||||
- `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`
 | 
			
		||||
### Log
 | 
			
		||||
 | 
			
		||||
#### Release (Fl)
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
- `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`
 | 
			
		||||
### Merge
 | 
			
		||||
 | 
			
		||||
#### Hotfix (Fh)
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
- `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`
 | 
			
		||||
### Push
 | 
			
		||||
 | 
			
		||||
#### Support (Fs)
 | 
			
		||||
  - `gp` updates remote refs along with associated objects.
 | 
			
		||||
  - `gpf` forcefully updates remote refs along with associated objects.
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
- `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`
 | 
			
		||||
### Rebase
 | 
			
		||||
 | 
			
		||||
### Grep (g)
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
### Remote
 | 
			
		||||
 | 
			
		||||
### Index (i)
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
- `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).
 | 
			
		||||
### Stash
 | 
			
		||||
 | 
			
		||||
### Log (l)
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
### Submodule
 | 
			
		||||
 | 
			
		||||
### Merge (m)
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
### Working directory
 | 
			
		||||
 | 
			
		||||
### Push (p)
 | 
			
		||||
 | 
			
		||||
- `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)
 | 
			
		||||
 | 
			
		||||
- `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)
 | 
			
		||||
 | 
			
		||||
- `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)
 | 
			
		||||
 | 
			
		||||
- `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)
 | 
			
		||||
 | 
			
		||||
- `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)
 | 
			
		||||
 | 
			
		||||
- `gt` lists tags or creates tag.
 | 
			
		||||
- `gtl` lists tags matching pattern.
 | 
			
		||||
- `gts` creates a signed tag.
 | 
			
		||||
- `gtv` validate a signed tag.
 | 
			
		||||
 | 
			
		||||
### Working directory (w)
 | 
			
		||||
 | 
			
		||||
- `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][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].
 | 
			
		||||
  - `gpt` shadows the [GUID partition table maintenance utility][4].
 | 
			
		||||
  - `gs` shadows the [Ghostscript][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`.
 | 
			
		||||
@@ -338,127 +221,115 @@ 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][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.
 | 
			
		||||
  - `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.
 | 
			
		||||
  - `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
 | 
			
		||||
setting a style is as follows.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:git:info:context:subcontext' format 'string'
 | 
			
		||||
```
 | 
			
		||||
    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:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:git:info' verbose 'yes'
 | 
			
		||||
```
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
First, format the repository state attributes. For example, to format the branch
 | 
			
		||||
and remote names, define the following styles.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:git:info:branch' format 'branch:%b'
 | 
			
		||||
zstyle ':prezto:module:git:info:remote' format 'remote:%R'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:git:info:branch' format 'branch:%b'
 | 
			
		||||
    zstyle ':prezto:module:git:info:remote' format 'remote:%R'
 | 
			
		||||
 | 
			
		||||
Second, format how the above attributes are displayed in prompts.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:git:info:keys' format \
 | 
			
		||||
  'prompt'  ' git(%b)' \
 | 
			
		||||
  'rprompt' '[%R]'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:git:info:keys' format \
 | 
			
		||||
      'prompt'  ' git(%b)' \
 | 
			
		||||
      'rprompt' '[%R]'
 | 
			
		||||
 | 
			
		||||
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]: https://www.git-scm.com
 | 
			
		||||
[2]: https://hub.github.com
 | 
			
		||||
[1]: http://www.git-scm.com
 | 
			
		||||
[2]: https://github.com/defunkt/hub
 | 
			
		||||
[3]: https://www.github.com
 | 
			
		||||
[4]: https://www.manpagez.com/man/8/gpt/
 | 
			
		||||
[5]: https://www.manpagez.com/man/1/gs/
 | 
			
		||||
[4]: http://www.manpagez.com/man/8/gpt/
 | 
			
		||||
[5]: http://linux.die.net/man/1/gs
 | 
			
		||||
[6]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
[7]: https://github.com/sorin-ionescu/prezto/issues/219
 | 
			
		||||
[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
 | 
			
		||||
[8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,268 +8,175 @@
 | 
			
		||||
#
 | 
			
		||||
# 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; then
 | 
			
		||||
  # Git
 | 
			
		||||
  alias g='git'
 | 
			
		||||
# Git
 | 
			
		||||
alias g='git'
 | 
			
		||||
 | 
			
		||||
  # Branch (b)
 | 
			
		||||
  alias gb='git branch'
 | 
			
		||||
  alias gba='git branch --all --verbose'
 | 
			
		||||
  alias gbc='git checkout -b'
 | 
			
		||||
  alias gbd='git branch --delete'
 | 
			
		||||
  alias gbD='git branch --delete --force'
 | 
			
		||||
  alias gbl='git branch --verbose'
 | 
			
		||||
  alias gbL='git branch --all --verbose'
 | 
			
		||||
  alias gbm='git branch --move'
 | 
			
		||||
  alias gbM='git branch --move --force'
 | 
			
		||||
  alias gbr='git branch --move'
 | 
			
		||||
  alias gbR='git branch --move --force'
 | 
			
		||||
  alias gbs='git show-branch'
 | 
			
		||||
  alias gbS='git show-branch --all'
 | 
			
		||||
  alias gbv='git branch --verbose'
 | 
			
		||||
  alias gbV='git branch --verbose --verbose'
 | 
			
		||||
  alias gbx='git branch --delete'
 | 
			
		||||
  alias gbX='git branch --delete --force'
 | 
			
		||||
# Branch (b)
 | 
			
		||||
alias gb='git branch'
 | 
			
		||||
alias gbc='git checkout -b'
 | 
			
		||||
alias gbl='git branch -v'
 | 
			
		||||
alias gbL='git branch -av'
 | 
			
		||||
alias gbx='git branch -d'
 | 
			
		||||
alias gbX='git branch -D'
 | 
			
		||||
alias gbm='git branch -m'
 | 
			
		||||
alias gbM='git branch -M'
 | 
			
		||||
alias gbs='git show-branch'
 | 
			
		||||
alias gbS='git show-branch -a'
 | 
			
		||||
 | 
			
		||||
  # 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 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 gcfS='git commit --amend --reuse-message HEAD --gpg-sign'
 | 
			
		||||
  alias gcF='git commit --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'
 | 
			
		||||
  alias gcR='git reset "HEAD^"'
 | 
			
		||||
  alias gcs='git show'
 | 
			
		||||
  alias gcsS='git show --pretty=short --show-signature'
 | 
			
		||||
  alias gcl='git-commit-lost'
 | 
			
		||||
  alias gcy='git cherry --verbose --abbrev'
 | 
			
		||||
  alias gcY='git cherry --verbose'
 | 
			
		||||
# Commit (c)
 | 
			
		||||
alias gc='git commit --verbose'
 | 
			
		||||
alias gca='git commit --verbose --all'
 | 
			
		||||
alias gcm='git commit --message'
 | 
			
		||||
alias gco='git checkout'
 | 
			
		||||
alias gcO='git checkout --patch'
 | 
			
		||||
alias gcf='git commit --amend --reuse-message HEAD'
 | 
			
		||||
alias gcF='git commit --verbose --amend'
 | 
			
		||||
alias gcp='git cherry-pick --ff'
 | 
			
		||||
alias gcP='git cherry-pick --no-commit'
 | 
			
		||||
alias gcr='git revert'
 | 
			
		||||
alias gcR='git reset "HEAD^"'
 | 
			
		||||
alias gcs='git show'
 | 
			
		||||
alias gcl='git-commit-lost'
 | 
			
		||||
 | 
			
		||||
  # Conflict (C)
 | 
			
		||||
  alias gCl='git --no-pager diff --name-only --diff-filter=U'
 | 
			
		||||
  alias gCa='git add $(gCl)'
 | 
			
		||||
  alias gCe='git mergetool $(gCl)'
 | 
			
		||||
  alias gCo='git checkout --ours --'
 | 
			
		||||
  alias gCO='gCo $(gCl)'
 | 
			
		||||
  alias gCt='git checkout --theirs --'
 | 
			
		||||
  alias gCT='gCt $(gCl)'
 | 
			
		||||
# Conflict (C)
 | 
			
		||||
alias gCl='git status | sed -n "s/^.*both [a-z]*ed: *//p"'
 | 
			
		||||
alias gCa='git add $(gCl)'
 | 
			
		||||
alias gCe='git mergetool $(gCl)'
 | 
			
		||||
alias gCo='git checkout --ours --'
 | 
			
		||||
alias gCO='gCo $(gCl)'
 | 
			
		||||
alias gCt='git checkout --theirs --'
 | 
			
		||||
alias gCT='gCt $(gCl)'
 | 
			
		||||
 | 
			
		||||
  # Data (d)
 | 
			
		||||
  alias gd='git ls-files'
 | 
			
		||||
  alias gdc='git ls-files --cached'
 | 
			
		||||
  alias gdx='git ls-files --deleted'
 | 
			
		||||
  alias gdm='git ls-files --modified'
 | 
			
		||||
  alias gdu='git ls-files --other --exclude-standard'
 | 
			
		||||
  alias gdk='git ls-files --killed'
 | 
			
		||||
  alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"'
 | 
			
		||||
# Data (d)
 | 
			
		||||
alias gd='git ls-files'
 | 
			
		||||
alias gdc='git ls-files --cached'
 | 
			
		||||
alias gdx='git ls-files --deleted'
 | 
			
		||||
alias gdm='git ls-files --modified'
 | 
			
		||||
alias gdu='git ls-files --other --exclude-standard'
 | 
			
		||||
alias gdk='git ls-files --killed'
 | 
			
		||||
alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"'
 | 
			
		||||
 | 
			
		||||
  # Fetch (f)
 | 
			
		||||
  alias gf='git fetch'
 | 
			
		||||
  alias gfa='git fetch --all'
 | 
			
		||||
  alias gfc='git clone'
 | 
			
		||||
  alias gfcr='git clone --recurse-submodules'
 | 
			
		||||
  alias gfm='git pull'
 | 
			
		||||
  alias gfma='git pull --autostash'
 | 
			
		||||
  alias gfr='git pull --rebase'
 | 
			
		||||
  alias gfra='git pull --rebase --autostash'
 | 
			
		||||
# Fetch (f)
 | 
			
		||||
alias gf='git fetch'
 | 
			
		||||
alias gfc='git clone'
 | 
			
		||||
alias gfm='git pull'
 | 
			
		||||
alias gfr='git pull --rebase'
 | 
			
		||||
 | 
			
		||||
  # Flow (F)
 | 
			
		||||
  alias gFi='git flow init'
 | 
			
		||||
  alias gFf='git flow feature'
 | 
			
		||||
  alias gFb='git flow bugfix'
 | 
			
		||||
  alias gFl='git flow release'
 | 
			
		||||
  alias gFh='git flow hotfix'
 | 
			
		||||
  alias gFs='git flow support'
 | 
			
		||||
# Grep (g)
 | 
			
		||||
alias gg='git grep'
 | 
			
		||||
alias ggi='git grep --ignore-case'
 | 
			
		||||
alias ggl='git grep --files-with-matches'
 | 
			
		||||
alias ggL='git grep --files-without-matches'
 | 
			
		||||
alias ggv='git grep --invert-match'
 | 
			
		||||
alias ggw='git grep --word-regexp'
 | 
			
		||||
 | 
			
		||||
  alias gFfl='git flow feature list'
 | 
			
		||||
  alias gFfs='git flow feature start'
 | 
			
		||||
  alias gFff='git flow feature finish'
 | 
			
		||||
  alias gFfp='git flow feature publish'
 | 
			
		||||
  alias gFft='git flow feature track'
 | 
			
		||||
  alias gFfd='git flow feature diff'
 | 
			
		||||
  alias gFfr='git flow feature rebase'
 | 
			
		||||
  alias gFfc='git flow feature checkout'
 | 
			
		||||
  alias gFfm='git flow feature pull'
 | 
			
		||||
  alias gFfx='git flow feature delete'
 | 
			
		||||
# Index (i)
 | 
			
		||||
alias gia='git add'
 | 
			
		||||
alias giA='git add --patch'
 | 
			
		||||
alias giu='git add --update'
 | 
			
		||||
alias gid='git diff --no-ext-diff --cached'
 | 
			
		||||
alias giD='git diff --no-ext-diff --cached --word-diff'
 | 
			
		||||
alias gir='git reset'
 | 
			
		||||
alias giR='git reset --patch'
 | 
			
		||||
alias gix='git rm -r --cached'
 | 
			
		||||
alias giX='git rm -rf --cached'
 | 
			
		||||
 | 
			
		||||
  alias gFbl='git flow bugfix list'
 | 
			
		||||
  alias gFbs='git flow bugfix start'
 | 
			
		||||
  alias gFbf='git flow bugfix finish'
 | 
			
		||||
  alias gFbp='git flow bugfix publish'
 | 
			
		||||
  alias gFbt='git flow bugfix track'
 | 
			
		||||
  alias gFbd='git flow bugfix diff'
 | 
			
		||||
  alias gFbr='git flow bugfix rebase'
 | 
			
		||||
  alias gFbc='git flow bugfix checkout'
 | 
			
		||||
  alias gFbm='git flow bugfix pull'
 | 
			
		||||
  alias gFbx='git flow bugfix delete'
 | 
			
		||||
# 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 --all --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 gFll='git flow release list'
 | 
			
		||||
  alias gFls='git flow release start'
 | 
			
		||||
  alias gFlf='git flow release finish'
 | 
			
		||||
  alias gFlp='git flow release publish'
 | 
			
		||||
  alias gFlt='git flow release track'
 | 
			
		||||
  alias gFld='git flow release diff'
 | 
			
		||||
  alias gFlr='git flow release rebase'
 | 
			
		||||
  alias gFlc='git flow release checkout'
 | 
			
		||||
  alias gFlm='git flow release pull'
 | 
			
		||||
  alias gFlx='git flow release delete'
 | 
			
		||||
# Merge (m)
 | 
			
		||||
alias gm='git merge'
 | 
			
		||||
alias gmC='git merge --no-commit'
 | 
			
		||||
alias gmF='git merge --no-ff'
 | 
			
		||||
alias gma='git merge --abort'
 | 
			
		||||
alias gmt='git mergetool'
 | 
			
		||||
 | 
			
		||||
  alias gFhl='git flow hotfix list'
 | 
			
		||||
  alias gFhs='git flow hotfix start'
 | 
			
		||||
  alias gFhf='git flow hotfix finish'
 | 
			
		||||
  alias gFhp='git flow hotfix publish'
 | 
			
		||||
  alias gFht='git flow hotfix track'
 | 
			
		||||
  alias gFhd='git flow hotfix diff'
 | 
			
		||||
  alias gFhr='git flow hotfix rebase'
 | 
			
		||||
  alias gFhc='git flow hotfix checkout'
 | 
			
		||||
  alias gFhm='git flow hotfix pull'
 | 
			
		||||
  alias gFhx='git flow hotfix delete'
 | 
			
		||||
# Push (p)
 | 
			
		||||
alias gp='git push'
 | 
			
		||||
alias gpf='git push --force'
 | 
			
		||||
alias gpa='git push --all'
 | 
			
		||||
alias gpA='git push --all && git push --tags'
 | 
			
		||||
alias gpt='git push --tags'
 | 
			
		||||
alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"'
 | 
			
		||||
alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"'
 | 
			
		||||
 | 
			
		||||
  alias gFsl='git flow support list'
 | 
			
		||||
  alias gFss='git flow support start'
 | 
			
		||||
  alias gFsf='git flow support finish'
 | 
			
		||||
  alias gFsp='git flow support publish'
 | 
			
		||||
  alias gFst='git flow support track'
 | 
			
		||||
  alias gFsd='git flow support diff'
 | 
			
		||||
  alias gFsr='git flow support rebase'
 | 
			
		||||
  alias gFsc='git flow support checkout'
 | 
			
		||||
  alias gFsm='git flow support pull'
 | 
			
		||||
  alias gFsx='git flow support delete'
 | 
			
		||||
# Rebase (r)
 | 
			
		||||
alias gr='git rebase'
 | 
			
		||||
alias gra='git rebase --abort'
 | 
			
		||||
alias grc='git rebase --continue'
 | 
			
		||||
alias gri='git rebase --interactive'
 | 
			
		||||
alias grs='git rebase --skip'
 | 
			
		||||
 | 
			
		||||
  # Grep (g)
 | 
			
		||||
  alias gg='git grep'
 | 
			
		||||
  alias ggi='git grep --ignore-case'
 | 
			
		||||
  alias ggl='git grep --files-with-matches'
 | 
			
		||||
  alias ggL='git grep --files-without-matches'
 | 
			
		||||
  alias ggv='git grep --invert-match'
 | 
			
		||||
  alias ggw='git grep --word-regexp'
 | 
			
		||||
# Remote (R)
 | 
			
		||||
alias gR='git remote'
 | 
			
		||||
alias gRl='git remote --verbose'
 | 
			
		||||
alias gRa='git remote add'
 | 
			
		||||
alias gRx='git remote rm'
 | 
			
		||||
alias gRm='git remote rename'
 | 
			
		||||
alias gRu='git remote update'
 | 
			
		||||
alias gRp='git remote prune'
 | 
			
		||||
alias gRs='git remote show'
 | 
			
		||||
alias gRb='git-hub-browse'
 | 
			
		||||
 | 
			
		||||
  # Index (i)
 | 
			
		||||
  alias gia='git add'
 | 
			
		||||
  alias giA='git add --patch'
 | 
			
		||||
  alias giu='git add --update'
 | 
			
		||||
  alias gid='git diff --no-ext-diff --cached'
 | 
			
		||||
  alias giD='git diff --no-ext-diff --cached --word-diff'
 | 
			
		||||
  alias gii='git update-index --assume-unchanged'
 | 
			
		||||
  alias giI='git update-index --no-assume-unchanged'
 | 
			
		||||
  alias gir='git reset'
 | 
			
		||||
  alias giR='git reset --patch'
 | 
			
		||||
  alias gix='git rm -r --cached'
 | 
			
		||||
  alias giX='git rm -r --force --cached'
 | 
			
		||||
# Stash (s)
 | 
			
		||||
alias gs='git stash'
 | 
			
		||||
alias gsa='git stash apply'
 | 
			
		||||
alias gsx='git stash drop'
 | 
			
		||||
alias gsX='git-stash-clear-interactive'
 | 
			
		||||
alias gsl='git stash list'
 | 
			
		||||
alias gsL='git-stash-dropped'
 | 
			
		||||
alias gsd='git stash show --patch --stat'
 | 
			
		||||
alias gsp='git stash pop'
 | 
			
		||||
alias gsr='git-stash-recover'
 | 
			
		||||
alias gss='git stash save --include-untracked'
 | 
			
		||||
alias gsS='git stash save --patch --no-keep-index'
 | 
			
		||||
alias gsw='git stash save --include-untracked --keep-index'
 | 
			
		||||
 | 
			
		||||
  # 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 glc='git shortlog --summary --numbered'
 | 
			
		||||
  alias glS='git log --show-signature'
 | 
			
		||||
# Submodule (S)
 | 
			
		||||
alias gS='git submodule'
 | 
			
		||||
alias gSa='git submodule add'
 | 
			
		||||
alias gSf='git submodule foreach'
 | 
			
		||||
alias gSi='git submodule init'
 | 
			
		||||
alias gSI='git submodule update --init --recursive'
 | 
			
		||||
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 gSx='git-submodule-remove'
 | 
			
		||||
 | 
			
		||||
  # Merge (m)
 | 
			
		||||
  alias gm='git merge'
 | 
			
		||||
  alias gmC='git merge --no-commit'
 | 
			
		||||
  alias gmF='git merge --no-ff'
 | 
			
		||||
  alias gma='git merge --abort'
 | 
			
		||||
  alias gmt='git mergetool'
 | 
			
		||||
# 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 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 gwx='git rm -r'
 | 
			
		||||
alias gwX='git rm -rf'
 | 
			
		||||
 | 
			
		||||
  # Push (p)
 | 
			
		||||
  alias gp='git push'
 | 
			
		||||
  alias gpf='git push --force-with-lease'
 | 
			
		||||
  alias gpF='git push --force'
 | 
			
		||||
  alias gpa='git push --all'
 | 
			
		||||
  alias gpA='git push --all && git push --tags'
 | 
			
		||||
  alias gpt='git push --tags'
 | 
			
		||||
  alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"'
 | 
			
		||||
  alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"'
 | 
			
		||||
 | 
			
		||||
  # Rebase (r)
 | 
			
		||||
  alias gr='git rebase'
 | 
			
		||||
  alias gra='git rebase --abort'
 | 
			
		||||
  alias grc='git rebase --continue'
 | 
			
		||||
  alias gri='git rebase --interactive'
 | 
			
		||||
  alias grs='git rebase --skip'
 | 
			
		||||
 | 
			
		||||
  # Remote (R)
 | 
			
		||||
  alias gR='git remote'
 | 
			
		||||
  alias gRl='git remote --verbose'
 | 
			
		||||
  alias gRa='git remote add'
 | 
			
		||||
  alias gRx='git remote rm'
 | 
			
		||||
  alias gRm='git remote rename'
 | 
			
		||||
  alias gRu='git remote update'
 | 
			
		||||
  alias gRp='git remote prune'
 | 
			
		||||
  alias gRs='git remote show'
 | 
			
		||||
  alias gRb='git-hub-browse'
 | 
			
		||||
 | 
			
		||||
  # Stash (s)
 | 
			
		||||
  alias gs='git stash'
 | 
			
		||||
  alias gsa='git stash apply'
 | 
			
		||||
  alias gsx='git stash drop'
 | 
			
		||||
  alias gsX='git-stash-clear-interactive'
 | 
			
		||||
  alias gsl='git stash list'
 | 
			
		||||
  alias gsL='git-stash-dropped'
 | 
			
		||||
  alias gsd='git stash show --patch --stat'
 | 
			
		||||
  alias gsp='git stash pop'
 | 
			
		||||
  alias gsr='git-stash-recover'
 | 
			
		||||
  alias gss='git stash save --include-untracked'
 | 
			
		||||
  alias gsS='git stash save --patch --no-keep-index'
 | 
			
		||||
  alias gsw='git stash save --include-untracked --keep-index'
 | 
			
		||||
 | 
			
		||||
  # Submodule (S)
 | 
			
		||||
  alias gS='git submodule'
 | 
			
		||||
  alias gSa='git submodule add'
 | 
			
		||||
  alias gSf='git submodule foreach'
 | 
			
		||||
  alias gSi='git submodule init'
 | 
			
		||||
  alias gSI='git submodule update --init --recursive'
 | 
			
		||||
  alias gSl='git submodule status'
 | 
			
		||||
  alias gSm='git-submodule-move'
 | 
			
		||||
  alias gSs='git submodule sync'
 | 
			
		||||
  alias gSu='git submodule update --remote --recursive'
 | 
			
		||||
  alias gSx='git-submodule-remove'
 | 
			
		||||
 | 
			
		||||
  # Tag (t)
 | 
			
		||||
  alias gt='git tag'
 | 
			
		||||
  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 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 --dry-run'
 | 
			
		||||
  alias gwC='git clean --force'
 | 
			
		||||
  alias gwx='git rm -r'
 | 
			
		||||
  alias gwX='git rm -r --force'
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -21,7 +21,7 @@ _arguments -C -s -S \
 | 
			
		||||
 | 
			
		||||
case "$state" in
 | 
			
		||||
  (remote)
 | 
			
		||||
    remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2))
 | 
			
		||||
    remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2))
 | 
			
		||||
 | 
			
		||||
    _describe -t branch 'remotes' remotes && ret=0
 | 
			
		||||
  ;;
 | 
			
		||||
@@ -29,7 +29,7 @@ case "$state" in
 | 
			
		||||
    remote="$words[(($CURRENT - 1))]"
 | 
			
		||||
 | 
			
		||||
    branches_or_tags=($(
 | 
			
		||||
      command git ls-remote --heads --tags "$remote" 2> /dev/null | cut -f2
 | 
			
		||||
      git ls-remote --heads --tags "$remote" 2>/dev/null | cut -f2
 | 
			
		||||
    ))
 | 
			
		||||
 | 
			
		||||
    branches=(HEAD ${${(M)branches_or_tags[@]##refs/heads/?##}##refs/heads/})
 | 
			
		||||
@@ -39,9 +39,10 @@ case "$state" in
 | 
			
		||||
    _describe -t tag 'tags' tags && ret=0
 | 
			
		||||
  ;;
 | 
			
		||||
  (file)
 | 
			
		||||
    files=(${(0)"$(_call_program files command git ls-files -z --exclude-standard 2> /dev/null)"})
 | 
			
		||||
    files=(${(0)"$(_call_program files git ls-files -z --exclude-standard 2>/dev/null)"})
 | 
			
		||||
    _wanted file expl 'file' _multi_parts - / files && ret=0
 | 
			
		||||
  ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
return $ret
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,9 +8,5 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
local service="$service"
 | 
			
		||||
_arguments '1:url:' && return 0
 | 
			
		||||
 | 
			
		||||
zstyle ":completion:*:${service}:*:prefixes" ignored-patterns '^http(|s)://'
 | 
			
		||||
zstyle ":completion:*:${service}:*:hosts" ignored-patterns '^*github.com'
 | 
			
		||||
 | 
			
		||||
_arguments '1::GitHub URL:_urls' '2::code:' && return 0
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -16,3 +16,4 @@ _arguments "1:toggle:((
 | 
			
		||||
  on\:'enable in-prompt information for the current repository'
 | 
			
		||||
  off\:'disable in-prompt information for the current repository'
 | 
			
		||||
))" && return 0
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -25,7 +25,7 @@ case "$state" in
 | 
			
		||||
    while IFS=$'\n' read submodule; do
 | 
			
		||||
      submodules+=("$submodule")
 | 
			
		||||
    done < <(
 | 
			
		||||
      command git config --file "$(git-root)/.gitmodules" --list \
 | 
			
		||||
      git config --file "$(git-root)/.gitmodules" --list \
 | 
			
		||||
        | grep '.path=' \
 | 
			
		||||
        | cut -d= -f2-
 | 
			
		||||
    )
 | 
			
		||||
@@ -38,3 +38,4 @@ case "$state" in
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
return $ret
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -18,9 +18,10 @@ local submodule
 | 
			
		||||
while IFS=$'\n' read submodule; do
 | 
			
		||||
  submodules+=("$submodule")
 | 
			
		||||
done < <(
 | 
			
		||||
  command git config --file "$(git-root)/.gitmodules" --list \
 | 
			
		||||
  git config --file "$(git-root)/.gitmodules" --list \
 | 
			
		||||
    | grep '.path=' \
 | 
			
		||||
    | cut -d= -f2-
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
_describe -t submodule 'submodules' submodules && return 0
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,14 +5,12 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-branch-current {
 | 
			
		||||
 | 
			
		||||
if ! command git rev-parse 2> /dev/null; then
 | 
			
		||||
if ! git rev-parse 2> /dev/null; then
 | 
			
		||||
  print "$0: not a repository: $PWD" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
local ref="$(command git symbolic-ref HEAD 2> /dev/null)"
 | 
			
		||||
local ref="$(git symbolic-ref HEAD 2> /dev/null)"
 | 
			
		||||
 | 
			
		||||
if [[ -n "$ref" ]]; then
 | 
			
		||||
  print "${ref#refs/heads/}"
 | 
			
		||||
@@ -21,4 +19,3 @@ else
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,20 +5,17 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-commit-lost {
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  print "$0: not a repository work tree: $PWD" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
command git fsck 2> /dev/null \
 | 
			
		||||
git fsck 2> /dev/null \
 | 
			
		||||
  | grep "^dangling commit" \
 | 
			
		||||
  | awk '{print $3}' \
 | 
			
		||||
  | command git log \
 | 
			
		||||
  | git log \
 | 
			
		||||
      --date-order \
 | 
			
		||||
      --no-walk \
 | 
			
		||||
      --stdin \
 | 
			
		||||
      --pretty=format:${_git_log_oneline_format}
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-dir {
 | 
			
		||||
 | 
			
		||||
local git_dir="${$(command git rev-parse --git-dir):A}"
 | 
			
		||||
local git_dir="${$(git rev-parse --git-dir):A}"
 | 
			
		||||
 | 
			
		||||
if [[ -n "$git_dir" ]]; then
 | 
			
		||||
  print "$git_dir"
 | 
			
		||||
@@ -17,4 +15,3 @@ else
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-hub-browse {
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  print "$0: not a repository work tree: $PWD" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
@@ -15,7 +13,7 @@ fi
 | 
			
		||||
local remotes remote references reference file url
 | 
			
		||||
 | 
			
		||||
remote="${1:-origin}"
 | 
			
		||||
remotes=($(command git remote show))
 | 
			
		||||
remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2))
 | 
			
		||||
 | 
			
		||||
if (( $remotes[(i)$remote] == $#remotes + 1 )); then
 | 
			
		||||
  print "$0: remote not found: $remote" >&2
 | 
			
		||||
@@ -23,14 +21,14 @@ if (( $remotes[(i)$remote] == $#remotes + 1 )); then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
url=$(
 | 
			
		||||
  command git remote get-url "$remote" \
 | 
			
		||||
      | sed -En "s#(git@|https?://)(github.com)(:|/)(.+)/(.+)\.git#https://\2/\4/\5#p"
 | 
			
		||||
  git config --get "remote.${remote}.url" \
 | 
			
		||||
    | sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
reference="${${2:-$(git-branch-current)}:-HEAD}"
 | 
			
		||||
references=(
 | 
			
		||||
  HEAD
 | 
			
		||||
  ${${(f)"$(command git ls-remote --heads --tags "$remote")"}##*refs/(heads|tags)/}
 | 
			
		||||
  ${$(git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
if (( $references[(i)$reference] == $#references + 1 )); then
 | 
			
		||||
@@ -39,15 +37,15 @@ if (( $references[(i)$reference] == $#references + 1 )); then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ "$reference" == 'HEAD' ]]; then
 | 
			
		||||
  reference="$(command git rev-parse HEAD 2> /dev/null)"
 | 
			
		||||
  reference="$(git rev-parse HEAD 2>/dev/null)"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
file="$3"
 | 
			
		||||
 | 
			
		||||
if [[ -n "$url" ]]; then
 | 
			
		||||
  url="$url/tree/$reference/$file"
 | 
			
		||||
  url="${url}/tree/${reference}/${file}"
 | 
			
		||||
 | 
			
		||||
  if [[ -n "$BROWSER" ]]; then
 | 
			
		||||
  if (( $+commands[$BROWSER] )); then
 | 
			
		||||
    "$BROWSER" "$url"
 | 
			
		||||
    return 0
 | 
			
		||||
  else
 | 
			
		||||
@@ -59,4 +57,3 @@ else
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,24 +5,19 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-hub-shorten-url {
 | 
			
		||||
 | 
			
		||||
local url="$1" code="$2"
 | 
			
		||||
local url="$1"
 | 
			
		||||
 | 
			
		||||
if [[ "$url" == '-' ]]; then
 | 
			
		||||
  read url <&0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ -z "$url" || ! "$url" =~ ^https?:\/\/.*github.com\/ ]]; then
 | 
			
		||||
  print "usage: $0 [ url | - ] [code] ; url must be a github.com URL" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
if [[ -z "$url" ]]; then
 | 
			
		||||
  print "usage: $0 [ url | - ]" >&2
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if (( $+commands[curl] )); then
 | 
			
		||||
  print "${${(@M)${(f)"$(curl -s -i 'https://git.io' -F "url=$url" ${(z)code:+ -F "code=$code"})"}:#Location: *}#Location: }"
 | 
			
		||||
  curl -s -i 'http://git.io' -F "url=$url" | grep 'Location:' | sed 's/Location: //'
 | 
			
		||||
else
 | 
			
		||||
  print "$0: command not found: curl" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Gets the Git special action (am, bisect, cherry, merge, rebase, revert).
 | 
			
		||||
# Gets the Git special action (am, bisect, cherry, merge, rebase).
 | 
			
		||||
# Borrowed from vcs_info and edited.
 | 
			
		||||
function _git-action {
 | 
			
		||||
  local action_dir
 | 
			
		||||
@@ -18,26 +18,22 @@ function _git-action {
 | 
			
		||||
  local rebase_formatted
 | 
			
		||||
  local rebase_interactive_formatted
 | 
			
		||||
  local rebase_merge_formatted
 | 
			
		||||
  local revert_formatted
 | 
			
		||||
  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
 | 
			
		||||
@@ -45,67 +41,47 @@ 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'
 | 
			
		||||
      print "$revert_sequence_formatted"
 | 
			
		||||
    else
 | 
			
		||||
      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
 | 
			
		||||
@@ -188,15 +164,15 @@ function git-info {
 | 
			
		||||
  typeset -gA git_info
 | 
			
		||||
 | 
			
		||||
  # Return if not inside a Git repository work tree.
 | 
			
		||||
  if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if (( $# > 0 )); then
 | 
			
		||||
    if [[ "$1" == [Oo][Nn] ]]; then
 | 
			
		||||
      command git config --bool prompt.showinfo true
 | 
			
		||||
      git config --bool prompt.showinfo true
 | 
			
		||||
    elif [[ "$1" == [Oo][Ff][Ff] ]]; then
 | 
			
		||||
      command git config --bool prompt.showinfo false
 | 
			
		||||
      git config --bool prompt.showinfo false
 | 
			
		||||
    else
 | 
			
		||||
      print "usage: $0 [ on | off ]" >&2
 | 
			
		||||
    fi
 | 
			
		||||
@@ -204,7 +180,7 @@ function git-info {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Return if git-info is disabled.
 | 
			
		||||
  if ! is-true "${$(command git config --bool prompt.showinfo):-true}"; then
 | 
			
		||||
  if ! is-true "${$(git config --bool prompt.showinfo):-true}"; then
 | 
			
		||||
    return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
@@ -214,7 +190,7 @@ function git-info {
 | 
			
		||||
  # Format commit.
 | 
			
		||||
  zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
 | 
			
		||||
  if [[ -n "$commit_format" ]]; then
 | 
			
		||||
    commit="$(command git rev-parse HEAD 2> /dev/null)"
 | 
			
		||||
    commit="$(git rev-parse HEAD 2> /dev/null)"
 | 
			
		||||
    if [[ -n "$commit" ]]; then
 | 
			
		||||
      zformat -f commit_formatted "$commit_format" "c:$commit"
 | 
			
		||||
    fi
 | 
			
		||||
@@ -222,17 +198,10 @@ function git-info {
 | 
			
		||||
 | 
			
		||||
  # Format stashed.
 | 
			
		||||
  zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format'
 | 
			
		||||
  if [[ -n "$stashed_format" ]]; then
 | 
			
		||||
    commondir=""
 | 
			
		||||
    if [[ -f "$(git-dir)/commondir" ]]; then
 | 
			
		||||
      commondir="$(<$(git-dir)/commondir)"
 | 
			
		||||
      [[ "$commondir" =~ ^/ ]] || commondir="$(git-dir)/$commondir"
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ -f "$(git-dir)/refs/stash" || ( -n "$commondir" && -f "$commondir/refs/stash" ) ]]; then
 | 
			
		||||
      stashed=${#${(f)"$(command git stash list 2> /dev/null)"}}
 | 
			
		||||
      if (( $stashed > 0 )); then
 | 
			
		||||
        zformat -f stashed_formatted "$stashed_format" "S:$stashed"
 | 
			
		||||
      fi
 | 
			
		||||
  if [[ -n "$stashed_format" && -f "$(git-dir)/refs/stash" ]]; then
 | 
			
		||||
    stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
 | 
			
		||||
    if [[ -n "$stashed" ]]; then
 | 
			
		||||
      zformat -f stashed_formatted "$stashed_format" "S:$stashed"
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
@@ -246,7 +215,7 @@ function git-info {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Get the branch.
 | 
			
		||||
  branch="${$(command git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
 | 
			
		||||
  branch="${$(git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
 | 
			
		||||
 | 
			
		||||
  # Format branch.
 | 
			
		||||
  zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
 | 
			
		||||
@@ -257,7 +226,7 @@ function git-info {
 | 
			
		||||
  # Format position.
 | 
			
		||||
  zstyle -s ':prezto:module:git:info:position' format 'position_format'
 | 
			
		||||
  if [[ -z "$branch" && -n "$position_format" ]]; then
 | 
			
		||||
    position="$(command git describe --contains --all HEAD 2> /dev/null)"
 | 
			
		||||
    position="$(git describe --contains --all HEAD 2> /dev/null)"
 | 
			
		||||
    if [[ -n "$position" ]]; then
 | 
			
		||||
      zformat -f position_formatted "$position_format" "p:$position"
 | 
			
		||||
    fi
 | 
			
		||||
@@ -267,7 +236,7 @@ function git-info {
 | 
			
		||||
  zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
 | 
			
		||||
  if [[ -n "$branch" && -n "$remote_format" ]]; then
 | 
			
		||||
    # Gets the remote name.
 | 
			
		||||
    remote_cmd='command git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
 | 
			
		||||
    remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
 | 
			
		||||
    remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}"
 | 
			
		||||
    if [[ -n "$remote" ]]; then
 | 
			
		||||
      zformat -f remote_formatted "$remote_format" "R:$remote"
 | 
			
		||||
@@ -278,14 +247,14 @@ function git-info {
 | 
			
		||||
  zstyle -s ':prezto:module:git:info:behind' format 'behind_format'
 | 
			
		||||
  if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then
 | 
			
		||||
    # Gets the commit difference counts between local and remote.
 | 
			
		||||
    ahead_and_behind_cmd='command git rev-list --count --left-right HEAD...@{upstream}'
 | 
			
		||||
    ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}'
 | 
			
		||||
 | 
			
		||||
    # Get ahead and behind counts.
 | 
			
		||||
    ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
 | 
			
		||||
 | 
			
		||||
    # Format ahead.
 | 
			
		||||
    if [[ -n "$ahead_format" ]]; then
 | 
			
		||||
      ahead="$ahead_and_behind[(pws:\t:)1]"
 | 
			
		||||
      ahead="$ahead_and_behind[(w)1]"
 | 
			
		||||
      if (( ahead > 0 )); then
 | 
			
		||||
        zformat -f ahead_formatted "$ahead_format" "A:$ahead"
 | 
			
		||||
      fi
 | 
			
		||||
@@ -293,7 +262,7 @@ function git-info {
 | 
			
		||||
 | 
			
		||||
    # Format behind.
 | 
			
		||||
    if [[ -n "$behind_format" ]]; then
 | 
			
		||||
      behind="$ahead_and_behind[(pws:\t:)2]"
 | 
			
		||||
      behind="$ahead_and_behind[(w)2]"
 | 
			
		||||
      if (( behind > 0 )); then
 | 
			
		||||
        zformat -f behind_formatted "$behind_format" "B:$behind"
 | 
			
		||||
      fi
 | 
			
		||||
@@ -307,7 +276,7 @@ function git-info {
 | 
			
		||||
    if [[ -n "$indexed_format" ]]; then
 | 
			
		||||
      ((
 | 
			
		||||
        indexed+=$(
 | 
			
		||||
          command git diff-index \
 | 
			
		||||
          git diff-index \
 | 
			
		||||
            --no-ext-diff \
 | 
			
		||||
            --name-only \
 | 
			
		||||
            --cached \
 | 
			
		||||
@@ -327,7 +296,7 @@ function git-info {
 | 
			
		||||
    if [[ -n "$unindexed_format" ]]; then
 | 
			
		||||
      ((
 | 
			
		||||
        unindexed+=$(
 | 
			
		||||
          command git diff-files \
 | 
			
		||||
          git diff-files \
 | 
			
		||||
            --no-ext-diff \
 | 
			
		||||
            --name-only \
 | 
			
		||||
            --ignore-submodules=${ignore_submodules:-none} \
 | 
			
		||||
@@ -345,7 +314,7 @@ function git-info {
 | 
			
		||||
    if [[ -n "$untracked_format" ]]; then
 | 
			
		||||
      ((
 | 
			
		||||
        untracked+=$(
 | 
			
		||||
          command git ls-files \
 | 
			
		||||
          git ls-files \
 | 
			
		||||
            --other \
 | 
			
		||||
            --exclude-standard \
 | 
			
		||||
            2> /dev/null \
 | 
			
		||||
@@ -360,7 +329,7 @@ function git-info {
 | 
			
		||||
    (( dirty = indexed + unindexed + untracked ))
 | 
			
		||||
  else
 | 
			
		||||
    # Use porcelain status for easy parsing.
 | 
			
		||||
    status_cmd="command git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
 | 
			
		||||
    status_cmd="git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
 | 
			
		||||
 | 
			
		||||
    # Get current status.
 | 
			
		||||
    while IFS=$'\n' read line; do
 | 
			
		||||
@@ -379,13 +348,13 @@ function git-info {
 | 
			
		||||
    # Format added.
 | 
			
		||||
    if (( added > 0 )); then
 | 
			
		||||
      zstyle -s ':prezto:module:git:info:added' format 'added_format'
 | 
			
		||||
      zformat -f added_formatted "$added_format" "a:$added"
 | 
			
		||||
      zformat -f added_formatted "$added_format" "a:$added_format"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Format deleted.
 | 
			
		||||
    if (( deleted > 0 )); then
 | 
			
		||||
      zstyle -s ':prezto:module:git:info:deleted' format 'deleted_format'
 | 
			
		||||
      zformat -f deleted_formatted "$deleted_format" "d:$deleted"
 | 
			
		||||
      zformat -f deleted_formatted "$deleted_format" "d:$deleted_format"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # Format modified.
 | 
			
		||||
@@ -417,11 +386,6 @@ function git-info {
 | 
			
		||||
  if (( dirty > 0 )); then
 | 
			
		||||
    zstyle -s ':prezto:module:git:info:dirty' format 'dirty_format'
 | 
			
		||||
    zformat -f dirty_formatted "$dirty_format" "D:$dirty"
 | 
			
		||||
    # Overwrite branch format to use dirty-branch format
 | 
			
		||||
    zstyle -s ':prezto:module:git:info:dirty-branch' format 'branch_format'
 | 
			
		||||
    if [[ -n "$branch" && -n "$branch_format" ]]; then
 | 
			
		||||
      zformat -f branch_formatted "$branch_format" "b:$branch"
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    zstyle -s ':prezto:module:git:info:clean' format 'clean_formatted'
 | 
			
		||||
  fi
 | 
			
		||||
@@ -457,3 +421,4 @@ function git-info {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
git-info "$@"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-root {
 | 
			
		||||
 | 
			
		||||
local root="$(command git rev-parse --show-toplevel 2> /dev/null)"
 | 
			
		||||
local root="$(git rev-parse --show-toplevel 2> /dev/null)"
 | 
			
		||||
 | 
			
		||||
if [[ -n "$root" ]]; then
 | 
			
		||||
  print "$root"
 | 
			
		||||
@@ -17,4 +15,3 @@ else
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Performs a "dirty" squash
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Daniel Carrillo <daniel.carrillo@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-squash {
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  print "$0: not a repository work tree: $PWD" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
elif [ -z "$2" ]; then
 | 
			
		||||
  print "Usage: $0 <base branch> \"commit message\"" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
local bbranch=$1
 | 
			
		||||
local message=$2
 | 
			
		||||
local cbranch=$(git branch --show-current)
 | 
			
		||||
 | 
			
		||||
git reset $(git merge-base $bbranch $cbranch)
 | 
			
		||||
git add -A
 | 
			
		||||
git commit -m "$message"
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
@@ -5,9 +5,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-stash-clear-interactive {
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  print "$0: not a repository work tree: $PWD" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
@@ -15,12 +13,11 @@ fi
 | 
			
		||||
local stashed
 | 
			
		||||
 | 
			
		||||
if [[ -f "$(git-dir)/refs/stash" ]]; then
 | 
			
		||||
  stashed=${#${(f)"$(command git stash list 2> /dev/null)"}}
 | 
			
		||||
  stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
 | 
			
		||||
  if (( $stashed > 0 )); then
 | 
			
		||||
    if read -q "?Clear $stashed stashed state(s) [y/N]? "; then
 | 
			
		||||
      command git stash clear
 | 
			
		||||
      git stash clear
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,22 +5,19 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-stash-dropped {
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  print "$0: not a repository work tree: $PWD" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
command git fsck --unreachable 2> /dev/null \
 | 
			
		||||
git fsck --unreachable 2> /dev/null \
 | 
			
		||||
  | grep 'commit' \
 | 
			
		||||
  | awk '{print $3}' \
 | 
			
		||||
  | command git log \
 | 
			
		||||
      --pretty=format:$_git_log_oneline_format \
 | 
			
		||||
  | git log \
 | 
			
		||||
      --pretty=format:${_git_log_oneline_format} \
 | 
			
		||||
      --extended-regexp \
 | 
			
		||||
      --grep="${1:-(WIP )?[Oo]n [^:]+:}" \
 | 
			
		||||
      --merges \
 | 
			
		||||
      --no-walk \
 | 
			
		||||
      --stdin
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-stash-recover {
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  print "$0: not a repository work tree: $PWD" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
@@ -15,8 +13,7 @@ fi
 | 
			
		||||
local commit
 | 
			
		||||
 | 
			
		||||
for commit in "$@"; do
 | 
			
		||||
  command git update-ref \
 | 
			
		||||
    -m "$(command git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
 | 
			
		||||
  git update-ref \
 | 
			
		||||
    -m "$(git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,9 +5,7 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-submodule-move {
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  print "$0: not a repository work tree: $PWD" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
elif [[ "$PWD" != "$(git-root)" ]]; then
 | 
			
		||||
@@ -19,18 +17,17 @@ local src="$1"
 | 
			
		||||
local dst="$2"
 | 
			
		||||
local url
 | 
			
		||||
 | 
			
		||||
url="$(command git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")"
 | 
			
		||||
url="$(git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")"
 | 
			
		||||
 | 
			
		||||
if [[ -z "$url" ]]; then
 | 
			
		||||
  print "$0: submodule not found: $src" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
mkdir -p "$dst:h"
 | 
			
		||||
mkdir -p "${dst:h}"
 | 
			
		||||
 | 
			
		||||
git-submodule-remove "$src"
 | 
			
		||||
command git submodule add "$url" "$dst"
 | 
			
		||||
git submodule add "$url" "$dst"
 | 
			
		||||
 | 
			
		||||
return 0
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,27 +5,24 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-submodule-remove {
 | 
			
		||||
 | 
			
		||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
 | 
			
		||||
  print "$0: not a repository work tree: $PWD" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
elif [[ "$PWD" != "$(git-root)" ]]; then
 | 
			
		||||
  print "$0: must be run from the root of the work tree" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
elif ! command git config --file .gitmodules --get "submodule.${1}.path" &> /dev/null; then
 | 
			
		||||
elif ! git config --file .gitmodules --get "submodule.${1}.path" &>/dev/null; then
 | 
			
		||||
  print "$0: submodule not found: $1" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
command git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &> /dev/null
 | 
			
		||||
command git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &> /dev/null
 | 
			
		||||
command git add .gitmodules
 | 
			
		||||
git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &>/dev/null
 | 
			
		||||
git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &>/dev/null
 | 
			
		||||
git add .gitmodules
 | 
			
		||||
 | 
			
		||||
command git rm --cached -rf "$1"
 | 
			
		||||
rm -rf "$1"
 | 
			
		||||
rm -rf "$(git-dir)/modules/$1"
 | 
			
		||||
git rm --cached -rf "${1}"
 | 
			
		||||
rm -rf "${1}"
 | 
			
		||||
rm -rf "$(git-dir)/modules/${1}"
 | 
			
		||||
 | 
			
		||||
return 0
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -13,8 +13,6 @@ fi
 | 
			
		||||
# Load dependencies.
 | 
			
		||||
pmodload 'helper'
 | 
			
		||||
 | 
			
		||||
# Load 'run-help' function.
 | 
			
		||||
autoload -Uz run-help-git
 | 
			
		||||
 | 
			
		||||
# Source module files.
 | 
			
		||||
source "${0:h}/alias.zsh"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +1,33 @@
 | 
			
		||||
# GNU Utility
 | 
			
		||||
GNU Utility
 | 
			
		||||
===========
 | 
			
		||||
 | 
			
		||||
Provides for the interactive use of GNU utilities on BSD systems.
 | 
			
		||||
Provides for the interactive use of GNU utilities on non-GNU 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`_][1] module so that GNU
 | 
			
		||||
utilities enabled in this module are available for configuration in _`utility`_
 | 
			
		||||
module.
 | 
			
		||||
This module must be loaded **before** the *utility* module.
 | 
			
		||||
 | 
			
		||||
## Settings
 | 
			
		||||
Settings
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
### Prefix
 | 
			
		||||
 | 
			
		||||
To use a different prefix, add the following to
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'g'` with the desired prefix.
 | 
			
		||||
To use a different prefix, add the following to *zpreztorc*, and replace 'g' with
 | 
			
		||||
the desired prefix:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:gnu-utility' prefix 'g'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:gnu-utility' prefix 'g'
 | 
			
		||||
 | 
			
		||||
## 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][1].*
 | 
			
		||||
 | 
			
		||||
- [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
 | 
			
		||||
 
 | 
			
		||||
@@ -6,36 +6,34 @@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# 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' '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'
 | 
			
		||||
  '[' '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'
 | 
			
		||||
  'od' 'paste' 'pathchk' 'pinee' 'pr' 'printenv' 'printf' 'ptx'
 | 
			
		||||
  'pwd' 'readlink' 'realpath' 'rm' 'rmdir' 'runcon' 'seq' 'sha1sum'
 | 
			
		||||
  'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf'
 | 
			
		||||
  'sleep' 'sort' 'split' 'stat' 'stty' 'sum' 'sync' 'tac' 'tail'
 | 
			
		||||
  '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' 'coffdump' 'dlltool' 'dllwrap' 'elfedit' 'nm'
 | 
			
		||||
  'objcopy' 'objdump' 'ranlib' 'readelf'
 | 
			
		||||
  'size' 'srconv' 'strings' 'strip' 'sysdump' 'windmc' 'windres'
 | 
			
		||||
  'addr2line' 'ar' 'c++filt' 'elfedit' 'nm' 'objcopy' 'objdump'
 | 
			
		||||
  'ranlib' 'readelf' 'size' 'strings' 'strip'
 | 
			
		||||
 | 
			
		||||
  # Findutils
 | 
			
		||||
  'find' 'locate' 'oldfind' 'updatedb' 'xargs'
 | 
			
		||||
@@ -44,21 +42,20 @@ _gnu_utility_cmds=(
 | 
			
		||||
  'libtool' 'libtoolize'
 | 
			
		||||
 | 
			
		||||
  # Miscellaneous
 | 
			
		||||
  'egrep' 'fgrep' 'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units'
 | 
			
		||||
  'which'
 | 
			
		||||
  'getopt' 'grep' 'indent' '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}]} )); then
 | 
			
		||||
    eval "
 | 
			
		||||
      function $_gnu_utility_cmd {
 | 
			
		||||
        '$commands[$_gnu_utility_pcmd]' \"\$@\"
 | 
			
		||||
      function ${_gnu_utility_cmd} {
 | 
			
		||||
        '${commands[${_gnu_utility_pcmd}]}' \"\$@\"
 | 
			
		||||
      }
 | 
			
		||||
    "
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
unset _gnu_utility_{p,cmds,cmd,pcmd}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,28 +1,27 @@
 | 
			
		||||
# 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
 | 
			
		||||
_`$GNUPGHOME/gpg-agent.conf`_ or _`$$HOME/.gnupg/gpg-agent.conf`_:
 | 
			
		||||
*~/.gnupg/gpg-agent.conf*:
 | 
			
		||||
 | 
			
		||||
```conf
 | 
			
		||||
enable-ssh-support
 | 
			
		||||
```
 | 
			
		||||
    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]: https://www.gnupg.org
 | 
			
		||||
[2]: https://linux.die.net/man/1/gpg-agent
 | 
			
		||||
[1]: http://www.gnupg.org
 | 
			
		||||
[2]: http://linux.die.net/man/1/gpg-agent
 | 
			
		||||
[3]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,40 +11,27 @@ if (( ! $+commands[gpg-agent] )); then
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Set the default paths to gpg-agent files.
 | 
			
		||||
_gpg_agent_conf="${GNUPGHOME:-$HOME/.gnupg}/gpg-agent.conf"
 | 
			
		||||
_gpg_agent_env="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/gpg-agent.env"
 | 
			
		||||
 | 
			
		||||
# Load environment variables from previous run
 | 
			
		||||
source "$_gpg_agent_env" 2> /dev/null
 | 
			
		||||
_gpg_agent_conf="$HOME/.gnupg/gpg-agent.conf"
 | 
			
		||||
_gpg_agent_env="$TMPDIR/gpg-agent.env"
 | 
			
		||||
 | 
			
		||||
# Start gpg-agent if not started.
 | 
			
		||||
if [[ -z "$GPG_AGENT_INFO" && ! -S "${GNUPGHOME:-$HOME/.gnupg}/S.gpg-agent" ]]; then
 | 
			
		||||
  # Start gpg-agent if not started.
 | 
			
		||||
  if ! ps -U "$LOGNAME" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then
 | 
			
		||||
    mkdir -p "$_gpg_agent_env:h"
 | 
			
		||||
    eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
 | 
			
		||||
  fi
 | 
			
		||||
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
 | 
			
		||||
  eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
 | 
			
		||||
else
 | 
			
		||||
  # Export environment variables.
 | 
			
		||||
  source "$_gpg_agent_env" 2> /dev/null
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Inform gpg-agent of the current TTY for user prompts.
 | 
			
		||||
export GPG_TTY=$TTY
 | 
			
		||||
export GPG_TTY="$(tty)"
 | 
			
		||||
 | 
			
		||||
# Integrate with the SSH module.
 | 
			
		||||
if grep '^enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then
 | 
			
		||||
  # Load required functions.
 | 
			
		||||
  autoload -Uz add-zsh-hook
 | 
			
		||||
 | 
			
		||||
if grep 'enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then
 | 
			
		||||
  # Override the ssh-agent environment file default path.
 | 
			
		||||
  _ssh_agent_env="$_gpg_agent_env"
 | 
			
		||||
 | 
			
		||||
  # Load the SSH module for additional processing.
 | 
			
		||||
  pmodload 'ssh'
 | 
			
		||||
 | 
			
		||||
  # Updates the GPG-Agent TTY before every command since SSH does not set it.
 | 
			
		||||
  function _gpg-agent-update-tty {
 | 
			
		||||
    gpg-connect-agent UPDATESTARTUPTTY /bye >/dev/null
 | 
			
		||||
  }
 | 
			
		||||
  add-zsh-hook preexec _gpg-agent-update-tty
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Clean up.
 | 
			
		||||
@@ -54,3 +41,4 @@ unset _gpg_agent_{conf,env}
 | 
			
		||||
if [[ -n "$SSH_CONNECTION" ]]; then
 | 
			
		||||
  export PINENTRY_USER_DATA='USE_CURSES=1'
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,10 @@
 | 
			
		||||
# 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.
 | 
			
		||||
@@ -15,11 +17,13 @@ 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]: https://www.haskell.org/cabal/
 | 
			
		||||
[1]: http://www.haskell.org/cabal/
 | 
			
		||||
[2]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,11 +10,8 @@ if (( ! $+commands[ghc] )); then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Load dependencies.
 | 
			
		||||
pmodload 'helper'
 | 
			
		||||
 | 
			
		||||
# Prepend Cabal per user directories to PATH.
 | 
			
		||||
if is-darwin && [[  -d $HOME/Library/Haskell ]]; then
 | 
			
		||||
if [[ "$OSTYPE" == darwin* && -d $HOME/Library/Haskell ]]; then
 | 
			
		||||
  path=($HOME/Library/Haskell/bin(/N) $path)
 | 
			
		||||
else
 | 
			
		||||
  path=($HOME/.cabal/bin(/N) $path)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,26 +1,25 @@
 | 
			
		||||
# 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.
 | 
			
		||||
- `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).
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -39,3 +39,4 @@ function add-zsh-trap {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
add-zsh-trap "$@"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ function is-autoloadable {
 | 
			
		||||
 | 
			
		||||
# Checks if a name is a command, function, or alias.
 | 
			
		||||
function is-callable {
 | 
			
		||||
  (( $+commands[$1] || $+functions[$1] || $+aliases[$1] || $+builtins[$1] ))
 | 
			
		||||
  (( $+commands[$1] )) || (( $+functions[$1] )) || (( $+aliases[$1] ))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Checks a boolean variable for "true".
 | 
			
		||||
@@ -30,27 +30,3 @@ function coalesce {
 | 
			
		||||
  return 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Checks if running on macOS Darwin.
 | 
			
		||||
function is-darwin {
 | 
			
		||||
  [[ "$OSTYPE" == darwin* ]]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Checks if running on Linux.
 | 
			
		||||
function is-linux {
 | 
			
		||||
  [[ "$OSTYPE" == linux* ]]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Checks if running on BSD.
 | 
			
		||||
function is-bsd {
 | 
			
		||||
  [[ "$OSTYPE" == *bsd* ]]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Checks if running on Cygwin (Windows).
 | 
			
		||||
function is-cygwin {
 | 
			
		||||
  [[ "$OSTYPE" == cygwin* ]]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Checks if running on termux (Android).
 | 
			
		||||
function is-termux {
 | 
			
		||||
  [[ "$OSTYPE" == linux-android ]]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,79 +1,62 @@
 | 
			
		||||
# 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`_][3]
 | 
			
		||||
module, this module must be loaded _after_ the _`syntax-highlighting`_ module.
 | 
			
		||||
If this module is used in conjuncture with the *syntax-highlighting* module, it
 | 
			
		||||
must be loaded **after** it.
 | 
			
		||||
 | 
			
		||||
Additionally, if this module is used in conjunction with the
 | 
			
		||||
[_`autosuggestions`_][4] module, this module must be loaded _before_ the
 | 
			
		||||
_`autosuggestions`_ module.
 | 
			
		||||
 | 
			
		||||
To elaborate, the relative order of loading the modules would be
 | 
			
		||||
_`syntax-highlighting`_, _`history-substring-search`_ and _`autosuggestions`_.
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
 | 
			
		||||
*zpreztorc*:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
 | 
			
		||||
```
 | 
			
		||||
    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 disable highlighting for this module only, add the following line to
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
 | 
			
		||||
To enable highlighting for this module only, add the following line to
 | 
			
		||||
*zpreztorc*:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history-substring-search' color 'no'
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:history-substring-search' color 'yes'
 | 
			
		||||
 | 
			
		||||
To set the query found color, add the following line to
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
 | 
			
		||||
To set the query found color, add the following line to *zpreztorc*:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history-substring-search:color' found ''
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:history-substring-search:color' found ''
 | 
			
		||||
 | 
			
		||||
To set the query not found color, add the following line to
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
 | 
			
		||||
To set the query not found color, add the following line to *zpreztorc*:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history-substring-search:color' not-found ''
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:history-substring-search:color' not-found ''
 | 
			
		||||
 | 
			
		||||
To set the search globbing flags, add the following line to
 | 
			
		||||
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
 | 
			
		||||
To set the search globbing flags, add the following line to *zpreztorc*:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history-substring-search' globbing-flags ''
 | 
			
		||||
```
 | 
			
		||||
    zstyle ':prezto:module:history-substring-search' globbing-flags ''
 | 
			
		||||
 | 
			
		||||
## 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][3].*
 | 
			
		||||
 | 
			
		||||
- [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]: https://fishshell.com
 | 
			
		||||
[3]: ../syntax-highlighting#readme
 | 
			
		||||
[4]: ../autosuggestions#readme
 | 
			
		||||
[5]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
[2]: http://fishshell.com
 | 
			
		||||
[3]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
 Submodule modules/history-substring-search/external updated: 0f80b8eb33...d9b28ed7f9
									
								
							@@ -10,9 +10,7 @@
 | 
			
		||||
pmodload 'editor'
 | 
			
		||||
 | 
			
		||||
# Source module files.
 | 
			
		||||
if (( ! $+functions[history-substring-search-up] )); then
 | 
			
		||||
  source "${0:h}/external/zsh-history-substring-search.zsh" || return 1
 | 
			
		||||
fi
 | 
			
		||||
source "${0:h}/external/zsh-history-substring-search.zsh"
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Search
 | 
			
		||||
@@ -56,6 +54,5 @@ if [[ -n "$key_info" ]]; then
 | 
			
		||||
    bindkey -M "$keymap" "$key_info[Up]" history-substring-search-up
 | 
			
		||||
    bindkey -M "$keymap" "$key_info[Down]" history-substring-search-down
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  unset keymap
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,79 +1,44 @@
 | 
			
		||||
# History
 | 
			
		||||
History
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
Sets [history][1] options and defines history aliases.
 | 
			
		||||
 | 
			
		||||
**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`_.
 | 
			
		||||
Variables
 | 
			
		||||
---------
 | 
			
		||||
 | 
			
		||||
Alternately, you can set `HISTFILE` manually to _`${ZDOTDIR:-$HOME}/.zhistory`_.
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
## Options
 | 
			
		||||
Options
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
  - `BANG_HIST` treats the **!** character specially during expansion.
 | 
			
		||||
  - `EXTENDED_HISTORY` writes the history file in the *:start:elapsed;command* format.
 | 
			
		||||
  - `INC_APPEND_HISTORY` writes to the history file immediately, not when the shell exits.
 | 
			
		||||
  - `SHARE_HISTORY` shares history between all sessions.
 | 
			
		||||
  - `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.
 | 
			
		||||
 | 
			
		||||
## 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].*
 | 
			
		||||
 | 
			
		||||
## Settings
 | 
			
		||||
  - [Robby Russell](https://github.com/robbyrussell)
 | 
			
		||||
  - [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
### histfile
 | 
			
		||||
 | 
			
		||||
Can be configured either by setting HISTFILE manually before loading this
 | 
			
		||||
module or by using zstyle:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history' histfile "<file_name>"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
defaults to "${ZDOTDIR:-$HOME}/.zsh_history".
 | 
			
		||||
 | 
			
		||||
### histsize
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history' histsize <number>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
defaults to 10000.
 | 
			
		||||
 | 
			
		||||
### savehist
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history' savehist <number>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
defaults to histsize
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
_The authors of this module should be contacted via the [issue tracker][2]._
 | 
			
		||||
 | 
			
		||||
- [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
 | 
			
		||||
[1]: http://zsh.sourceforge.net/Guide/zshguide02.html#l16
 | 
			
		||||
[2]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,12 +6,21 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Variables
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
HISTFILE="${ZDOTDIR:-$HOME}/.zhistory"       # 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.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Options
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
setopt BANG_HIST                 # Treat the '!' character specially during expansion.
 | 
			
		||||
setopt EXTENDED_HISTORY          # Write the history file in the ':start:elapsed;command' format.
 | 
			
		||||
setopt INC_APPEND_HISTORY        # Write to the history file immediately, not when the shell exits.
 | 
			
		||||
setopt SHARE_HISTORY             # Share history between all sessions.
 | 
			
		||||
setopt HIST_EXPIRE_DUPS_FIRST    # Expire a duplicate event first when trimming history.
 | 
			
		||||
setopt HIST_IGNORE_DUPS          # Do not record an event that was just recorded again.
 | 
			
		||||
@@ -22,46 +31,9 @@ setopt HIST_SAVE_NO_DUPS         # Do not write a duplicate event to the history
 | 
			
		||||
setopt HIST_VERIFY               # Do not execute immediately upon history expansion.
 | 
			
		||||
setopt HIST_BEEP                 # Beep when accessing non-existent history.
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Variables
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
zstyle -s ':prezto:module:history' histfile '_pmh_histfile' || _pmh_histfile="${HISTFILE:-${ZDOTDIR:-$HOME}/.zsh_history}"
 | 
			
		||||
zstyle -s ':prezto:module:history' histsize '_pmh_histsize' || _pmh_histsize=10000
 | 
			
		||||
zstyle -s ':prezto:module:history' savehist '_pmh_savehist' || _pmh_savehist=${_pmh_histsize}
 | 
			
		||||
HISTFILE="${_pmh_histfile}"  # The path to the history file.
 | 
			
		||||
HISTSIZE="${_pmh_histsize}"  # The maximum number of events to save in the internal history.
 | 
			
		||||
SAVEHIST="${_pmh_savehist}"  # The maximum number of events to save in the history file.
 | 
			
		||||
unset _pmh_{hist{file,size},savehist}
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Aliases
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# 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
 | 
			
		||||
    <<EON
 | 
			
		||||
NOTICE: Default path of 'HISTFILE' has changed from '${OLD_HISTFILE/#$HOME/~}'
 | 
			
		||||
        to '${HISTFILE/#$HOME/~}'.
 | 
			
		||||
        Attempting to rename the existing 'HISTFILE' ...
 | 
			
		||||
EON
 | 
			
		||||
    command mv -v "$OLD_HISTFILE" "$HISTFILE"
 | 
			
		||||
 | 
			
		||||
  # New 'HISTFILE' does exist and is older than legacy one, just warn.
 | 
			
		||||
  elif [[ "$OLD_HISTFILE" -nt "$HISTFILE" ]]; then
 | 
			
		||||
    <<EOW
 | 
			
		||||
WARNING: Default path of 'HISTFILE' has changed from '${OLD_HISTFILE/#$HOME/~}'
 | 
			
		||||
         to '${HISTFILE/#$HOME/~}'.
 | 
			
		||||
         Either set 'HISTFILE' in '${${0:h}/#$HOME/~}'
 | 
			
		||||
         or move previous history from '${OLD_HISTFILE/#$HOME/~}' to
 | 
			
		||||
         '${HISTFILE/#$HOME/~}'.
 | 
			
		||||
EOW
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  unset OLD_HISTFILE
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -1,43 +1,26 @@
 | 
			
		||||
# Homebrew
 | 
			
		||||
Homebrew
 | 
			
		||||
========
 | 
			
		||||
 | 
			
		||||
Defines Homebrew specific environment variables and aliases.
 | 
			
		||||
Defines Homebrew aliases.
 | 
			
		||||
 | 
			
		||||
## Variables
 | 
			
		||||
Aliases
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
Execute the following to list the environment variables loaded in the shell:
 | 
			
		||||
  - `brewc` cleans outdated brews and their cached archives.
 | 
			
		||||
  - `brewC` cleans outdated brews, including keg-only, and their cached archives.
 | 
			
		||||
  - `brewi` installs a formula.
 | 
			
		||||
  - `brewl` lists installed formulae.
 | 
			
		||||
  - `brews` searches for a formula.
 | 
			
		||||
  - `brewU` upgrades Homebrew and outdated brews.
 | 
			
		||||
  - `brewu` upgrades Homebrew.
 | 
			
		||||
  - `brewx` uninstalls a formula.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
brew shellenv
 | 
			
		||||
```
 | 
			
		||||
Authors
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
*The authors of this module should be contacted via the [issue tracker][1].*
 | 
			
		||||
 | 
			
		||||
### Homebrew Core
 | 
			
		||||
 | 
			
		||||
- `brewc` cleans outdated brews and their cached archives.
 | 
			
		||||
- `brewi` installs a formula.
 | 
			
		||||
- `brewL` lists installed formulae that are not dependencies of another
 | 
			
		||||
  installed formula.
 | 
			
		||||
- `brewl` lists installed formulae.
 | 
			
		||||
- `brewo` lists brews which have an update available.
 | 
			
		||||
- `brews` searches for a formula.
 | 
			
		||||
- `brewu` upgrades outdated formulae.
 | 
			
		||||
- `brewx` uninstalls a formula.
 | 
			
		||||
 | 
			
		||||
### Homebrew Cask
 | 
			
		||||
 | 
			
		||||
- `caski` installs a cask.
 | 
			
		||||
- `caskl` lists installed casks.
 | 
			
		||||
- `casko` lists casks which have an update available.
 | 
			
		||||
- `casks` searches for a cask.
 | 
			
		||||
- `casku` upgrades outdated casks.
 | 
			
		||||
- `caskx` uninstalls a cask.
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
_The authors of this module should be contacted via the [issue tracker][1]._
 | 
			
		||||
 | 
			
		||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
- [Griffin Yourick](https://github.com/tough-griff)
 | 
			
		||||
  - [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
[1]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,43 +5,21 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Load dependencies.
 | 
			
		||||
pmodload 'helper'
 | 
			
		||||
 | 
			
		||||
# Return if requirements are not found.
 | 
			
		||||
if ! is-darwin && ! is-linux; then
 | 
			
		||||
if [[ "$OSTYPE" != darwin* ]]; then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Variables
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Load standard Homebrew shellenv into the shell session.
 | 
			
		||||
# Load 'HOMEBREW_' prefixed variables only. Avoid loading 'PATH' related
 | 
			
		||||
# variables as they are already handled in standard zsh configuration.
 | 
			
		||||
if (( $+commands[brew] )); then
 | 
			
		||||
  eval "${(@M)${(f)"$(brew shellenv 2> /dev/null)"}:#export HOMEBREW*}"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Aliases
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Homebrew
 | 
			
		||||
alias brewc='brew cleanup'
 | 
			
		||||
alias brewC='brew cleanup --force'
 | 
			
		||||
alias brewi='brew install'
 | 
			
		||||
alias brewL='brew leaves'
 | 
			
		||||
alias brewl='brew list'
 | 
			
		||||
alias brewo='brew outdated'
 | 
			
		||||
alias brews='brew search'
 | 
			
		||||
alias brewu='brew upgrade'
 | 
			
		||||
alias brewx='brew uninstall'
 | 
			
		||||
alias brewU='brew update && brew upgrade'
 | 
			
		||||
alias brewx='brew remove'
 | 
			
		||||
 | 
			
		||||
# Homebrew Cask
 | 
			
		||||
alias caski='brew install --cask'
 | 
			
		||||
alias caskl='brew list --cask'
 | 
			
		||||
alias casko='brew outdated --cask'
 | 
			
		||||
alias casks='brew search --cask'
 | 
			
		||||
alias casku='brew upgrade --cask'
 | 
			
		||||
alias caskx='brew uninstall --cask'
 | 
			
		||||
 
 | 
			
		||||
@@ -1,22 +1,26 @@
 | 
			
		||||
# MacPorts
 | 
			
		||||
Macports
 | 
			
		||||
========
 | 
			
		||||
 | 
			
		||||
Defines MacPorts aliases and adds MacPorts directories to path variables.
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
Aliases
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
- `portc` cleans the files used to build ports.
 | 
			
		||||
- `porti` installs a port.
 | 
			
		||||
- `ports` searches for a port.
 | 
			
		||||
- `portu` upgrades a port.
 | 
			
		||||
- `portU` upgrades MacPorts, the ports collection, and outdated ports.
 | 
			
		||||
- `portx` uninstalls a port.
 | 
			
		||||
- `portX` uninstalls inactive ports.
 | 
			
		||||
  - `portc` cleans the files used to build ports.
 | 
			
		||||
  - `porti` installs a port.
 | 
			
		||||
  - `ports` searches for a port.
 | 
			
		||||
  - `portu` upgrades a port.
 | 
			
		||||
  - `portU` upgrades MacPorts, the ports collection, and outdated ports.
 | 
			
		||||
  - `portx` uninstalls a port.
 | 
			
		||||
  - `portX` uninstalls inactive ports.
 | 
			
		||||
 | 
			
		||||
## 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].*
 | 
			
		||||
 | 
			
		||||
- [Matt Cable](https://github.com/curiousstranger)
 | 
			
		||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
  - [Matt Cable](https://github.com/curiousstranger)
 | 
			
		||||
  - [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
[1]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,11 +6,8 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Load dependencies.
 | 
			
		||||
pmodload 'helper'
 | 
			
		||||
 | 
			
		||||
# Return if requirements are not found.
 | 
			
		||||
if ! is-darwin; then
 | 
			
		||||
if [[ "$OSTYPE" != darwin* ]]; then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@@ -35,3 +32,4 @@ alias portU='sudo port selfupdate && sudo port upgrade outdated'
 | 
			
		||||
alias portu='sudo port upgrade'
 | 
			
		||||
alias portX='sudo port -u uninstall'
 | 
			
		||||
alias portx='sudo port uninstall'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,84 +1,46 @@
 | 
			
		||||
# Node.js
 | 
			
		||||
Node.js
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
Provides utility functions for [Node.js][1], loads the Node Version Manager, and
 | 
			
		||||
enables [_npm_][2] completion.
 | 
			
		||||
enables [npm][2] completion.
 | 
			
		||||
 | 
			
		||||
This module must be loaded _before_ the _`completion`_ module so that the
 | 
			
		||||
provided completion definitions are loaded.
 | 
			
		||||
nvm
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## nodenv
 | 
			
		||||
 | 
			
		||||
[_nodenv_][5] does one thing well - it is concerned solely with switching
 | 
			
		||||
Node versions. It is simple and predictable, Just Works, and is rock solid in
 | 
			
		||||
production. nodenv is forked from the popular [_rbenv_][6].
 | 
			
		||||
 | 
			
		||||
This will be loaded automatically if nodenv is installed in `$NODENV_ROOT`,
 | 
			
		||||
_`$XDG_CONFIG_HOME/nodenv`_, _`~/.nodenv`_, or `nodenv` is on the path.
 | 
			
		||||
 | 
			
		||||
## nvm
 | 
			
		||||
 | 
			
		||||
[_nvm_][7] allows for managing multiple, isolated Node.js installations in the
 | 
			
		||||
[nvm][5] allows for managing multiple, isolated Node.js installations in the
 | 
			
		||||
home directory.
 | 
			
		||||
 | 
			
		||||
This will be loaded automatically if nvm is installed in `$NVM_DIR`,
 | 
			
		||||
_`$XDG_CONFIG_HOME/nvm`_, _`~/.nvm`_, or is installed with homebrew.
 | 
			
		||||
Functions
 | 
			
		||||
---------
 | 
			
		||||
 | 
			
		||||
## Variables
 | 
			
		||||
  - `node-doc` opens the Node.js online [API documentation][3] in the default
 | 
			
		||||
    browser.
 | 
			
		||||
  - `node-info` exposes information about the Node.js environment via the
 | 
			
		||||
    `$node_info` associative array.
 | 
			
		||||
 | 
			
		||||
- `N_PREFIX` stores the path to [_n_][8] cache.
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
 | 
			
		||||
### npm
 | 
			
		||||
 | 
			
		||||
- `npmi` install a package.
 | 
			
		||||
- `npml` list installed packages.
 | 
			
		||||
- `npmo` check for outdated packages.
 | 
			
		||||
- `npmp` publish a package.
 | 
			
		||||
- `npmP` remove extraneous packages.
 | 
			
		||||
- `npmr` run arbitrary package scripts.
 | 
			
		||||
- `npms` search for packages.
 | 
			
		||||
- `npmt` test a package.
 | 
			
		||||
- `npmu` update packages.
 | 
			
		||||
- `npmx` uninstalls a package.
 | 
			
		||||
 | 
			
		||||
- `npmci` install a project with a clean slate.
 | 
			
		||||
- `npmcit` install a project with a clean slate and run tests.
 | 
			
		||||
- `npmit` install package(s) and run tests.
 | 
			
		||||
 | 
			
		||||
## Functions
 | 
			
		||||
 | 
			
		||||
- `node-doc` opens the Node.js online [API documentation][3] in the default
 | 
			
		||||
  browser.
 | 
			
		||||
- `node-info` exposes information about the Node.js environment via the
 | 
			
		||||
  `$node_info` associative array.
 | 
			
		||||
 | 
			
		||||
## Theming
 | 
			
		||||
Theming
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
To display the version number of the current Node.js version, define the
 | 
			
		||||
following style inside the `prompt_name_setup` function.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
# %v - Node.js version.
 | 
			
		||||
zstyle ':prezto:module:node:info:version' format 'version:%v'
 | 
			
		||||
```
 | 
			
		||||
    # %v - Node.js version.
 | 
			
		||||
    zstyle ':prezto:module:node:info:version' format 'version:%v'
 | 
			
		||||
 | 
			
		||||
Then add `$node_info[version]` to either `$PROMPT` or `$RPROMPT` and call
 | 
			
		||||
`node-info` in `prompt_name_preexec` 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)
 | 
			
		||||
- [Zeh Rizzatti](https://github.com/zehrizzatti)
 | 
			
		||||
- [Indrajit Raychaudhuri](https://github.com/indrajitr)
 | 
			
		||||
  - [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
  - [Zeh Rizzatti](https://github.com/zehrizzatti)
 | 
			
		||||
 | 
			
		||||
[1]: http://nodejs.org
 | 
			
		||||
[2]: http://npmjs.org
 | 
			
		||||
[3]: http://nodejs.org/api
 | 
			
		||||
[4]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
[5]: https://github.com/nodenv/nodenv
 | 
			
		||||
[6]: https://github.com/sstephenson/rbenv
 | 
			
		||||
[7]: https://github.com/nvm-sh/nvm
 | 
			
		||||
[8]: https://github.com/tj/n
 | 
			
		||||
[5]: https://github.com/creationix/nvm
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +0,0 @@
 | 
			
		||||
#compdef grunt
 | 
			
		||||
#autoload
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Grunt completion, delegating to grunt to do all the completion work.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Indrajit Raychaudhuri <irc@indrajit.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if (( $+commands[grunt] )); then
 | 
			
		||||
  eval "$(grunt --completion=zsh)"
 | 
			
		||||
 | 
			
		||||
  _grunt_completion "$@"
 | 
			
		||||
fi
 | 
			
		||||
@@ -1,15 +0,0 @@
 | 
			
		||||
#compdef gulp
 | 
			
		||||
#autoload
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Gulp completion, delegating to gulp to do all the completion work.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Indrajit Raychaudhuri <irc@indrajit.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if (( $+commands[gulp] )); then
 | 
			
		||||
  eval "$(gulp --completion=zsh)"
 | 
			
		||||
 | 
			
		||||
  _gulp_completion "$@"
 | 
			
		||||
fi
 | 
			
		||||
@@ -5,14 +5,6 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function node-doc {
 | 
			
		||||
 | 
			
		||||
if [[ -z "$BROWSER" ]]; then
 | 
			
		||||
  print "$0: no web browser defined" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# TODO: Make the sections easier to use.
 | 
			
		||||
"$BROWSER" "https://nodejs.org/docs/${$(node --version 2> /dev/null)/%-*}/api/all.html#${1}"
 | 
			
		||||
open "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}"
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,6 @@
 | 
			
		||||
#   Zeh Rizzatti <zehrizzatti@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function node-info {
 | 
			
		||||
 | 
			
		||||
local version
 | 
			
		||||
local version_format
 | 
			
		||||
local version_formatted
 | 
			
		||||
@@ -15,18 +13,13 @@ local version_formatted
 | 
			
		||||
unset node_info
 | 
			
		||||
typeset -gA node_info
 | 
			
		||||
 | 
			
		||||
if (( $+commands[nodenv] )); then
 | 
			
		||||
  version="${${$(nodenv version)#v}[(w)0]}"
 | 
			
		||||
elif (( $+functions[nvm_version] )); then
 | 
			
		||||
if (( $+functions[nvm_version] )); then
 | 
			
		||||
  version="${$(nvm_version)#v}"
 | 
			
		||||
elif (( $+commands[node] )) ; then
 | 
			
		||||
  version="${$(node -v)#v}"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [[ "$version" != (none|system) ]]; then
 | 
			
		||||
if [[ -n "$version" ]]; then
 | 
			
		||||
  zstyle -s ':prezto:module:node:info:version' format 'version_format'
 | 
			
		||||
  zformat -f version_formatted "$version_format" "v:$version"
 | 
			
		||||
  node_info[version]="$version_formatted"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,65 +1,32 @@
 | 
			
		||||
#
 | 
			
		||||
# Configures Node local installation, loads version managers, and defines
 | 
			
		||||
# variables and aliases.
 | 
			
		||||
# Loads the Node Version Manager and enables npm completion.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#   Zeh Rizzatti <zehrizzatti@gmail.com>
 | 
			
		||||
#   Indrajit Raychaudhuri <irc@indrajit.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# 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 manually installed or package manager installed nodenv into the shell
 | 
			
		||||
# session.
 | 
			
		||||
if (( $#local_nodenv_paths || $+commands[nodenv] )); then
 | 
			
		||||
 | 
			
		||||
  # Ensure manually installed nodenv is added to path when present.
 | 
			
		||||
  [[ -s $local_nodenv_paths[1] ]] && path=($local_nodenv_paths[1]:h $path)
 | 
			
		||||
 | 
			
		||||
  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
 | 
			
		||||
# Load NVM into the shell session.
 | 
			
		||||
if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
 | 
			
		||||
  source "$HOME/.nvm/nvm.sh"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
unset local_n{odenv,vm}_paths nvm_path
 | 
			
		||||
 | 
			
		||||
# Return if requirements are not found.
 | 
			
		||||
if (( ! $+commands[node] && ! $#functions[(i)n(odenv|vm)] )); then
 | 
			
		||||
if (( ! $+commands[node] )); then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Variables
 | 
			
		||||
#
 | 
			
		||||
# Load NPM completion.
 | 
			
		||||
if (( $+commands[npm] )); then
 | 
			
		||||
  cache_file="${0:h}/cache.zsh"
 | 
			
		||||
 | 
			
		||||
N_PREFIX="${XDG_CONFIG_HOME:-$HOME/.config}/n"  # The path to 'n' cache.
 | 
			
		||||
  if [[ "$commands[npm]" -nt "$cache_file" || ! -s "$cache_file" ]]; then
 | 
			
		||||
    # npm is slow; cache its output.
 | 
			
		||||
    npm completion >! "$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
 | 
			
		||||
 | 
			
		||||
alias npmci='npm ci'
 | 
			
		||||
alias npmcit='npm cit'
 | 
			
		||||
alias npmit='npm it'
 | 
			
		||||
 
 | 
			
		||||
@@ -1,24 +0,0 @@
 | 
			
		||||
# OCaml
 | 
			
		||||
 | 
			
		||||
Initializes [OCaml][1] package management.
 | 
			
		||||
 | 
			
		||||
## OPAM
 | 
			
		||||
 | 
			
		||||
[OPAM][2] is a package manager for OCaml.
 | 
			
		||||
 | 
			
		||||
This module enables local package installation with OPAM by extending the
 | 
			
		||||
relevant path and OCaml variables.
 | 
			
		||||
 | 
			
		||||
### Usage
 | 
			
		||||
 | 
			
		||||
Install packages to your local package directory with `opam install`.
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
_The authors of this module should be contacted via the [issue tracker][3]._
 | 
			
		||||
 | 
			
		||||
- [Sebastian Wiesner](https://github.com/lunaryorn)
 | 
			
		||||
 | 
			
		||||
[1]: https://ocaml.org/
 | 
			
		||||
[2]: http://opam.ocamlpro.com/
 | 
			
		||||
[3]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
@@ -1,14 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Initializes OCaml package management.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sebastian Wiesner <lunaryorn@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Return if requirements are not found.
 | 
			
		||||
if [[ ! -f "$HOME/.opam/opam-init/init.zsh" ]]; then
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Initialize OPAM.
 | 
			
		||||
source "$HOME/.opam/opam-init/init.zsh"
 | 
			
		||||
@@ -1,23 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Exposes information about the OpenStack environment via the $os_info associative
 | 
			
		||||
# array.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function os-info {
 | 
			
		||||
 | 
			
		||||
local tenant
 | 
			
		||||
local tenant_format
 | 
			
		||||
local tenant_formatted
 | 
			
		||||
 | 
			
		||||
unset os_info
 | 
			
		||||
typeset -gA os_info
 | 
			
		||||
 | 
			
		||||
[[ -n "${OS_PROJECT_NAME+1}" ]] && tenant="${OS_PROJECT_NAME}"
 | 
			
		||||
 | 
			
		||||
if [[ "$tenant" != (none|) ]]; then
 | 
			
		||||
  zstyle -s ':prezto:module:openstack:info:tenant' format 'tenant_format'
 | 
			
		||||
  zformat -f tenant_formatted "$tenant_format" "v:$tenant"
 | 
			
		||||
  os_info[tenant]="$tenant_formatted"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
@@ -1,50 +1,35 @@
 | 
			
		||||
# OSX
 | 
			
		||||
OSX
 | 
			
		||||
===
 | 
			
		||||
 | 
			
		||||
Defines [macOS][1] aliases and functions.
 | 
			
		||||
Defines [Mac OS X][1] aliases and functions.
 | 
			
		||||
 | 
			
		||||
This module must be loaded _before_ the [_`completion`_][2] module so that the
 | 
			
		||||
provided completion definitions are loaded automatically by _`completion`_
 | 
			
		||||
module.
 | 
			
		||||
Aliases
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
## Settings
 | 
			
		||||
  - `cdf` changes the current working director to the current _Finder_
 | 
			
		||||
    directory.
 | 
			
		||||
  - `pushdf` pushes the current working directory onto the directory queue and
 | 
			
		||||
  - `ql` quick looks at files.
 | 
			
		||||
  - `rm-osx-cruft` deletes .DS\_Store, \_\_MACOSX cruft.
 | 
			
		||||
 | 
			
		||||
### Dash Keyword
 | 
			
		||||
Functions
 | 
			
		||||
---------
 | 
			
		||||
 | 
			
		||||
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].
 | 
			
		||||
  - `manb` opens _man_ pages in [_Bwana.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]).
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:osx:man' dash-keyword 'keyword'
 | 
			
		||||
```
 | 
			
		||||
Authors
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
*The authors of this module should be contacted via the [issue tracker][4].*
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
  - [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
## Functions
 | 
			
		||||
[1]: http://www.apple.com/macosx/
 | 
			
		||||
[2]: http://bruji.com/bwana/
 | 
			
		||||
[3]: http://www.iterm2.com/
 | 
			
		||||
[4]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 | 
			
		||||
- `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
 | 
			
		||||
 | 
			
		||||
_The authors of this module should be contacted via the [issue tracker][5]._
 | 
			
		||||
 | 
			
		||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
[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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,12 @@
 | 
			
		||||
#compdef mand manp
 | 
			
		||||
#compdef manb manp
 | 
			
		||||
#autoload
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Completes mand and manp.
 | 
			
		||||
# Completes manb and manp.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
_man
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								modules/osx/functions/manb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								modules/osx/functions/manb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
#
 | 
			
		||||
# Opens man pages in Bwana.app.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
function manb {
 | 
			
		||||
  local page
 | 
			
		||||
  if (( $# > 0 )); then
 | 
			
		||||
    for page in "$@"; do
 | 
			
		||||
      open "man:$page" 2>/dev/null
 | 
			
		||||
      if (( $? != 0 )); then
 | 
			
		||||
        print "$0: Bwana is not installed" >&2
 | 
			
		||||
        break
 | 
			
		||||
      fi
 | 
			
		||||
    done
 | 
			
		||||
  else
 | 
			
		||||
    print 'What manual page do you want?' >&2
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
manb "$@"
 | 
			
		||||
 | 
			
		||||
@@ -1,23 +0,0 @@
 | 
			
		||||
#
 | 
			
		||||
# Opens man pages in Dash.app.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
function mand {
 | 
			
		||||
  if (( $# > 0 )); then
 | 
			
		||||
    zstyle -s ':prezto:module:osx:man' dash-keyword 'dashkw' || dashkw='manpages'
 | 
			
		||||
    open "dash://$dashkw%3A$1" 2> /dev/null
 | 
			
		||||
    if (( $? != 0 )); then
 | 
			
		||||
      print "$0: Dash is not installed" >&2
 | 
			
		||||
      break
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    print 'What manual page do you want?' >&2
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  unset dashkw
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mand "$@"
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user