1
0
mirror of https://github.com/dcarrillo/prezto.git synced 2025-07-01 20:59:26 +00:00

Compare commits

..

3 Commits

Author SHA1 Message Date
113f6763c2 Add a function to define a style if not defined 2012-10-04 20:57:45 -04:00
59f448d6ed Clean up the borra theme 2012-10-03 19:17:42 -04:00
3456166ab0 Add prompt borra 2012-10-03 02:00:57 +02:00
191 changed files with 1818 additions and 4941 deletions

View File

@ -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

View File

@ -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:

View File

@ -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
View File

@ -1,4 +1,3 @@
*.zwc *.zwc
*.zwc.old *.zwc.old
modules/*/cache.zsh modules/*/cache.zsh
contrib

21
.gitmodules vendored
View File

@ -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"] [submodule "modules/history-substring-search/external"]
path = modules/history-substring-search/external path = modules/history-substring-search/external
url = https://github.com/zsh-users/zsh-history-substring-search.git url = https://github.com/zsh-users/zsh-history-substring-search.git
@ -10,21 +7,3 @@
[submodule "modules/completion/external"] [submodule "modules/completion/external"]
path = modules/completion/external path = modules/completion/external
url = https://github.com/zsh-users/zsh-completions.git 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/functions/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/powerlevel9k"]
path = modules/prompt/external/powerlevel9k
url = https://github.com/bhilburn/powerlevel9k.git

View File

@ -23,39 +23,6 @@ improve its performance, do not hesitate to fork and send pull requests.
- Open a [pull request][4] that relates to but one subject with a clear - Open a [pull request][4] that relates to but one subject with a clear
title and description in grammatically correct, complete sentences. title and description in grammatically correct, complete sentences.
#### Code Style
This project follows the [Google Shell Style Guide][5] when possible. However,
there are a number of additional things to keep in mind.
- Local variables should be used whenever possible.
- Prefer `zstyle` over environment variables for configuration.
- Prefer (( ... )) over [[ ... ]] for arithmetic expression.
- Use the function keyword to define functions.
- The 80 character hard limit can be waved for readability.
#### Using an Alternative zprezto Directory
To work on zprezto without messing with 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:
```sh
ZDOTDIR=/path/to/devel-zprezto zsh
```
#### Modules #### Modules
- A *README.md* must be present. - A *README.md* must be present.
@ -65,11 +32,11 @@ ZDOTDIR=/path/to/devel-zprezto zsh
#### Themes #### Themes
- A screenshots section must be present in the file header. - A screenshots section must be present in the file header.
- The pull request description must have [embedded screenshots][6]. - The pull request description must have [embedded screenshots][5].
[1]: https://github.com/sorin-ionescu/prezto/contributors [1]: https://github.com/sorin-ionescu/prezto/contributors
[2]: http://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 [3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[4]: https://help.github.com/articles/using-pull-requests [4]: https://help.github.com/articles/using-pull-requests
[5]: https://google.github.io/styleguide/shell.xml [5]: http://daringfireball.net/projects/markdown/syntax#img
[6]: http://daringfireball.net/projects/markdown/syntax#img

20
LICENSE
View File

@ -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

114
README.md
View File

@ -8,67 +8,56 @@ and prompt themes.
Installation Installation
------------ ------------
Prezto will work with any recent release of Zsh, but the minimum required Prezto will work with any recent release of Zsh, but the minimum recommended
version is 4.3.11. version is 4.3.10.
1. Launch Zsh: 1. Launch Zsh:
```console zsh
zsh
```
2. Clone the repository: 2. Clone the repository:
```console git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
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 3. Create a new Zsh configuration by copying the Zsh configuration files
provided: provided:
```sh setopt EXTENDED_GLOB
setopt EXTENDED_GLOB for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" done
done
```
Note: If you already have any of the given config files, ln will error. In
simple cases you can add `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to
the bottom of your `.zshrc` to load prezto but keep your config intact. For
more complicated setups, it is recommended that you back up your original
configs and replace them with the provided prezto runcoms.
4. Set Zsh as your default shell: 4. Set Zsh as your default shell:
```console chsh -s /bin/zsh
chsh -s /bin/zsh
```
5. Open a new Zsh terminal window or tab. 5. Open a new Zsh terminal window or tab.
### Mac OS X
If you have administrator privileges, you must fix an Apple-introduced problem
in Mac OS X 10.5 Leopard by executing the following command, or BASH and Zsh
will have the wrong `PATH` when executed non-interactively.
sudo chmod ugo-x /usr/libexec/path_helper
`path_helper` is intended to make it easier for installers to add new paths to
the environment without having to edit shell configuration files by adding
a file with a path to the */etc/paths.d* directory.
Unfortunately, `path_helper` always reads paths from */etc/paths* set by Apple
then paths from */etc/paths.d* set by third party installers, and lastly paths
from the `PATH` environment variable set by the parent process, which
ultimately is set by the user with `export PATH=...` Thus, it reorders path
priorities, and user */bin* directories meant to override system */bin*
directories end up at the tail of the array.
### Troubleshooting ### Troubleshooting
If you are not able to find certain commands after switching to *Prezto*, If you are not able to find certain commands after switching to *Prezto*,
modify the `PATH` variable in *~/.zprofile* then open a new Zsh terminal modify the `PATH` variable in *~/.zshenv* then open a new Zsh terminal
window or tab. window or tab.
Updating
--------
Run `zprezto-update` to automatically check if there is an update to zprezto.
If there are no file conflicts, zprezto and its submodules will be
automatically updated. If there are conflicts you will 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 update --init --recursive
```
Usage Usage
----- -----
@ -90,26 +79,12 @@ accompanying README files to learn of what is available.
![sorin theme][2] ![sorin theme][2]
### External Modules
1. By default modules will be loaded from */modules* and */contrib*.
2. Additional module directories can be added to the
`:prezto:load:pmodule-dirs` setting in *~/.zpreztorc*.
Note that module names need to be unique or they will cause an error when
loading.
```console
zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib
```
Customization Customization
------------- -------------
The project is managed via [Git][3]. It is highly recommended that you fork this The project is managed via [Git][3]. It is highly recommend that you commit
project; so, that you can commit your changes and push them to [GitHub][4] to your changes and push them to [GitHub][4] to not lose them. If you do not know
not lose them. If you do not know how to use Git, follow this [tutorial][5] and how to use Git, follow this [tutorial][5] and bookmark this [reference][6].
bookmark this [reference][6].
Resources Resources
--------- ---------
@ -119,13 +94,34 @@ 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)
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 [1]: http://www.zsh.org
[2]: http://i.imgur.com/nrGV6pg.png "sorin theme" [2]: http://i.imgur.com/nBEEZ.png "sorin theme"
[3]: http://git-scm.com [3]: http://git-scm.com
[4]: https://github.com [4]: https://github.com
[5]: http://gitimmersion.com [5]: http://gitimmersion.com
[6]: http://gitref.org [6]: http://gitref.org
[7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf [7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf
[8]: http://grml.org/zsh/zsh-lovers.html [8]: http://grml.org/zsh/zsh-lovers.html

147
init.zsh
View File

@ -10,75 +10,13 @@
# #
# Check for the minimum supported version. # 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 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 return 1
fi fi
unset min_zsh_version unset min_zsh_version
# Change the resolution of the SECONDS variable to be more useful for debugging.
typeset -F SECONDS
# logging convenience, mostly meant for debugging performance issues.
function pdebuglog {
if ! zstyle -t ":prezto" debug; then
return
fi
local format="$1"
shift
printf "[%f] $format\n" $SECONDS "$@"
}
# 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 update --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 # Module Loader
# #
@ -86,71 +24,44 @@ function zprezto-update {
# Loads Prezto modules. # Loads Prezto modules.
function pmodload { function pmodload {
local -a pmodules local -a pmodules
local -a pmodule_dirs
local -a locations
local pmodule local pmodule
local pmodule_location local pfunction_glob='^([_.]*|prompt_*_setup|README*)(.N:t)'
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[@]")
# $argv is overridden in the anonymous function. # $argv is overridden in the anonymous function.
pmodules=("$argv[@]") 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. # Load Prezto modules.
for pmodule in "$pmodules[@]"; do for pmodule in "$pmodules[@]"; do
pdebuglog "Started loading %q" $pmodule
if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then
pdebuglog "Module %q already loaded" $pmodule continue
elif [[ ! -d "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule" ]]; then
print "$0: no such module: $pmodule" >&2
continue continue
else else
locations=(${pmodule_dirs:+${^pmodule_dirs}/$pmodule(-/FN)}) if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" ]]; then
if (( ${#locations} > 1 )); then source "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh"
print "$0: conflicting module locations: $locations"
continue
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"
fi fi
if (( $? == 0 )); then if (( $? == 0 )); then
zstyle ":prezto:module:$pmodule" loaded 'yes' zstyle ":prezto:module:$pmodule" loaded 'yes'
pdebuglog "Module %q loaded" $pmodule
else else
# Remove the $fpath entry. # Remove the $fpath entry.
fpath[(r)${pmodule_location}/functions]=() fpath[(r)${ZDOTDIR:-$HOME}/.zprezto/modules/${pmodule}/functions]=()
function { function {
local pfunction local pfunction
@ -160,12 +71,11 @@ function pmodload {
setopt LOCAL_OPTIONS EXTENDED_GLOB setopt LOCAL_OPTIONS EXTENDED_GLOB
# Unload Prezto functions. # 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" unfunction "$pfunction"
done done
} }
pdebuglog "Module %q failed to load" $pmodule
zstyle ":prezto:module:$pmodule" loaded 'no' zstyle ":prezto:module:$pmodule" loaded 'no'
fi fi
fi fi
@ -176,12 +86,6 @@ function pmodload {
# Prezto Initialization # 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. # Source the Prezto configuration file.
if [[ -s "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then if [[ -s "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then
source "${ZDOTDIR:-$HOME}/.zpreztorc" source "${ZDOTDIR:-$HOME}/.zpreztorc"
@ -207,3 +111,4 @@ unset zfunction{s,}
zstyle -a ':prezto:load' pmodule 'pmodules' zstyle -a ':prezto:load' pmodule 'pmodules'
pmodload "$pmodules[@]" pmodload "$pmodules[@]"
unset pmodules unset pmodules

View File

@ -3,19 +3,12 @@ Modules
Load modules in *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. Provides functions to extract and list popular archive formats.
Autosuggestions
---------------
Integrates zsh-autosuggestions into Prezto.
Command-Not-Found Command-Not-Found
----------------- -----------------
@ -33,51 +26,25 @@ Directory
Sets directory options and defines directory aliases. Sets directory options and defines directory aliases.
DNF
---
Defines dnf aliases.
Dpkg Dpkg
---- ----
Defines dpkg aliases and functions. Defines dpkg aliases and functions.
Editor
------
Sets key bindings.
Emacs
-----
Enables Emacs dependency management.
Environment Environment
----------- -----------
Sets general shell options and defines environment variables. Sets general shell options and defines environment variables.
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. Provides for the interactive use of GNU utilities on non-GNU systems.
GPG GPG-Agent
--- ---------
Provides for an easier use of GPG by setting up gpg-agent. Provides for an easier use of gpg-agent.
Haskell Haskell
------- -------
@ -89,22 +56,17 @@ Helper
Provides helper functions for developing modules. 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. Integrates zsh-history-substring-search into Prezto.
Homebrew History
-------- -------
Defines Homebrew aliases. Sets history options and defines history aliases.
MacPorts Macports
-------- --------
Defines MacPorts aliases and adds MacPorts directories to path variables. Defines MacPorts aliases and adds MacPorts directories to path variables.
@ -114,11 +76,6 @@ Node.js
Provides utility functions for Node.js and loads npm completion. Provides utility functions for Node.js and loads npm completion.
OCaml
-----
Initializes OCaml package management.
OSX OSX
--- ---
@ -170,10 +127,10 @@ Spectrum
Provides for easier use of 256 colors and effects. 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
------------------- -------------------
@ -204,3 +161,10 @@ Yum
--- ---
Defines yum aliases. Defines yum aliases.
Z
-
Integrates z into Prezto, which maintains a frequently used directory list for
fast directory changes.

View File

@ -1,14 +1,13 @@
Archive Archive
======= =======
Provides functions to create, list, and extract archives. Provides functions to extract and list popular archive formats.
Functions Functions
--------- ---------
- `archive` creates an archive based on the provided archive name. - `extract` extracts the contents of one or more archives.
- `lsarchive` lists the contents of one or more archives. - `ls-archive` lists the contents of one or more archives.
- `unarchive` extracts the contents of one or more archives.
Supported Formats Supported Formats
----------------- -----------------
@ -16,8 +15,8 @@ Supported Formats
The following archive formats are supported when the required utilities are The following archive formats are supported when the required utilities are
installed: installed:
- *.tar.gz*, *.tgz* require `tar` (optionally `pigz`). - *.tar.gz*, *.tgz* require `tar`.
- *.tar.bz2*, *.tbz* require `tar` (optionally `pbzip2`). - *.tar.bz2*, *.tbz* require `tar`.
- *.tar.xz*, *.txz* require `tar` with *xz* support. - *.tar.xz*, *.txz* require `tar` with *xz* support.
- *.tar.zma*, *.tlz* require `tar` with *lzma* support. - *.tar.zma*, *.tlz* require `tar` with *lzma* support.
- *.tar* requires `tar`. - *.tar* requires `tar`.
@ -26,27 +25,17 @@ installed:
- *.xz* requires `unxz`. - *.xz* requires `unxz`.
- *.lzma* requires `unlzma`. - *.lzma* requires `unlzma`.
- *.Z* requires `uncompress`. - *.Z* requires `uncompress`.
- *.zip*, *.jar* requires `unzip`. - *.zip* requires `unzip`.
- *.rar* requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`. - *.rar* requires `unrar`.
- *.7z* requires `7za`. - *.7z* requires `7za`.
- *.deb* requires `ar`, `tar`. - *.deb* requires `ar`, `tar`.
Additionally, if `pigz` and/or `pbzip2` are installed, `archive` will use them over
their traditional counterparts, `gzip` and `bzip2` respectively, to take full advantage
of all available CPU cores for compression.
Alternatives
------------
Specifically on macOS, [The Unarchiver][1] provides a similar command line tool
which doesn't depend on a number of other programs being installed.
Authors Authors
------- -------
*The authors of this module should be contacted via the [issue tracker][1].* *The authors of this module should be contacted via the [issue tracker][1].*
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Matt Hamilton](https://github.com/Eriner)
[1]: https://theunarchiver.com/command-line [1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,8 +1,8 @@
#compdef unarchive #compdef extract
#autoload #autoload
# #
# Completes unarchive. # Completes extract.
# #
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
@ -10,4 +10,5 @@
_arguments \ _arguments \
'(-r --remove)'{-r,--remove}'[remove archive]' \ '(-r --remove)'{-r,--remove}'[remove archive]' \
"*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z|deb)(-.)'" && return 0 "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|rar|7z|deb)(-.)'" && return 0

View File

@ -1,8 +1,8 @@
#compdef lsarchive #compdef ls-archive
#autoload #autoload
# #
# Completes lsarchive. # Completes ls-archive.
# #
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
@ -10,4 +10,5 @@
_arguments \ _arguments \
'(-v --verbose)'{-v,--remove}'[verbose archive listing]' \ '(-v --verbose)'{-v,--remove}'[verbose archive listing]' \
"*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z)(-.)'" && return 0 "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|rar|7z)(-.)'" && return 0

View File

@ -1,71 +0,0 @@
#!/usr/bin/env zsh
#
# Creates archive file
#
# Authors:
# Matt Hamilton <m@tthamilton.com>
#
# function archive {
local archive_name dir_to_archive _gzip_bin _bzip2_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, .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}"
# use absolute paths, and follow symlinks
dir_to_archive="${2}"
# if the directory doesn't exist, quit. Nothing to archive
if [[ ! -e "${dir_to_archive}" ]]; then
print "$0: file or directory not valid: ${dir_to_archive}" >&2
return 1
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[pigz] )); then
_gzip_bin='pigz'
else
_gzip_bin='gzip'
fi
if (( $+commands[pbzip2] )); then
_bzip2_bin='pbzip2'
else
_bzip2_bin='bzip2'
fi
case "${archive_name}" in
(*.tar.gz|*.tgz) tar -cvf "${archive_name}" --use-compress-program="${_gzip_bin}" "${dir_to_archive}" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar -cvf "${archive_name}" --use-compress-program="${_bzip2_bin}" "${dir_to_archive}" ;;
(*.tar.xz|*.txz) tar -cvJf "${archive_name}" "${dir_to_archive}" ;;
(*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${dir_to_archive}" ;;
(*.tar) tar -cvf "${archive_name}" "${dir_to_archive}" ;;
(*.zip|*.jar) zip -r "${archive_name}" "${dir_to_archive}" ;;
(*.rar) rar a "${archive_name}" "${dir_to_archive}" ;;
(*.7z) 7za a "${archive_name}" "${dir_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
# }

View File

@ -1,16 +1,13 @@
# #
# Extracts the contents of archives. # Extracts the contents of popular archive formats.
# #
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function unarchive {
local remove_archive local remove_archive
local success local success
local file_name local file_name
local file_path
local extract_dir local extract_dir
if (( $# == 0 )); then if (( $# == 0 )); then
@ -39,9 +36,8 @@ while (( $# > 0 )); do
success=0 success=0
file_name="${1:t}" file_name="${1:t}"
file_path="${1:A}"
extract_dir="${file_name:r}" extract_dir="${file_name:r}"
case "$1:l" in case "$1" in
(*.tar.gz|*.tgz) tar xvzf "$1" ;; (*.tar.gz|*.tgz) tar xvzf "$1" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;; (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;;
(*.tar.xz|*.txz) tar --xz --help &> /dev/null \ (*.tar.xz|*.txz) tar --xz --help &> /dev/null \
@ -56,20 +52,16 @@ while (( $# > 0 )); do
(*.xz) unxz "$1" ;; (*.xz) unxz "$1" ;;
(*.lzma) unlzma "$1" ;; (*.lzma) unlzma "$1" ;;
(*.Z) uncompress "$1" ;; (*.Z) uncompress "$1" ;;
(*.zip|*.jar) unzip "$1" -d $extract_dir ;; (*.zip) unzip "$1" -d $extract_dir ;;
(*.rar) ( (( $+commands[unrar] )) \ (*.rar) unrar e -ad "$1" ;;
&& unrar x -ad "$1" ) \
|| ( (( $+commands[rar] )) \
&& rar x -ad "$1" ) \
|| unar -d "$1" ;;
(*.7z) 7za x "$1" ;; (*.7z) 7za x "$1" ;;
(*.deb) (*.deb)
mkdir -p "$extract_dir/control" mkdir -p "$extract_dir/control"
mkdir -p "$extract_dir/data" mkdir -p "$extract_dir/data"
cd "$extract_dir"; ar vx "${file_path}" > /dev/null cd "$extract_dir"; ar vx "../${1}" > /dev/null
cd control; tar xvf ../control.tar.* cd control; tar xzvf ../control.tar.gz
cd ../data; tar xvf ../data.tar.* cd ../data; tar xzvf ../data.tar.gz
cd ..; rm control.tar.* data.tar.* debian-binary cd ..; rm *.tar.gz debian-binary
cd .. cd ..
;; ;;
(*) (*)
@ -83,4 +75,3 @@ while (( $# > 0 )); do
shift shift
done done
# }

View File

@ -1,12 +1,10 @@
# #
# Lists the contents of archives. # Lists the contents of popular archive formats.
# #
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function lsarchive {
local verbose local verbose
if (( $# == 0 )); then if (( $# == 0 )); then
@ -32,7 +30,7 @@ while (( $# > 0 )); do
continue continue
fi fi
case "$1:l" in case "$1" in
(*.tar.gz|*.tgz) tar t${verbose:+v}vzf "$1" ;; (*.tar.gz|*.tgz) tar t${verbose:+v}vzf "$1" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar t${verbose:+v}jf "$1" ;; (*.tar.bz2|*.tbz|*.tbz2) tar t${verbose:+v}jf "$1" ;;
(*.tar.xz|*.txz) tar --xz --help &> /dev/null \ (*.tar.xz|*.txz) tar --xz --help &> /dev/null \
@ -42,15 +40,11 @@ while (( $# > 0 )); do
&& tar --lzma -t${verbose:+v}f "$1" \ && tar --lzma -t${verbose:+v}f "$1" \
|| lzcat "$1" | tar x${verbose:+v}f - ;; || lzcat "$1" | tar x${verbose:+v}f - ;;
(*.tar) tar t${verbose:+v}f "$1" ;; (*.tar) tar t${verbose:+v}f "$1" ;;
(*.zip|*.jar) unzip -l${verbose:+v} "$1" ;; (*.zip) unzip -l${verbose:+v} "$1" ;;
(*.rar) ( (( $+commands[unrar] )) \ (*.rar) unrar ${${verbose:+v}:-l} "$1" ;;
&& unrar ${${verbose:+v}:-l} "$1" ) \
|| ( (( $+commands[rar] )) \
&& rar ${${verbose:+v}:-l} "$1" ) \
|| lsar ${verbose:+-l} "$1" ;;
(*.7z) 7za l "$1" ;; (*.7z) 7za l "$1" ;;
(*) (*)
print "$0: cannot list: $1" >&2 print "$0: cannot list: $1" >&2
success=1 success=1
;; ;;
esac esac
@ -58,4 +52,3 @@ while (( $# > 0 )); do
shift shift
done done
# }

View File

@ -1,58 +0,0 @@
Autosuggestions
---------------
Integrates zsh-autosuggestions into Prezto.
Autosuggestions
===============
Integrates [zsh-autosuggestions][1] into Prezto, which implements the
[Fish shell][2]'s autosuggestions feature, where the user can type in any part
of a previously entered command and Zsh suggests commands as you type based on
history and completions.
If this module is used in conjunction with the *syntax-highlighting* module,
this module must be loaded **after** the *syntax-highlighting* module.
If this module is used in conjunction with the *history-substring-search*
module, this module must be loaded **after** the *history-substring-search*
module.
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
*zpreztorc*:
```sh
zstyle ':prezto:module:autosuggestions' color 'yes'
```
To set the query found color, add the following line to *zpreztorc*:
```sh
zstyle ':prezto:module:autosuggestions:color' found ''
```
Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].*
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/tarruda/zsh-autosuggestions
[2]: http://fishshell.com
[3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -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

View File

@ -1,23 +1,15 @@
Command-Not-Found Command-Not-Found
================= =================
When you try to use a command that is not available locally, searches Loads the [command-not-found][1] tool on Debian-based distributions.
the package manager for a package offering that command and suggests
the proper install command.
Debian-based and Arch Linux-based distributions use the [`command-not-found`][1] tool.
macOS uses Homebrew's [`command-not-found` clone][2]. Note that you also need to [follow the instructions to tap the `command-not-found` homebrew repository][3].
Authors Authors
------- -------
*The authors of this module should be contacted via the [issue tracker][4].* *The authors of this module should be contacted via the [issue tracker][2].*
- [Joseph Booker](https://github.com/sargas) - [Joseph Booker](https://github.com/sargas)
[1]: https://code.launchpad.net/command-not-found [1]: https://code.launchpad.net/command-not-found
[2]: https://github.com/Homebrew/homebrew-command-not-found [2]: https://github.com/sorin-ionescu/prezto/issues
[3]: https://github.com/Homebrew/homebrew-command-not-found#install
[4]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -3,19 +3,12 @@
# #
# Authors: # Authors:
# Joseph Jon Booker <joe@neoturbine.net> # 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 Mac OS X when homebrew tap is configured.
elif (( $+commands[brew] )) && brew command command-not-found-init > /dev/null 2>&1; then
eval "$(brew command-not-found-init)"
# Return if requirements are not found. # Return if requirements are not found.
else if [[ ! -s '/etc/zsh_command_not_found' ]]; then
return 1 return 1
fi fi
source '/etc/zsh_command_not_found'

View File

@ -6,23 +6,6 @@ the [zsh-completions][1] project.
This module must be loaded **after** the *utility* module. This module must be loaded **after** the *utility* module.
Settings
--------
### Ignore */etc/hosts* Entries
To ignore certain entries from static */etc/hosts* for host completion, add the
following lines in *zpreztorc* with the IP addresses of the hosts as they
appear in */etc/hosts*. Both IP address and the corresponding hostname will be
ignored during host completion. However, some of the entries ignored from
*/etc/hosts* still might appear during completion because of their presence in
*ssh* configuration or history).
```sh
zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \
'0.0.0.0' '127.0.0.1'
```
Contributors Contributors
------------ ------------
@ -38,3 +21,4 @@ Authors
[1]: https://github.com/zsh-users/zsh-completions [1]: https://github.com/zsh-users/zsh-completions
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -14,6 +14,9 @@ fi
# Add zsh-completions to $fpath. # Add zsh-completions to $fpath.
fpath=("${0:h}/external/src" $fpath) fpath=("${0:h}/external/src" $fpath)
# Load and initialize the completion system ignoring insecure directories.
autoload -Uz compinit && compinit -i
# #
# Options # Options
# #
@ -21,30 +24,20 @@ fpath=("${0:h}/external/src" $fpath)
setopt COMPLETE_IN_WORD # Complete from both ends of a word. 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 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 PATH_DIRS # Perform path search even on command names with slashes.
setopt AUTO_MENU # Show completion menu on a successive tab press. setopt AUTO_MENU # Show completion menu on a succesive tab press.
setopt AUTO_LIST # Automatically list choices on ambiguous completion. setopt AUTO_LIST # Automatically list choices on ambiguous completion.
setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash. 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 MENU_COMPLETE # Do not autoselect the first completion entry.
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor. unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
# Load and initialize the completion system ignoring insecure directories with a # Treat these characters as part of a word.
# cache time of 20 hours, so it should almost always regenerate the first time a WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
# shell is opened each day.
autoload -Uz compinit
_comp_files=(${ZDOTDIR:-$HOME}/.zcompdump(Nm-20))
if (( $#_comp_files )); then
compinit -i -C
else
compinit -i
fi
unset _comp_files
# #
# Styles # Styles
# #
# 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:*' use-cache on
zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache" zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache"
@ -76,9 +69,8 @@ zstyle ':completion:*' completer _complete _match _approximate
zstyle ':completion:*:match:*' original only zstyle ':completion:*:match:*' original only
zstyle ':completion:*:approximate:*' max-errors 1 numeric zstyle ':completion:*:approximate:*' max-errors 1 numeric
# Increase the number of errors based on the length of the typed word. But make # Increase the number of errors based on the length of the typed word.
# sure to cap (at 7) the max-errors to avoid hanging. zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)'
zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3>7?7:($#PREFIX+$#SUFFIX)/3))numeric)'
# Don't complete unavailable commands. # Don't complete unavailable commands.
zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))' zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
@ -102,14 +94,11 @@ zstyle ':completion:*:history-words' menu yes
# Environmental Variables # Environmental Variables
zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-} zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
# Populate hostname completion. But allow ignoring custom entries from static # Populate hostname completion.
# */etc/hosts* which might be uninteresting.
zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores'
zstyle -e ':completion:*:hosts' hosts 'reply=( zstyle -e ':completion:*:hosts' hosts 'reply=(
${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } ${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//,/ }
${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2> /dev/null))"}%%(\#${_etc_host_ignores:+|${(j:|:)~_etc_host_ignores}})*} ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*}
${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2> /dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}} ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
)' )'
# Don't complete uninteresting users... # Don't complete uninteresting users...
@ -130,7 +119,7 @@ zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
zstyle ':completion:*:rm:*' file-patterns '*:all-files' zstyle ':completion:*:rm:*' file-patterns '*:all-files'
# Kill # 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:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'
zstyle ':completion:*:*:kill:*' menu yes select zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:*:kill:*' force-list always zstyle ':completion:*:*:kill:*' force-list always
@ -153,9 +142,11 @@ if [[ -s "$HOME/.mutt/aliases" ]]; then
fi fi
# SSH/SCP/RSYNC # 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:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr zstyle ':completion:*:ssh:*' tag-order users 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
zstyle ':completion:*:ssh:*' group-order 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-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-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::*' zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'

View File

@ -33,3 +33,4 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -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_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 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 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 MULTIOS # Write to multiple descriptors.
setopt EXTENDED_GLOB # Use extended globbing syntax. setopt EXTENDED_GLOB # Use extended globbing syntax.
unsetopt CLOBBER # Do not overwrite existing files with > and >>. 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' alias d='dirs -v'
for index ({1..9}) alias "$index"="cd +${index}"; unset index for index ({1..9}) alias "$index"="cd +${index}"; unset index

View File

@ -1,29 +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

View File

@ -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.

View File

@ -1,190 +0,0 @@
# ZSH Docker Aliases
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<Paste>
- `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<Paste>
- `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

View File

@ -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'

View File

@ -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"

View File

@ -7,16 +7,16 @@ Aliases
------- -------
- `debc` cleans the cache. - `debc` cleans the cache.
- `debf` displays a file's package. - `debf` displays a file's packake.
- `debi` installs packages from repositories. - `debi` installs packages from repositories.
- `debI` installs packages from files. - `debI` installs packages from files.
- `debq` displays package information. - `debq` displays package information.
- `debu` updates the package lists. - `debu` updates the packages lists.
- `debU` upgrades outdated packages. - `debU` upgrades outdated packages.
- `debx` removes packages. - `debx` removes packages.
- `debX` removes packages, their configuration, and unneeded dependencies. - `debX` removes packages, their configuration, and unneeded dependencies.
- `debs` searches for packages. - `debs` searches for packages.
- `deb-build` creates a basic deb package. - `deb-build` creates a basic .deb package.
- `deb-kclean` removes all kernel images and headers, except for the ones in - `deb-kclean` removes all kernel images and headers, except for the ones in
use. use.
@ -39,3 +39,4 @@ Authors
[1]: http://wiki.debian.org/Teams/Dpkg [1]: http://wiki.debian.org/Teams/Dpkg
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -6,8 +6,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function deb-clone {
local clone_script="${0}.sh" local clone_script="${0}.sh"
local package_list=$( local package_list=$(
perl \ perl \
@ -26,4 +24,3 @@ print '#!/bin/sh\n' > "$clone_script"
print "aptitude install ${package_list}\n" >> "$clone_script" print "aptitude install ${package_list}\n" >> "$clone_script"
chmod +x "$clone_script" chmod +x "$clone_script"
# }

View File

@ -7,8 +7,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function deb-history {
case "$1" in case "$1" in
(install) (install)
zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*) zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*)
@ -37,4 +35,3 @@ EOF
;; ;;
esac esac
# }

View File

@ -6,8 +6,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function deb-kbuild {
make-kpkg clean make-kpkg clean
MAKEFLAGS='' time fakeroot make-kpkg \ MAKEFLAGS='' time fakeroot make-kpkg \
--append-to-version '-custom' \ --append-to-version '-custom' \
@ -15,4 +13,3 @@ MAKEFLAGS='' time fakeroot make-kpkg \
kernel_image \ kernel_image \
kernel_headers kernel_headers
# }

View File

@ -19,7 +19,7 @@ fi
# Cleans the cache. # Cleans the cache.
alias debc='sudo apt-get clean && sudo apt-get autoclean' alias debc='sudo apt-get clean && sudo apt-get autoclean'
# Displays a file's package. # Displays a file's packake.
alias debf='apt-file search --regexp' alias debf='apt-file search --regexp'
# Installs packages from repositories. # Installs packages from repositories.
@ -31,7 +31,7 @@ alias debI='sudo dpkg -i'
# Displays package information. # Displays package information.
alias debq='apt-cache show' alias debq='apt-cache show'
# Updates the package lists. # Updates the packages lists.
alias debu='sudo apt-get update' alias debu='sudo apt-get update'
# Upgrades outdated packages. # Upgrades outdated packages.
@ -50,8 +50,9 @@ else
alias debs='apt-cache search' alias debs='apt-cache search'
fi fi
# Creates a basic deb package. # Creates a basic .deb package.
alias deb-build='time dpkg-buildpackage -rfakeroot -us -uc' alias deb-build='time dpkg-buildpackage -rfakeroot -us -uc'
# Removes all kernel images and headers, except for the ones in use. # 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`))"'

View File

@ -1,99 +0,0 @@
Editor
======
Sets key bindings.
Settings
--------
### Key bindings
To enable key bindings, add the following to *zpreztorc*, and replace 'bindings'
with 'emacs' or 'vi'.
```sh
zstyle ':prezto:module:editor' key-bindings 'bindings'
```
### Dot Expansion
To enable the auto conversion of .... to ../.., add the following to
*zpreztorc*.
```sh
zstyle ':prezto:module:editor' dot-expansion 'yes'
```
### PS Context
To enable the prompt context to be set, add the following to your
*zpreztorc*.
```sh
zstyle ':prezto:module:editor' ps-context 'yes'
```
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 '>>>'
```
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'
```
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'
```
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 '<<<'
```
To indicate when the editor is completing, add the following to your
`theme_prompt_setup` function.
```sh
zstyle ':prezto:module:editor:info:completing' format '...'
```
Then add `$editor_info[context]`, where context is *keymap*, *insert*, or
*overwrite*, to `$PROMPT` or `$RPROMPT`.
Convenience Functions
---------------------
### bindkey-all
Provides a function `bindkey-all` which can be useful for checking how all of the
keys are bound. Normal `bindkey` command will only list the keys bound for one
keymap, which is not as useful if you want to grep through the output. The
keymap's names go to stderr so when you grep through bindkey-all's output you
will still see the headings and can tell which keymap each binding goes to.
It will also pass through arguments so you can use bindkey-all to set bindings
for all keymaps at once. If provided arguments it will *not* print out the
names of each of the keymaps, and just run the command for each keymap.
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/oh-my-zsh/issues

View File

@ -4,6 +4,42 @@
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# Usage:
# To enable key bindings, add the following to zpreztorc, and replace 'map'
# with 'emacs' or 'vi.
#
# zstyle ':prezto:module:editor' keymap 'map'
#
# To enable the auto conversion of .... to ../.., add the following to
# zpreztorc.
#
# zstyle ':prezto:module:editor' dot-expansion 'yes'
#
# To indicate when the editor is in the primary keymap (emacs or viins), add
# the following to your theme prompt setup function.
#
# 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.
#
# 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.
#
# 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.
#
# zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<'
#
# To indicate when the editor is completing, add the following to your theme
# prompt setup function.
#
# zstyle ':prezto:module:editor:info:completing' format '...'
#
# Return if requirements are not found. # Return if requirements are not found.
if [[ "$TERM" == 'dumb' ]]; then if [[ "$TERM" == 'dumb' ]]; then
@ -14,57 +50,52 @@ fi
# Options # Options
# #
setopt BEEP # Beep on error in line editor. # Beep on error in line editor.
setopt BEEP
# #
# Variables # Variables
# #
# Treat these characters as part of a word.
WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
# Use human-friendly identifiers. # Use human-friendly identifiers.
zmodload zsh/terminfo zmodload zsh/terminfo
typeset -gA key_info typeset -gA key_info
key_info=( key_info=(
'Control' '\C-' 'Control' '\C-'
'ControlLeft' '\e[1;5D \e[5D \e\e[D \eOd' 'Escape' '\e'
'ControlRight' '\e[1;5C \e[5C \e\e[C \eOc' 'Meta' '\M-'
'ControlPageUp' '\e[5;5~' 'Backspace' "^?"
'ControlPageDown' '\e[6;5~' 'Delete' "^[[3~"
'Escape' '\e' 'F1' "$terminfo[kf1]"
'Meta' '\M-' 'F2' "$terminfo[kf2]"
'Backspace' "^?" 'F3' "$terminfo[kf3]"
'Delete' "^[[3~" 'F4' "$terminfo[kf4]"
'F1' "$terminfo[kf1]" 'F5' "$terminfo[kf5]"
'F2' "$terminfo[kf2]" 'F6' "$terminfo[kf6]"
'F3' "$terminfo[kf3]" 'F7' "$terminfo[kf7]"
'F4' "$terminfo[kf4]" 'F8' "$terminfo[kf8]"
'F5' "$terminfo[kf5]" 'F9' "$terminfo[kf9]"
'F6' "$terminfo[kf6]" 'F10' "$terminfo[kf10]"
'F7' "$terminfo[kf7]" 'F11' "$terminfo[kf11]"
'F8' "$terminfo[kf8]" 'F12' "$terminfo[kf12]"
'F9' "$terminfo[kf9]" 'Insert' "$terminfo[kich1]"
'F10' "$terminfo[kf10]" 'Home' "$terminfo[khome]"
'F11' "$terminfo[kf11]" 'PageUp' "$terminfo[kpp]"
'F12' "$terminfo[kf12]" 'End' "$terminfo[kend]"
'Insert' "$terminfo[kich1]" 'PageDown' "$terminfo[knp]"
'Home' "$terminfo[khome]" 'Up' "$terminfo[kcuu1]"
'PageUp' "$terminfo[kpp]" 'Left' "$terminfo[kcub1]"
'End' "$terminfo[kend]" 'Down' "$terminfo[kcud1]"
'PageDown' "$terminfo[knp]" 'Right' "$terminfo[kcuf1]"
'Up' "$terminfo[kcuu1]" 'BackTab' "$terminfo[kcbt]"
'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 # Do not bind any keys if there are empty values in $key_info.
# bindkey failure.
for key in "${(k)key_info[@]}"; do for key in "${(k)key_info[@]}"; do
if [[ -z "$key_info[$key]" ]]; then if [[ -z "$key_info[$key]" ]]; then
key_info[$key]='<27>' print "prezto: one or more keys are non-bindable" >&2
unset key{,_info}
return 1
fi fi
done done
@ -79,15 +110,7 @@ zle -N edit-command-line
# #
# Functions # 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 # Exposes information about the Zsh Line Editor via the $editor_info associative
# array. # array.
function editor-info { function editor-info {
@ -112,60 +135,19 @@ function editor-info {
fi fi
unset REPLY unset REPLY
zle zle-reset-prompt
zle reset-prompt
zle -R
} }
zle -N editor-info 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
fi
}
zle -N zle-reset-prompt
# Updates editor information when the keymap changes. # Updates editor information when the keymap changes.
function zle-keymap-select { function zle-keymap-select zle-line-init zle-line-finish {
zle editor-info zle editor-info
} }
zle -N zle-keymap-select 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-finish
zle -N zle-line-init
# Toggles emacs overwrite mode and updates editor information. # Toggles emacs overwrite mode and updates editor information.
function overwrite-mode { function overwrite-mode {
@ -210,14 +192,6 @@ zle -N expand-dot-to-parent-directory-path
function expand-or-complete-with-indicator { function expand-or-complete-with-indicator {
local indicator local indicator
zstyle -s ':prezto:module:editor:info:completing' format '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" print -Pn "$indicator"
zle expand-or-complete zle expand-or-complete
zle redisplay zle redisplay
@ -233,35 +207,6 @@ function prepend-sudo {
} }
zle -N 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. # Reset to default key bindings.
bindkey -d bindkey -d
@ -269,10 +214,10 @@ bindkey -d
# Emacs Key Bindings # Emacs Key Bindings
# #
for key in "$key_info[Escape]"{B,b} "${(s: :)key_info[ControlLeft]}" for key ("$key_info[Escape]"{B,b}) bindkey -M emacs "$key" emacs-backward-word
bindkey -M emacs "$key" emacs-backward-word for key ("$key_info[Escape]"{F,f}) bindkey -M emacs "$key" emacs-forward-word
for key in "$key_info[Escape]"{F,f} "${(s: :)key_info[ControlRight]}" bindkey -M emacs "$key_info[Escape]$key_info[Left]" emacs-backward-word
bindkey -M emacs "$key" emacs-forward-word bindkey -M emacs "$key_info[Escape]$key_info[Right]" emacs-forward-word
# Kill to the beginning of the line. # Kill to the beginning of the line.
for key in "$key_info[Escape]"{K,k} for key in "$key_info[Escape]"{K,k}
@ -297,23 +242,21 @@ if (( $+widgets[history-incremental-pattern-search-backward] )); then
history-incremental-pattern-search-forward history-incremental-pattern-search-forward
fi 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 # Vi Key Bindings
# #
# Edit command in an external editor emacs style (v is used for visual mode) # Edit command in an external editor.
bindkey -M vicmd "$key_info[Control]X$key_info[Control]E" edit-command-line bindkey -M vicmd "v" edit-command-line
# Undo/Redo # Undo/Redo
bindkey -M vicmd "u" undo bindkey -M vicmd "u" undo
bindkey -M vicmd "$key_info[Control]R" redo bindkey -M vicmd "$key_info[Control]R" redo
# Switch to command mode.
bindkey -M viins "jk" vi-cmd-mode
bindkey -M viins "kj" vi-cmd-mode
if (( $+widgets[history-incremental-pattern-search-backward] )); then if (( $+widgets[history-incremental-pattern-search-backward] )); then
bindkey -M vicmd "?" history-incremental-pattern-search-backward bindkey -M vicmd "?" history-incremental-pattern-search-backward
bindkey -M vicmd "/" history-incremental-pattern-search-forward bindkey -M vicmd "/" history-incremental-pattern-search-forward
@ -322,61 +265,14 @@ else
bindkey -M vicmd "/" history-incremental-search-forward bindkey -M vicmd "/" history-incremental-search-forward
fi fi
# Toggle comment at the start of the line.
bindkey -M vicmd "#" vi-pound-insert
# #
# Emacs and Vi Key Bindings # Emacs and Vi Key Bindings
# #
# Unbound keys in vicmd and viins mode will cause really odd things to happen for keymap in 'emacs' 'viins'; do
# 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
bindkey -M "$keymap" "$key_info[Home]" beginning-of-line bindkey -M "$keymap" "$key_info[Home]" beginning-of-line
bindkey -M "$keymap" "$key_info[End]" end-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[Insert]" overwrite-mode
bindkey -M "$keymap" "$key_info[Delete]" delete-char bindkey -M "$keymap" "$key_info[Delete]" delete-char
bindkey -M "$keymap" "$key_info[Backspace]" backward-delete-char bindkey -M "$keymap" "$key_info[Backspace]" backward-delete-char
@ -419,14 +315,8 @@ for keymap in 'emacs' 'viins'; do
# Insert 'sudo ' at the beginning of the line. # Insert 'sudo ' at the beginning of the line.
bindkey -M "$keymap" "$key_info[Control]X$key_info[Control]S" prepend-sudo 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 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. # Do not expand .... to ../.. during incremental search.
if zstyle -t ':prezto:module:editor' dot-expansion; then if zstyle -t ':prezto:module:editor' dot-expansion; then
bindkey -M isearch . self-insert 2> /dev/null bindkey -M isearch . self-insert 2> /dev/null
@ -437,13 +327,14 @@ fi
# #
# Set the key layout. # Set the key layout.
zstyle -s ':prezto:module:editor' key-bindings 'key_bindings' zstyle -s ':prezto:module:editor' keymap 'keymap'
if [[ "$key_bindings" == (emacs|) ]]; then if [[ "$keymap" == (emacs|) ]]; then
bindkey -e bindkey -e
elif [[ "$key_bindings" == vi ]]; then elif [[ "$keymap" == vi ]]; then
bindkey -v bindkey -v
else else
print "prezto: editor: invalid key bindings: $key_bindings" >&2 print "prezto: invalid keymap: $keymap" >&2
fi fi
unset key{,map,_bindings} unset key{map,}

View File

@ -1,33 +0,0 @@
Emacs
=====
Enables Emacs dependency management.
Dependency management
---------------------
[Carton][1] installs and manages Emacs packages for Emacs package development
and Emacs configuration.
This module prepends the Carton directory to the path variable to enable the
execution of `carton`.
Aliases
-------
### Carton
- `cai` installs dependencies.
- `cau` updates dependencies.
- `caI` initializes the current directory for dependency management.
- `cae` executes a command which correct dependencies.
Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].*
- [Sebastian Wiesner](https://github.com/lunaryorn)
[1]: https://github.com/rejeep/carton
[2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,25 +0,0 @@
#
# Configures Emacs dependency management.
#
# Authors: Sebastian Wiesner <lunaryorn@gmail.com>
#
# Return if requirements are not found.
if [[ ! -d "$HOME/.cask" ]]; then
return 1
fi
# Prepend Cask bin directory.
path=($HOME/.cask/bin $path)
# Load Carton completion
source "$HOME/.cask/etc/cask_completion.zsh" 2> /dev/null
#
# Aliases
#
alias cai='cask install'
alias cau='cask update'
alias caI='cask init'
alias cae='cask exec'

View File

@ -13,14 +13,14 @@ Contributors
This module **MUST NOT** rely on any command not built in Zsh. This module **MUST NOT** rely on any command not built in Zsh.
Non-interactive environment variables should be defined in [`zshenv`][1]. Non-interactive environment variables should be defined in *zshenv*.
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/blob/master/runcoms/zshenv [1]: https://github.com/sorin-ionescu/prezto/issues
[2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -9,34 +9,16 @@
# Smart URLs # Smart URLs
# #
# This logic comes from an old version of zim. Essentially, bracketed-paste was autoload -Uz url-quote-magic
# added as a requirement of url-quote-magic in 5.1, but in 5.1.1 bracketed zle -N self-insert url-quote-magic
# 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 ]]; then
if is-at-least 5.2; then
autoload -Uz bracketed-paste-url-magic
zle -N bracketed-paste bracketed-paste-url-magic
else
if is-at-least 5.1; then
autoload -Uz bracketed-paste-magic
zle -N bracketed-paste bracketed-paste-magic
fi
fi
autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic
fi
# #
# General # General
# #
setopt COMBINING_CHARS # Combine zero-length punctuation characters (accents) setopt BRACE_CCL # Allow brace character class list expansion.
# with the base character. setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell. unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed.
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 # Jobs
@ -49,6 +31,15 @@ unsetopt BG_NICE # Don't run all background jobs at a lower priority.
unsetopt HUP # Don't kill jobs on shell exit. unsetopt HUP # Don't kill jobs on shell exit.
unsetopt CHECK_JOBS # Don't report on jobs when 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 # Termcap
# #
@ -62,3 +53,4 @@ if zstyle -t ':prezto:environment:termcap' color; then
export LESS_TERMCAP_ue=$'\E[0m' # Ends underline. export LESS_TERMCAP_ue=$'\E[0m' # Ends underline.
export LESS_TERMCAP_us=$'\E[01;32m' # Begins underline. export LESS_TERMCAP_us=$'\E[01;32m' # Begins underline.
fi fi

View File

@ -12,12 +12,6 @@ module.
The Prezto Fasd configuration differs from the default. The default aliases have The Prezto Fasd configuration differs from the default. The default aliases have
been disabled. been disabled.
Installation
------------
`fasd` is bundled with prezto as a git submodule. Alternatively, you can manually install `fasd`.
If a manual install is found, it will be used instead of the bundled version.
Aliases Aliases
------- -------
@ -42,3 +36,4 @@ Authors
[3]: https://github.com/rupa/z [3]: https://github.com/rupa/z
[4]: https://github.com/rupa/v [4]: https://github.com/rupa/v
[5]: https://github.com/sorin-ionescu/prezto/issues [5]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -9,17 +9,16 @@
# Load dependencies. # Load dependencies.
pmodload 'editor' pmodload 'editor'
# If the command doesn't exist externally, we need to fall back to the bundled # Return if requirements are not found.
# submodule.
if (( ! $+commands[fasd] )); then if (( ! $+commands[fasd] )); then
source "${0:h}/external/fasd" || return 1 return 1
fi fi
# #
# Initialization # Initialization
# #
cache_file="${TMPDIR:-/tmp}/prezto-fasd-cache.$UID.zsh" cache_file="${0:h}/cache.zsh"
if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file" ]]; then if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file" ]]; then
# Set the base init arguments. # Set the base init arguments.
init_args=(zsh-hook) init_args=(zsh-hook)
@ -52,3 +51,4 @@ function fasd_cd {
# Changes the current working directory interactively. # Changes the current working directory interactively.
alias j='fasd_cd -i' alias j='fasd_cd -i'

View File

@ -1,8 +1,7 @@
Git Git
=== ===
Enhances the [Git][1] distributed version control system by providing aliases, Enhances the [Git][1] distributed version control system by providing aliases, functions and by exposing repository status information to prompts.
functions and by exposing repository status information to prompts.
Git **1.7.2** is the [minimum required version][7]. Git **1.7.2** is the [minimum required version][7].
@ -13,32 +12,22 @@ Settings
The format of the [git-log][8] output is configurable via the following style, 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 where context is *brief*, *oneline*, and *medium*, which will be passed to the
`--pretty=format:` switch. `--prety=format:` switch.
```sh zstyle ':prezto:module:git:log:context' format ''
zstyle ':prezto:module:git:log:context' format ''
```
### Status ### Status
Retrieving the status of a repository with submodules can take a long time. 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*. Submodules may be ignored when they are *dirty*, *untracked*, *all*, or *none*.
```sh zstyle ':prezto:module:git:status:ignore' submodules 'all'
zstyle ':prezto:module:git:status:ignore' submodules 'all'
```
This setting affects all aliases and functions that call `git-status`. This setting affects all aliases and functions that call `git-status`.
Aliases Aliases
------- -------
Aliases are enabled by default. You can disable them with:
```sh
zstyle ':prezto:module:git:alias' skip 'yes'
```
### Git ### Git
- `g` is short for `git`. - `g` is short for `git`.
@ -47,17 +36,15 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gb` lists, creates, renames, and deletes branches. - `gb` lists, creates, renames, and deletes branches.
- `gbc` creates a new branch. - `gbc` creates a new branch.
- `gbl` lists branches and their commits. (also `gbv`) - `gbl` lists branches and their commits.
- `gbL` lists all local and remote branches and their commits. - `gbL` lists local and remote branches and their commits.
- `gbr` renames a branch. (also `gbm`) - `gbs` lists branches and their commits with ancestery graphs.
- `gbR` renames a branch even if the new branch name already exists. (also - `gbS` lists local and remote branches and their commits with ancestery
`gbM`)
- `gbs` lists branches and their commits with ancestry graphs.
- `gbS` lists local and remote branches and their commits with ancestry
graphs. graphs.
- `gbV` lists branches with more verbose information about their commits. - `gbx` deletes a branch.
- `gbx` deletes a branch. (also `gbd`) - `gbX` deletes a branch irrespective of its merged status.
- `gbX` deletes a branch irrespective of its merged status. (also `gbD`) - `gbm` renames a branch.
- `gbM` renames a branch even if the new branch name already exists.
### Commit ### Commit
@ -65,33 +52,17 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gc` records changes to the repository. - `gc` records changes to the repository.
- `gca` stages all modified and deleted files. - `gca` stages all modified and deleted files.
- `gcm` records changes to the repository with the given message. - `gcm` records changes to the repository with the given message.
- `gcS` records changes to the repository. (Signed)
- `gcSa` stages all modified and deleted files. (Signed)
- `gcSm` records changes to the repository with the given message. (Signed) - `gco` checks out a branch or paths to work tree.
- `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 a branch or paths to work tree.
- `gcO` checks out hunks from the index or the tree interactively. - `gcO` checks out paths to work tree using the *HEAD* commit.
- `gcf` amends the tip of the current branch using the same log message as *HEAD*. - `gcf` amends the tip of the current branch using the same log message as
- `gcSf` amends the tip of the current branch using the same log message as *HEAD*. (Signed) *HEAD*.
- `gcF` amends the tip of the current branch.
- `gcSF` amends the tip of the current branch. (Signed)
- `gcp` applies changes introduced by existing commits. - `gcp` applies changes introduced by existing commits.
- `gcP` applies changes introduced by existing commits without committing. - `gcP` applies changes introduced by existing commits without committing.
- `gcr` reverts existing commits by reverting patches and recording new - `gcr` reverts existing commits by reverting patches and recording new
commits. commits.
- `gcR` removes the *HEAD* commit. - `gcR` removes the *HEAD* commit.
- `gcs` displays various types of objects. - `gcs` displays various types of objects.
- `gcl` lists lost commits. - `gcl` displays lost commits.
### Conflict
- `gCl` lists unmerged files.
- `gCa` adds unmerged file contents to the index.
- `gCe` executes merge-tool on all unmerged file.
- `gCo` checks out our changes for unmerged paths.
- `gCO` checks out our changes for all unmerged paths.
- `gCt` checks out their changes for unmerged paths.
- `gCT` checks out their changes for all unmerged paths.
### Data ### Data
@ -106,92 +77,16 @@ zstyle ':prezto:module:git:alias' skip 'yes'
### Fetch ### Fetch
- `gf` downloads objects and references from another repository. - `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. - `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. - `gfm` fetches from and merges with another repository or local branch.
- `gfr` fetches from and rebases on another repository or local branch. - `gfr` fetches from and rebases on another repository or local branch.
### Flow
- `gFi` is short for `git flow init`
#### Feature
- `gFf` is short for `git flow feature`
- `gFfl` is short for `git flow feature list`
- `gFfs` is short for `git flow feature start`
- `gFff` is short for `git flow feature finish`
- `gFfp` is short for `git flow feature publish`
- `gFft` is short for `git flow feature track`
- `gFfd` is short for `git flow feature diff`
- `gFfr` is short for `git flow feature rebase`
- `gFfc` is short for `git flow feature checkout`
- `gFfm` is short for `git flow feature pull`
- `gFfx` is short for `git flow feature delete`
#### Bugfix
- `gFb` is short for `git flow bugfix`
- `gFbl` is short for `git flow bugfix list`
- `gFbs` is short for `git flow bugfix start`
- `gFbf` is short for `git flow bugfix finish`
- `gFbp` is short for `git flow bugfix publish`
- `gFbt` is short for `git flow bugfix track`
- `gFbd` is short for `git flow bugfix diff`
- `gFbr` is short for `git flow bugfix rebase`
- `gFbc` is short for `git flow bugfix checkout`
- `gFbm` is short for `git flow bugfix pull`
- `gFbx` is short for `git flow bugfix delete`
#### Release
- `gFl` is short for `git flow release`
- `gFll` is short for `git flow release list`
- `gFls` is short for `git flow release start`
- `gFlf` is short for `git flow release finish`
- `gFlp` is short for `git flow release publish`
- `gFlt` is short for `git flow release track`
- `gFld` is short for `git flow release diff`
- `gFlr` is short for `git flow release rebase`
- `gFlc` is short for `git flow release checkout`
- `gFlm` is short for `git flow release pull`
- `gFlx` is short for `git flow release delete`
#### Hotfix
- `gFh` is short for `git flow hotfix`
- `gFhl` is short for `git flow hotfix list`
- `gFhs` is short for `git flow hotfix start`
- `gFhf` is short for `git flow hotfix finish`
- `gFhp` is short for `git flow hotfix publish`
- `gFht` is short for `git flow hotfix track`
- `gFhd` is short for `git flow hotfix diff`
- `gFhr` is short for `git flow hotfix rebase`
- `gFhc` is short for `git flow hotfix checkout`
- `gFhm` is short for `git flow hotfix pull`
- `gFhx` is short for `git flow hotfix delete`
#### Support
- `gFs` is short for `git flow support`
- `gFsl` is short for `git flow support list`
- `gFss` is short for `git flow support start`
- `gFsf` is short for `git flow support finish`
- `gFsp` is short for `git flow support publish`
- `gFst` is short for `git flow support track`
- `gFsd` is short for `git flow support diff`
- `gFsr` is short for `git flow support rebase`
- `gFsc` is short for `git flow support checkout`
- `gFsm` is short for `git flow support pull`
- `gFsx` is short for `git flow support delete`
### Grep ### Grep
- `gg` displays lines matching a pattern. - `gg` displays lines matching a pattern.
- `ggi` displays lines matching a pattern ignoring case. - `ggi` displays lines matching a pattern ignoring case.
- `ggl` lists files matching a pattern. - `ggl` displays files matching a pattern.
- `ggL` lists files that are not matching a pattern. - `ggL` displays files are not matching a pattern.
- `ggv` displays lines not matching a pattern. - `ggv` displays lines not matching a pattern.
- `ggw` displays lines matching a pattern at word boundary. - `ggw` displays lines matching a pattern at word boundary.
@ -202,13 +97,21 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `giu` adds file contents to the index (updates only known files). - `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 (diff).
- `giD` displays changes between the index and a named commit (word diff). - `giD` displays changes between the index and a named commit (word diff).
- `gii` temporarily ignore differences in a given file. - `gir` resets current HEAD to the specified state.
- `giI` unignore differences in a given file. - `giR` resets current index to the specified state.
- `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).
- `giX` removes files/directories from the index (recursively and forced). - `giX` removes files/directories from the index (recursively and forced).
### Conflict
- `gCl` lists unmerged files.
- `gCa` adds unmerged file contents to the index.
- `gCe` executes merge-tool on all unmerged file.
- `gCo` checks out our changes for unmerged paths.
- `gCO` checks out our changes for all unmerged paths.
- `gCt` checks out their changes for unmerged paths.
- `gCT` checks out their changes for all unmerged paths.
### Log ### Log
- `gl` displays the log. - `gl` displays the log.
@ -250,12 +153,12 @@ zstyle ':prezto:module:git:alias' skip 'yes'
### Remote ### Remote
- `gR` manages tracked repositories. - `gR` manages tracked repositories.
- `gRl` lists remote names and their URLs. - `gRl` displays remote names and URLs.
- `gRa` adds a new remote. - `gRa` adds a new remote.
- `gRx` removes a remote. - `gRx` removes a remote.
- `gRm` renames a remote. - `gRm` renames a remote.
- `gRu` fetches remotes updates. - `gRu` fetches remotes updates.
- `gRp` prunes all stale remote tracking branches. - `gRc` deletes all stale remote tracking branches.
- `gRs` displays information about a given remote. - `gRs` displays information about a given remote.
- `gRb` opens a remote on [GitHub][3] in the default browser. - `gRb` opens a remote on [GitHub][3] in the default browser.
@ -265,9 +168,10 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gsa` applies the changes recorded in a stash to the working directory. - `gsa` applies the changes recorded in a stash to the working directory.
- `gsx` drops a stashed state. - `gsx` drops a stashed state.
- `gsX` drops all the stashed states. - `gsX` drops all the stashed states.
- `gsd` lists dropped stashed states.
- `gsl` lists stashed states. - `gsl` lists stashed states.
- `gsL` lists dropped stashed states. - `gsL` displays the changes recorded in the stash as a diff between the
- `gsd` displays changes between the stash and its original parent. stashed state and its original parent.
- `gsp` removes and applies a single stashed state from the stash list. - `gsp` removes and applies a single stashed state from the stash list.
- `gsr` recovers a given stashed state. - `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, including untracked.
@ -309,7 +213,6 @@ The following aliases may shadow system commands:
- `gpt` shadows the [GUID partition table maintenance utility][4]. - `gpt` shadows the [GUID partition table maintenance utility][4].
- `gs` shadows the [Ghostscript][5]. - `gs` shadows the [Ghostscript][5].
- `gb` shadows the [GB][9].
If you frequently use the above commands, you may wish to remove said aliases 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`. from this module or to disable them at the bottom of the zshrc with `unalias`.
@ -324,7 +227,7 @@ Functions
- `git-commit-lost` lists lost commits. - `git-commit-lost` lists lost commits.
- `git-dir` displays the path to the Git directory. - `git-dir` displays the path to the Git directory.
- `git-hub-browse` opens the [GitHub][3] repository in the default browser. - `git-hub-browse` opens the [GitHub][3] repository in the default browser.
- `git-hub-shorten-url` shortens [GitHub URLs][10]. - `git-hub-shorten-url` shortens GitHub URLs.
- `git-info` exposes repository information via the `$git_info` associative - `git-info` exposes repository information via the `$git_info` associative
array. array.
- `git-root` displays the path to the working tree root. - `git-root` displays the path to the working tree root.
@ -341,53 +244,27 @@ To display information about the current repository in a prompt, define the
following styles in the `prompt_name_setup` function, where the syntax for following styles in the `prompt_name_setup` function, where the syntax for
setting a style is as follows. 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 | Name | Format Code | Description
| --------- | :---------: | --------------------------------------------------- | --------- | :---------: | ---------------------------------------------------
| action | %s | Special action name | action | %s | Special action name
| added | %a | Added files count
| ahead | %A | Commits ahead of remote count | ahead | %A | Commits ahead of remote count
| behind | %B | Commits behind of remote count | behind | %B | Commits behind of remote count
| branch | %b | Branch name | branch | %b | Branch name
| commit | %c | Commit hash | 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
The following contexts must be enabled with the following zstyle:
```sh
zstyle ':prezto:module:git:info' verbose 'yes'
```
### Verbose Contexts
| Name | Format Code | Description
| --------- | :---------: | ---------------------------------------------------
| added | %a | Added files count
| clean | %C | Clean state | clean | %C | Clean state
| deleted | %d | Deleted files count | deleted | %d | Deleted files count
| dirty | %D | Dirty files count | dirty | %D | Dirty files count
| modified | %m | Modified files count | modified | %m | Modified files count
| position | %p | Commits from the nearest tag count
| remote | %R | Remote name
| renamed | %r | Renamed files count | renamed | %r | Renamed files count
| stashed | %S | Stashed states count
| unmerged | %U | Unmerged files count | unmerged | %U | Unmerged files count
| untracked | %u | Untracked files count | untracked | %u | Untracked files count
[**Main Contexts**]
### Special Action Contexts
| Name | Format | Description | Name | Format | Description
| -------------------- | :---------: | ----------------------------------------- | -------------------- | :---------: | -----------------------------------------
@ -399,26 +276,21 @@ zstyle ':prezto:module:git:info' verbose 'yes'
| rebase | value | Rebasing | rebase | value | Rebasing
| rebase-interactive | value | Rebasing interactively | rebase-interactive | value | Rebasing interactively
| rebase-merge | value | Rebasing merge | rebase-merge | value | Rebasing merge
| revert | value | Reverting [**Special Action Contexts**]
| revert-sequence | value | Reverting sequence
First, format the repository state attributes. For example, to format the branch First, format the repository state attributes. For example, to format the branch
and remote names, define the following styles. and remote names, define the following styles.
```sh zstyle ':prezto:module:git:info:branch' format 'branch:%b'
zstyle ':prezto:module:git:info:branch' format 'branch:%b' zstyle ':prezto:module:git:info:remote' format 'remote:%R'
zstyle ':prezto:module:git:info:remote' format 'remote:%R'
```
Second, format how the above attributes are displayed in prompts. Second, format how the above attributes are displayed in prompts.
```sh zstyle ':prezto:module:git:info:keys' format \
zstyle ':prezto:module:git:info:keys' format \ 'prompt' ' git(%b)' \
'prompt' ' git(%b)' \ 'rprompt' '[%R]'
'rprompt' '[%R]'
```
Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[prompt]` to
`$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook `$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook
function. function.
@ -438,5 +310,4 @@ Authors
[6]: https://github.com/sorin-ionescu/prezto/issues [6]: https://github.com/sorin-ionescu/prezto/issues
[7]: https://github.com/sorin-ionescu/prezto/issues/219 [7]: https://github.com/sorin-ionescu/prezto/issues/219
[8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html [8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html
[9]: https://getgb.io/
[10]: https://github.com/blog/985-git-io-github-url-shortener

View File

@ -26,239 +26,156 @@ zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_subm
# Aliases # Aliases
# #
if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then # Git
# Git alias g='git'
alias g='git'
# Branch (b) # Branch (b)
alias gb='git branch' alias gb='git branch'
alias gba='git branch --all --verbose' alias gbc='git checkout -b'
alias gbc='git checkout -b' alias gbl='git branch -v'
alias gbd='git branch --delete' alias gbL='git branch -av'
alias gbD='git branch --delete --force' alias gbx='git branch -d'
alias gbl='git branch --verbose' alias gbX='git branch -D'
alias gbL='git branch --all --verbose' alias gbm='git branch -m'
alias gbm='git branch --move' alias gbM='git branch -M'
alias gbM='git branch --move --force' alias gbs='git show-branch'
alias gbr='git branch --move' alias gbS='git show-branch -a'
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'
# Commit (c) # Commit (c)
alias gc='git commit --verbose' alias gc='git commit'
alias gca='git commit --verbose --all' alias gca='git commit --all'
alias gcm='git commit --message' alias gcm='git commit --message'
alias gcS='git commit -S --verbose' alias gco='git checkout'
alias gcSa='git commit -S --verbose --all' alias gcO='git checkout HEAD --'
alias gcSm='git commit -S --message' alias gcf='git commit --amend --reuse-message HEAD'
alias gcam='git commit --all --message' alias gcp='git cherry-pick --ff'
alias gco='git checkout' alias gcP='git cherry-pick --no-commit'
alias gcO='git checkout --patch' alias gcr='git revert'
alias gcf='git commit --amend --reuse-message HEAD' alias gcR='git reset "HEAD^"'
alias gcSf='git commit -S --amend --reuse-message HEAD' alias gcs='git show'
alias gcF='git commit --verbose --amend' alias gcl='git-commit-lost'
alias gcSF='git commit -S --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) # Data (d)
alias gCl='git --no-pager diff --name-only --diff-filter=U' alias gd='git ls-files'
alias gCa='git add $(gCl)' alias gdc='git ls-files --cached'
alias gCe='git mergetool $(gCl)' alias gdx='git ls-files --deleted'
alias gCo='git checkout --ours --' alias gdm='git ls-files --modified'
alias gCO='gCo $(gCl)' alias gdu='git ls-files --other --exclude-standard'
alias gCt='git checkout --theirs --' alias gdk='git ls-files --killed'
alias gCT='gCt $(gCl)' alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"'
# Data (d) # Fetch (f)
alias gd='git ls-files' alias gf='git fetch'
alias gdc='git ls-files --cached' alias gfc='git clone'
alias gdx='git ls-files --deleted' alias gfm='git pull'
alias gdm='git ls-files --modified' alias gfr='git pull --rebase'
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) # Grep (g)
alias gf='git fetch' alias gg='git grep'
alias gfa='git fetch --all' alias ggi='git grep --ignore-case'
alias gfc='git clone' alias ggl='git grep --files-with-matches'
alias gfcr='git clone --recurse-submodules' alias ggL='git grep --files-without-matches'
alias gfm='git pull' alias ggv='git grep --invert-match'
alias gfr='git pull --rebase' alias ggw='git grep --word-regexp'
# Flow (F) # Index (i)
alias gFi='git flow init' alias gia='git add'
alias gFf='git flow feature' alias giA='git add --patch'
alias gFb='git flow bugfix' alias giu='git add --update'
alias gFl='git flow release' alias gid='git diff --no-ext-diff --cached'
alias gFh='git flow hotfix' alias giD='git diff --no-ext-diff --cached --word-diff'
alias gFs='git flow support' alias gir='git reset'
alias giR='git reset --keep'
alias gix='git rm -r --cached'
alias giX='git rm -rf --cached'
alias gFfl='git flow feature list' # Conflict (C)
alias gFfs='git flow feature start' alias gCl='git status | sed -n "s/^.*both [a-z]*ed: *//p"'
alias gFff='git flow feature finish' alias gCa='git add $(gCl)'
alias gFfp='git flow feature publish' alias gCe='git mergetool $(gCl)'
alias gFft='git flow feature track' alias gCo='git checkout --ours --'
alias gFfd='git flow feature diff' alias gCO='gCo $(gCl)'
alias gFfr='git flow feature rebase' alias gCt='git checkout --theirs --'
alias gFfc='git flow feature checkout' alias gCT='gCt $(gCl)'
alias gFfm='git flow feature pull'
alias gFfx='git flow feature delete'
alias gFbl='git flow bugfix list' # Log (l)
alias gFbs='git flow bugfix start' alias gl='git log --topo-order --pretty=format:${_git_log_medium_format}'
alias gFbf='git flow bugfix finish' alias gls='git log --topo-order --stat --pretty=format:${_git_log_medium_format}'
alias gFbp='git flow bugfix publish' alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:${_git_log_medium_format}'
alias gFbt='git flow bugfix track' alias glo='git log --topo-order --pretty=format:${_git_log_oneline_format}'
alias gFbd='git flow bugfix diff' alias glg='git log --topo-order --all --graph --pretty=format:${_git_log_oneline_format}'
alias gFbr='git flow bugfix rebase' alias glb='git log --topo-order --pretty=format:${_git_log_brief_format}'
alias gFbc='git flow bugfix checkout' alias glc='git shortlog --summary --numbered'
alias gFbm='git flow bugfix pull'
alias gFbx='git flow bugfix delete'
alias gFll='git flow release list' # Merge (m)
alias gFls='git flow release start' alias gm='git merge'
alias gFlf='git flow release finish' alias gmC='git merge --no-commit'
alias gFlp='git flow release publish' alias gmF='git merge --no-ff'
alias gFlt='git flow release track' alias gma='git merge --abort'
alias gFld='git flow release diff' alias gmt='git mergetool'
alias gFlr='git flow release rebase'
alias gFlc='git flow release checkout'
alias gFlm='git flow release pull'
alias gFlx='git flow release delete'
alias gFhl='git flow hotfix list' # Push (p)
alias gFhs='git flow hotfix start' alias gp='git push'
alias gFhf='git flow hotfix finish' alias gpf='git push --force'
alias gFhp='git flow hotfix publish' alias gpa='git push --all'
alias gFht='git flow hotfix track' alias gpA='git push --all && git push --tags'
alias gFhd='git flow hotfix diff' alias gpt='git push --tags'
alias gFhr='git flow hotfix rebase' alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"'
alias gFhc='git flow hotfix checkout' alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"'
alias gFhm='git flow hotfix pull'
alias gFhx='git flow hotfix delete'
alias gFsl='git flow support list' # Rebase (r)
alias gFss='git flow support start' alias gr='git rebase'
alias gFsf='git flow support finish' alias gra='git rebase --abort'
alias gFsp='git flow support publish' alias grc='git rebase --continue'
alias gFst='git flow support track' alias gri='git rebase --interactive'
alias gFsd='git flow support diff' alias grs='git rebase --skip'
alias gFsr='git flow support rebase'
alias gFsc='git flow support checkout'
alias gFsm='git flow support pull'
alias gFsx='git flow support delete'
# Grep (g) # Remote (R)
alias gg='git grep' alias gR='git remote'
alias ggi='git grep --ignore-case' alias gRl='git remote --verbose'
alias ggl='git grep --files-with-matches' alias gRa='git remote add'
alias ggL='git grep --files-without-matches' alias gRx='git remote rm'
alias ggv='git grep --invert-match' alias gRm='git remote rename'
alias ggw='git grep --word-regexp' alias gRu='git remote update'
alias gRc='git remote prune'
alias gRs='git remote show'
alias gRb='git-hub-browse'
# Index (i) # Stash (s)
alias gia='git add' alias gs='git stash'
alias giA='git add --patch' alias gsa='git stash apply'
alias giu='git add --update' alias gsx='git stash drop'
alias gid='git diff --no-ext-diff --cached' alias gsX='git-stash-clear-interactive'
alias giD='git diff --no-ext-diff --cached --word-diff' alias gsd='git-stash-dropped'
alias gii='git update-index --assume-unchanged' alias gsl='git stash list'
alias giI='git update-index --no-assume-unchanged' alias gsL='git stash show --patch --stat'
alias gir='git reset' alias gsp='git stash pop'
alias giR='git reset --patch' alias gsr='git-stash-recover'
alias gix='git rm -r --cached' alias gss='git stash save --include-untracked'
alias giX='git rm -rf --cached' alias gsS='git stash save --patch --no-keep-index'
alias gsw='git stash save --include-untracked --keep-index'
# Log (l) # Submodule (S)
alias gl='git log --topo-order --pretty=format:"${_git_log_medium_format}"' alias gS='git submodule'
alias gls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"' alias gSa='git submodule add'
alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"${_git_log_medium_format}"' alias gSf='git submodule foreach'
alias glo='git log --topo-order --pretty=format:"${_git_log_oneline_format}"' alias gSi='git submodule init'
alias glg='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_format}"' alias gSI='git submodule update --init --recursive'
alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"' alias gSl='git submodule status'
alias glc='git shortlog --summary --numbered' 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) # Working Copy (w)
alias gm='git merge' alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short'
alias gmC='git merge --no-commit' alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}'
alias gmF='git merge --no-ff' alias gwd='git diff --no-ext-diff'
alias gma='git merge --abort' alias gwD='git diff --no-ext-diff --word-diff'
alias gmt='git mergetool' 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 foreach git pull origin master'
alias gSx='git-submodule-remove'
# 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'
fi

View File

@ -29,7 +29,7 @@ case "$state" in
remote="$words[(($CURRENT - 1))]" remote="$words[(($CURRENT - 1))]"
branches_or_tags=($( branches_or_tags=($(
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/}) branches=(HEAD ${${(M)branches_or_tags[@]##refs/heads/?##}##refs/heads/})
@ -39,9 +39,10 @@ case "$state" in
_describe -t tag 'tags' tags && ret=0 _describe -t tag 'tags' tags && ret=0
;; ;;
(file) (file)
files=(${(0)"$(_call_program files 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 _wanted file expl 'file' _multi_parts - / files && ret=0
;; ;;
esac esac
return $ret return $ret

View File

@ -8,9 +8,5 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # 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

View File

@ -16,3 +16,4 @@ _arguments "1:toggle:((
on\:'enable in-prompt information for the current repository' on\:'enable in-prompt information for the current repository'
off\:'disable in-prompt information for the current repository' off\:'disable in-prompt information for the current repository'
))" && return 0 ))" && return 0

View File

@ -38,3 +38,4 @@ case "$state" in
esac esac
return $ret return $ret

View File

@ -24,3 +24,4 @@ done < <(
) )
_describe -t submodule 'submodules' submodules && return 0 _describe -t submodule 'submodules' submodules && return 0

View File

@ -5,8 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-branch-current {
if ! git rev-parse 2> /dev/null; then if ! git rev-parse 2> /dev/null; then
print "$0: not a repository: $PWD" >&2 print "$0: not a repository: $PWD" >&2
return 1 return 1
@ -21,4 +19,3 @@ else
return 1 return 1
fi fi
# }

View File

@ -5,8 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-commit-lost {
if ! is-true "$(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 print "$0: not a repository work tree: $PWD" >&2
return 1 return 1
@ -21,4 +19,3 @@ git fsck 2> /dev/null \
--stdin \ --stdin \
--pretty=format:${_git_log_oneline_format} --pretty=format:${_git_log_oneline_format}
# }

View File

@ -5,8 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-dir {
local git_dir="${$(git rev-parse --git-dir):A}" local git_dir="${$(git rev-parse --git-dir):A}"
if [[ -n "$git_dir" ]]; then if [[ -n "$git_dir" ]]; then
@ -17,4 +15,3 @@ else
return 1 return 1
fi fi
# }

View File

@ -5,8 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-hub-browse {
if ! is-true "$(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 print "$0: not a repository work tree: $PWD" >&2
return 1 return 1
@ -39,7 +37,7 @@ if (( $references[(i)$reference] == $#references + 1 )); then
fi fi
if [[ "$reference" == 'HEAD' ]]; then if [[ "$reference" == 'HEAD' ]]; then
reference="$(git rev-parse HEAD 2> /dev/null)" reference="$(git rev-parse HEAD 2>/dev/null)"
fi fi
file="$3" file="$3"
@ -59,4 +57,3 @@ else
return 1 return 1
fi fi
# }

View File

@ -5,24 +5,19 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-hub-shorten-url { local url="$1"
local url="$1" code="$2"
if [[ "$url" == '-' ]]; then if [[ "$url" == '-' ]]; then
read url <&0 read url <&0
fi fi
if [[ -z "$url" || ! "$url" =~ ^https?:\/\/.*github.com\/ ]]; then if [[ -z "$url" ]]; then
print "usage: $0 [ url | - ] [code] ; url must be a github.com URL" >&2 print "usage: $0 [ url | - ]" >&2
return 1
fi fi
if (( $+commands[curl] )); then if (( $+commands[curl] )); then
curl -s -i 'https://git.io' -F "url=$url" ${(s: :)code:+ -F "code=$code"} | sed -n 's/^Location: //p' curl -s -i 'http://git.io' -F "url=$url" | grep 'Location:' | sed 's/Location: //'
else else
print "$0: command not found: curl" >&2 print "$0: command not found: curl" >&2
return 1
fi fi
# }

View File

@ -5,7 +5,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # 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. # Borrowed from vcs_info and edited.
function _git-action { function _git-action {
local action_dir local action_dir
@ -18,8 +18,6 @@ function _git-action {
local rebase_formatted local rebase_formatted
local rebase_interactive_formatted local rebase_interactive_formatted
local rebase_merge_formatted local rebase_merge_formatted
local revert_formatted
local revert_sequence_formatted
for action_dir in \ for action_dir in \
"${git_dir}/rebase-apply" \ "${git_dir}/rebase-apply" \
@ -82,18 +80,6 @@ function _git-action {
return 0 return 0
fi 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 if [[ -f "${git_dir}/BISECT_LOG" ]]; then
zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect' zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect'
print "$bisect_formatted" print "$bisect_formatted"
@ -103,6 +89,31 @@ function _git-action {
return 1 return 1
} }
# Turns off git-info for the current repository.
function _git-info-abort {
if ! is-true "$_git_info_executing"; then
return 1
fi
cat >&2 <<EOF
Gathering status for certain repositories is time intensive.
By pressing CTRL + C, you have turned off prompt Git status
for this repository.
To revert, execute:
git-info on
EOF
unset _git_info_executing
git config --bool prompt.showinfo false
git-info
return 0
}
add-zsh-trap INT _git-info-abort
# Gets the Git status information. # Gets the Git status information.
function git-info { function git-info {
# Extended globbing is needed to parse repository status. # Extended globbing is needed to parse repository status.
@ -115,13 +126,13 @@ function git-info {
local added=0 local added=0
local added_format local added_format
local added_formatted local added_formatted
local ahead=0 local ahead
local ahead_and_behind local ahead_and_behind
local ahead_and_behind_cmd local ahead_and_behind_cmd
local ahead_format local ahead_format
local ahead_formatted local ahead_formatted
local ahead_or_behind local ahead_or_behind
local behind=0 local behind
local behind_format local behind_format
local behind_formatted local behind_formatted
local branch local branch
@ -140,11 +151,9 @@ function git-info {
local dirty_format local dirty_format
local dirty_formatted local dirty_formatted
local ignore_submodules local ignore_submodules
local indexed=0
local indexed_format
local indexed_formatted
local -A info_formats local -A info_formats
local info_format local info_format
local line_number=0
local modified=0 local modified=0
local modified_format local modified_format
local modified_formatted local modified_formatted
@ -162,10 +171,6 @@ function git-info {
local stashed_format local stashed_format
local stashed_formatted local stashed_formatted
local status_cmd local status_cmd
local status_mode
local unindexed=0
local unindexed_format
local unindexed_formatted
local unmerged=0 local unmerged=0
local unmerged_format local unmerged_format
local unmerged_formatted local unmerged_formatted
@ -198,206 +203,135 @@ function git-info {
return 1 return 1
fi fi
# Used to abort and turn git-info off on SIGINT.
_git_info_executing=true
# Use porcelain status for easy parsing.
status_cmd='git status --porcelain'
# Gets the remote name.
remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
# Gets the commit difference counts between local and remote.
ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}'
# Ignore submodule status. # Ignore submodule status.
zstyle -s ':prezto:module:git:status:ignore' submodules 'ignore_submodules' zstyle -s ':prezto:module:git:status:ignore' submodules 'ignore_submodules'
if [[ -n "$ignore_submodules" ]]; then
status_cmd+=" --ignore-submodules=${ignore_submodules}"
fi
# Format commit. # Format commit.
zstyle -s ':prezto:module:git:info:commit' format 'commit_format' commit="$(git rev-parse HEAD 2> /dev/null)"
if [[ -n "$commit_format" ]]; then if [[ -n "$commit" ]]; then
commit="$(git rev-parse HEAD 2> /dev/null)" zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
if [[ -n "$commit" ]]; then zformat -f commit_formatted "$commit_format" "c:$commit"
zformat -f commit_formatted "$commit_format" "c:$commit"
fi
fi fi
# Format stashed. # Format stashed.
zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format' if [[ -f "$(git-dir)/refs/stash" ]]; then
if [[ -n "$stashed_format" && -f "$(git-dir)/refs/stash" ]]; then
stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')" stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
if [[ -n "$stashed" ]]; then zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format'
zformat -f stashed_formatted "$stashed_format" "S:$stashed" zformat -f stashed_formatted "$stashed_format" "S:$stashed"
fi
fi fi
# Format action. # Format action.
zstyle -s ':prezto:module:git:info:action' format 'action_format' action="$(_git-action)"
if [[ -n "$action_format" ]]; then if [[ -n "$action" ]]; then
action="$(_git-action)" zstyle -s ':prezto:module:git:info:action' format 'action_format'
if [[ -n "$action" ]]; then zformat -f action_formatted "$action_format" "s:$action"
zformat -f action_formatted "$action_format" "s:$action"
fi
fi fi
# Get the branch. # Get current status.
branch="${$(git symbolic-ref HEAD 2> /dev/null)#refs/heads/}" while IFS=$'\n' read line; do
# Count added, deleted, modified, renamed, unmerged, untracked, dirty.
# T (type change) is undocumented, see http://git.io/FnpMGw.
# For a table of scenarii, see http://i.imgur.com/2YLu1.png.
[[ "$line" == ([ACDMT][\ MT]|[ACMT]D)\ * ]] && (( added++ ))
[[ "$line" == [\ ACMRT]D\ * ]] && (( deleted++ ))
[[ "$line" == ?[MT]\ * ]] && (( modified++ ))
[[ "$line" == R?\ * ]] && (( renamed++ ))
[[ "$line" == (AA|DD|U?|?U)\ * ]] && (( unmerged++ ))
[[ "$line" == \?\?\ * ]] && (( untracked++ ))
(( dirty++ ))
done < <(${(z)status_cmd} 2> /dev/null)
# Format branch. # Format branch.
zstyle -s ':prezto:module:git:info:branch' format 'branch_format' branch="${$(git symbolic-ref -q HEAD)##refs/heads/}"
if [[ -n "$branch" && -n "$branch_format" ]]; then if [[ -n "$branch" ]]; then
zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
zformat -f branch_formatted "$branch_format" "b:$branch" zformat -f branch_formatted "$branch_format" "b:$branch"
fi
# Format position. # Format remote.
zstyle -s ':prezto:module:git:info:position' format 'position_format' remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}"
if [[ -z "$branch" && -n "$position_format" ]]; then if [[ -n "$remote" ]]; then
zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
zformat -f remote_formatted "$remote_format" "R:$remote"
# Get ahead and behind counts.
ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
# Format ahead.
ahead="$ahead_and_behind[(w)1]"
if (( $ahead > 0 )); then
zstyle -s ':prezto:module:git:info:ahead' format 'ahead_format'
zformat -f ahead_formatted "$ahead_format" "A:$ahead"
fi
# Format behind.
behind="$ahead_and_behind[(w)2]"
if (( $behind > 0 )); then
zstyle -s ':prezto:module:git:info:behind' format 'behind_format'
zformat -f behind_formatted "$behind_format" "B:$behind"
fi
fi
else
# Format position.
position="$(git describe --contains --all HEAD 2> /dev/null)" position="$(git describe --contains --all HEAD 2> /dev/null)"
if [[ -n "$position" ]]; then if [[ -n "$position" ]]; then
zstyle -s ':prezto:module:git:info:position' format 'position_format'
zformat -f position_formatted "$position_format" "p:$position" zformat -f position_formatted "$position_format" "p:$position"
fi fi
fi fi
# Format remote. # Format added.
zstyle -s ':prezto:module:git:info:remote' format 'remote_format' if (( $added > 0 )); then
if [[ -n "$branch" && -n "$remote_format" ]]; then zstyle -s ':prezto:module:git:info:added' format 'added_format'
# Gets the remote name. zformat -f added_formatted "$added_format" "a:$added_format"
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"
fi
fi fi
zstyle -s ':prezto:module:git:info:ahead' format 'ahead_format' # Format deleted.
zstyle -s ':prezto:module:git:info:behind' format 'behind_format' if (( $deleted > 0 )); then
if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then zstyle -s ':prezto:module:git:info:deleted' format 'deleted_format'
# Gets the commit difference counts between local and remote. zformat -f deleted_formatted "$deleted_format" "d:$deleted_format"
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[(w)1]"
if (( ahead > 0 )); then
zformat -f ahead_formatted "$ahead_format" "A:$ahead"
fi
fi
# Format behind.
if [[ -n "$behind_format" ]]; then
behind="$ahead_and_behind[(w)2]"
if (( behind > 0 )); then
zformat -f behind_formatted "$behind_format" "B:$behind"
fi
fi
fi fi
# Get status type. # Format modified.
if ! zstyle -t ':prezto:module:git:info' verbose; then if (( $modified > 0 )); then
# Format indexed. zstyle -s ':prezto:module:git:info:modified' format 'modified_format'
zstyle -s ':prezto:module:git:info:indexed' format 'indexed_format' zformat -f modified_formatted "$modified_format" "m:$modified"
if [[ -n "$indexed_format" ]]; then fi
((
indexed+=$(
git diff-index \
--no-ext-diff \
--name-only \
--cached \
--ignore-submodules=${ignore_submodules:-none} \
HEAD \
2> /dev/null \
| wc -l
)
))
if (( indexed > 0 )); then
zformat -f indexed_formatted "$indexed_format" "i:$indexed"
fi
fi
# Format unindexed. # Format renamed.
zstyle -s ':prezto:module:git:info:unindexed' format 'unindexed_format' if (( $renamed > 0 )); then
if [[ -n "$unindexed_format" ]]; then zstyle -s ':prezto:module:git:info:renamed' format 'renamed_format'
(( zformat -f renamed_formatted "$renamed_format" "r:$renamed"
unindexed+=$( fi
git diff-files \
--no-ext-diff \
--name-only \
--ignore-submodules=${ignore_submodules:-none} \
2> /dev/null \
| wc -l
)
))
if (( unindexed > 0 )); then
zformat -f unindexed_formatted "$unindexed_format" "I:$unindexed"
fi
fi
# Format untracked. # Format unmerged.
if (( $unmerged > 0 )); then
zstyle -s ':prezto:module:git:info:unmerged' format 'unmerged_format'
zformat -f unmerged_formatted "$unmerged_format" "U:$unmerged"
fi
# Format untracked.
if (( $untracked > 0 )); then
zstyle -s ':prezto:module:git:info:untracked' format 'untracked_format' zstyle -s ':prezto:module:git:info:untracked' format 'untracked_format'
if [[ -n "$untracked_format" ]]; then zformat -f untracked_formatted "$untracked_format" "u:$untracked"
((
untracked+=$(
git ls-files \
--other \
--exclude-standard \
2> /dev/null \
| wc -l
)
))
if (( untracked > 0 )); then
zformat -f untracked_formatted "$untracked_format" "u:$untracked"
fi
fi
(( dirty = indexed + unindexed + untracked ))
else
# Use porcelain status for easy parsing.
status_cmd="git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
# Get current status.
while IFS=$'\n' read line; do
# Count added, deleted, modified, renamed, unmerged, untracked, dirty.
# T (type change) is undocumented, see http://git.io/FnpMGw.
# For a table of scenarii, see http://i.imgur.com/2YLu1.png.
[[ "$line" == ([ACDMT][\ MT]|[ACMT]D)\ * ]] && (( added++ ))
[[ "$line" == [\ ACMRT]D\ * ]] && (( deleted++ ))
[[ "$line" == ?[MT]\ * ]] && (( modified++ ))
[[ "$line" == R?\ * ]] && (( renamed++ ))
[[ "$line" == (AA|DD|U?|?U)\ * ]] && (( unmerged++ ))
[[ "$line" == \?\?\ * ]] && (( untracked++ ))
(( dirty++ ))
done < <(${(z)status_cmd} 2> /dev/null)
# Format added.
if (( added > 0 )); then
zstyle -s ':prezto:module:git:info:added' format 'added_format'
zformat -f added_formatted "$added_format" "a:$added"
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"
fi
# Format modified.
if (( modified > 0 )); then
zstyle -s ':prezto:module:git:info:modified' format 'modified_format'
zformat -f modified_formatted "$modified_format" "m:$modified"
fi
# Format renamed.
if (( renamed > 0 )); then
zstyle -s ':prezto:module:git:info:renamed' format 'renamed_format'
zformat -f renamed_formatted "$renamed_format" "r:$renamed"
fi
# Format unmerged.
if (( unmerged > 0 )); then
zstyle -s ':prezto:module:git:info:unmerged' format 'unmerged_format'
zformat -f unmerged_formatted "$unmerged_format" "U:$unmerged"
fi
# Format untracked.
if (( untracked > 0 )); then
zstyle -s ':prezto:module:git:info:untracked' format 'untracked_format'
zformat -f untracked_formatted "$untracked_format" "u:$untracked"
fi
fi fi
# Format dirty and clean. # Format dirty and clean.
if (( dirty > 0 )); then if (( $dirty > 0 )); then
zstyle -s ':prezto:module:git:info:dirty' format 'dirty_format' zstyle -s ':prezto:module:git:info:dirty' format 'dirty_format'
zformat -f dirty_formatted "$dirty_format" "D:$dirty" zformat -f dirty_formatted "$dirty_format" "D:$dirty"
else else
@ -408,30 +342,30 @@ function git-info {
zstyle -a ':prezto:module:git:info:keys' format 'info_formats' zstyle -a ':prezto:module:git:info:keys' format 'info_formats'
for info_format in ${(k)info_formats}; do for info_format in ${(k)info_formats}; do
zformat -f REPLY "$info_formats[$info_format]" \ zformat -f REPLY "$info_formats[$info_format]" \
"a:$added_formatted" \
"A:$ahead_formatted" \ "A:$ahead_formatted" \
"B:$behind_formatted" \ "B:$behind_formatted" \
"D:$dirty_formatted" \
"R:$remote_formatted" \
"S:$stashed_formatted" \
"U:$unmerged_formatted" \
"a:$added_formatted" \
"b:$branch_formatted" \ "b:$branch_formatted" \
"C:$clean_formatted" \ "C:$clean_formatted" \
"c:$commit_formatted" \ "c:$commit_formatted" \
"d:$deleted_formatted" \ "d:$deleted_formatted" \
"D:$dirty_formatted" \
"i:$indexed_formatted" \
"I:$unindexed_formatted" \
"m:$modified_formatted" \ "m:$modified_formatted" \
"p:$position_formatted" \ "p:$position_formatted" \
"R:$remote_formatted" \
"r:$renamed_formatted" \ "r:$renamed_formatted" \
"s:$action_formatted" \ "s:$action_formatted" \
"S:$stashed_formatted" \
"U:$unmerged_formatted" \
"u:$untracked_formatted" "u:$untracked_formatted"
git_info[$info_format]="$REPLY" git_info[$info_format]="$REPLY"
done done
unset REPLY unset REPLY
unset _git_info_executing
return 0 return 0
} }
git-info "$@" git-info "$@"

View File

@ -5,8 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-root {
local root="$(git rev-parse --show-toplevel 2> /dev/null)" local root="$(git rev-parse --show-toplevel 2> /dev/null)"
if [[ -n "$root" ]]; then if [[ -n "$root" ]]; then
@ -17,4 +15,3 @@ else
return 1 return 1
fi fi
# }

View File

@ -5,8 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-stash-clear-interactive {
if ! is-true "$(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 print "$0: not a repository work tree: $PWD" >&2
return 1 return 1
@ -23,4 +21,3 @@ if [[ -f "$(git-dir)/refs/stash" ]]; then
fi fi
fi fi
# }

View File

@ -5,8 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-stash-dropped {
if ! is-true "$(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 print "$0: not a repository work tree: $PWD" >&2
return 1 return 1
@ -23,4 +21,3 @@ git fsck --unreachable 2> /dev/null \
--no-walk \ --no-walk \
--stdin --stdin
# }

View File

@ -5,8 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-stash-recover {
if ! is-true "$(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 print "$0: not a repository work tree: $PWD" >&2
return 1 return 1
@ -19,4 +17,3 @@ for commit in "$@"; do
-m "$(git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit" -m "$(git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
done done
# }

View File

@ -5,8 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-submodule-move {
if ! is-true "$(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 print "$0: not a repository work tree: $PWD" >&2
return 1 return 1
@ -33,4 +31,3 @@ git submodule add "$url" "$dst"
return 0 return 0
# }

View File

@ -5,8 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function git-submodule-remove {
if ! is-true "$(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 print "$0: not a repository work tree: $PWD" >&2
return 1 return 1
@ -28,4 +26,3 @@ rm -rf "$(git-dir)/modules/${1}"
return 0 return 0
# }

View File

@ -15,3 +15,4 @@ pmodload 'helper'
# Source module files. # Source module files.
source "${0:h}/alias.zsh" source "${0:h}/alias.zsh"

View File

@ -1,14 +1,14 @@
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 `ls` instead of `gls`, is not recommended since scripts that target other
utilities will be broken. utilities will be broken.
This module wraps GNU utilities in functions without a prefix for interactive However, for interactive use, prefixed commands can be wrapped in their
use. non-prefixed counterparts.
This module must be loaded **before** the *utility* module. This module must be loaded **before** the *utility* module.
@ -20,9 +20,7 @@ Settings
To use a different prefix, add the following to *zpreztorc*, and replace 'g' with To use a different prefix, add the following to *zpreztorc*, and replace 'g' with
the desired prefix: the desired prefix:
```sh zstyle ':prezto:module:gnu-utility' prefix 'g'
zstyle ':prezto:module:gnu-utility' prefix 'g'
```
Authors Authors
------- -------
@ -32,3 +30,4 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -42,13 +42,13 @@ _gnu_utility_cmds=(
'libtool' 'libtoolize' 'libtool' 'libtoolize'
# Miscellaneous # Miscellaneous
'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units' 'which' 'getopt' 'grep' 'indent' 'sed' 'tar' 'time' 'units' 'which'
) )
# Wrap GNU utilities in functions. # Wrap GNU utilities in functions.
for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do
_gnu_utility_pcmd="${_gnu_utility_p}${_gnu_utility_cmd}" _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 " eval "
function ${_gnu_utility_cmd} { function ${_gnu_utility_cmd} {
'${commands[${_gnu_utility_pcmd}]}' \"\$@\" '${commands[${_gnu_utility_pcmd}]}' \"\$@\"
@ -58,3 +58,4 @@ for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do
done done
unset _gnu_utility_{p,cmds,cmd,pcmd} unset _gnu_utility_{p,cmds,cmd,pcmd}

View File

@ -0,0 +1,25 @@
GPG-Agent
=========
Provides for an easier use of [gpg-agent][1].
Settings
--------
### SSH-Agent Protocol Emulation
To enable SSH-Agent protocol emulation, add the following line to *zpreztorc*:
zstyle ':prezto:module:gpg-agent' ssh-support 'yes'
Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].*
- [Florian Walch](https://github.com/fwalch)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://linux.die.net/man/1/gpg-agent
[2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -0,0 +1,44 @@
#
# Provides for an easier use of gpg-agent.
#
# Authors:
# Florian Walch <florian.walch@gmx.at>
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Return if requirements are not found.
if (( ! $+commands[gpg-agent] )); then
return 1
fi
_gpg_env="$HOME/.gnupg/gpg-agent.env"
function _gpg-agent-start {
local ssh_support
zstyle -b ':prezto:module:gpg-agent' ssh-support 'ssh_support' \
|| ssh_support=''
gpg-agent \
--daemon ${ssh_support:+'--enable-ssh-support'}
--write-env-file "${_gpg_env}" > /dev/null
chmod 600 "${_gpg_env}"
source "${_gpg_env}" > /dev/null
}
# Source GPG agent settings, if applicable.
if [[ -s "${_gpg_env}" ]]; then
source "${_gpg_env}" > /dev/null
ps -ef | grep "${SSH_AGENT_PID}" | grep -q 'gpg-agent' || {
_gpg-agent-start
}
else
_gpg-agent-start
fi
export GPG_AGENT_INFO
export SSH_AUTH_SOCK
export SSH_AGENT_PID
export GPG_TTY="$(tty)"

View File

@ -1,28 +0,0 @@
GPG
===
Provides for an easier use of [GPG][1] by setting up [gpg-agent][2].
### SSH
To enable OpenSSH Agent protocol emulation, and make `gpg-agent` a drop-in
replacement for `ssh-agent`, add the following line to
*~/.gnupg/gpg-agent.conf*:
```conf
enable-ssh-support
```
When OpenSSH Agent protocol emulation is enabled, this module will load the SSH
module for additional processing.
Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].*
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.gnupg.org
[2]: http://linux.die.net/man/1/gpg-agent
[3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,55 +0,0 @@
#
# Provides for an easier use of GPG by setting up gpg-agent.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Return if requirements are not found.
if (( ! $+commands[gpg-agent] )); then
return 1
fi
# Set the default paths to gpg-agent files.
_gpg_agent_conf="${GNUPGHOME:-$HOME/.gnupg}/gpg-agent.conf"
_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env.$UID"
# Load environment variables from previous run
source "$_gpg_agent_env" 2> /dev/null
# 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
eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
fi
fi
# Inform gpg-agent of the current TTY for user prompts.
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
# 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.
unset _gpg_agent_{conf,env}
# Disable GUI prompts inside SSH.
if [[ -n "$SSH_CONNECTION" ]]; then
export PINENTRY_USER_DATA='USE_CURSES=1'
fi

View File

@ -26,3 +26,4 @@ Authors
[1]: http://www.haskell.org/cabal/ [1]: http://www.haskell.org/cabal/
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -10,9 +10,12 @@ if (( ! $+commands[ghc] )); then
return 1 return 1
fi fi
# Prepend Cabal per user directories to PATH. # Prepend Cabal per user directories to PATH/MANPATH.
if [[ "$OSTYPE" == darwin* && -d $HOME/Library/Haskell ]]; then if [[ "$OSTYPE" == darwin* ]]; then
path=($HOME/Library/Haskell/bin(/N) $path) path=($HOME/Library/Haskell/bin(/N) $path)
manpath=($HOME/Library/Haskell/man(/N) $manpath)
else else
path=($HOME/.cabal/bin(/N) $path) path=($HOME/.cabal/bin(/N) $path)
manpath=($HOME/.cabal/man(/N) $manpath)
fi fi

View File

@ -13,6 +13,7 @@ Functions
- `is-callable` checks if a name is a command, function, or alias. - `is-callable` checks if a name is a command, function, or alias.
- `is-true` checks a boolean variable for "true". - `is-true` checks a boolean variable for "true".
- `coalesce` prints the first non-empty string in the arguments array. - `coalesce` prints the first non-empty string in the arguments array.
- `zstyle-` defines a style if it is already not defined.
Authors Authors
------- -------
@ -22,3 +23,4 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -6,6 +6,14 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# Trap signals were generated with 'kill -l'.
# DEBUG, EXIT, and ZERR are Zsh signals.
_trap_signals=(
ABRT ALRM BUS CHLD CONT EMT FPE HUP ILL INFO INT IO KILL PIPE PROF QUIT
SEGV STOP SYS TERM TRAP TSTP TTIN TTOU URG USR1 USR2 VTALRM WINCH XCPU XFSZ
DEBUG EXIT ZERR
)
# Adds a function name to a list to be called when a trap is triggered. # Adds a function name to a list to be called when a trap is triggered.
function add-zsh-trap { function add-zsh-trap {
if (( $# < 2 )); then if (( $# < 2 )); then
@ -13,7 +21,7 @@ function add-zsh-trap {
return 1 return 1
fi fi
if [[ -z "$signals[(r)$1]" ]]; then if [[ -z "$_trap_signals[(r)$1]" ]]; then
print "$0: unknown signal: $1" >&2 print "$0: unknown signal: $1" >&2
return 1 return 1
fi fi
@ -39,3 +47,4 @@ function add-zsh-trap {
} }
add-zsh-trap "$@" add-zsh-trap "$@"

View File

@ -12,7 +12,7 @@ function is-autoloadable {
# Checks if a name is a command, function, or alias. # Checks if a name is a command, function, or alias.
function is-callable { function is-callable {
(( $+commands[$1] || $+functions[$1] || $+aliases[$1] || $+builtins[$1] )) (( $+commands[$1] )) || (( $+functions[$1] )) || (( $+aliases[$1] ))
} }
# Checks a boolean variable for "true". # Checks a boolean variable for "true".
@ -29,3 +29,8 @@ function coalesce {
done done
return 1 return 1
} }
# Defines a style if it is already not defined.
function zstyle- {
zstyle -T "$1" "$2" && zstyle "$@"
}

View File

@ -6,8 +6,8 @@ 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 part of a previously entered command and press up and down to cycle through
matching commands. matching commands.
If this module is used in conjunction with the *syntax-highlighting* module, If this module is used in conjuncture with the *syntax-highlighting* module, it
this module must be loaded **after** the *syntax-highlighting* module. must be loaded **after** it.
Contributors Contributors
------------ ------------
@ -24,9 +24,7 @@ Settings
To enable case-sensitivity for this module only, add the following line to To enable case-sensitivity for this module only, add the following line to
*zpreztorc*: *zpreztorc*:
```sh zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
```
### Highlighting ### Highlighting
@ -36,27 +34,7 @@ positive results.
To enable highlighting for this module only, add the following line to To enable highlighting for this module only, add the following line to
*zpreztorc*: *zpreztorc*:
```sh zstyle ':prezto:module:history-substring-search' color 'yes'
zstyle ':prezto:module:history-substring-search' color 'yes'
```
To set the query found color, add the following line to *zpreztorc*:
```sh
zstyle ':prezto:module:history-substring-search:color' found ''
```
To set the query not found color, add the following line to *zpreztorc*:
```sh
zstyle ':prezto:module:history-substring-search:color' not-found ''
```
To set the search globbing flags, add the following line to *zpreztorc*:
```sh
zstyle ':prezto:module:history-substring-search' globbing-flags ''
```
Authors Authors
------- -------
@ -69,3 +47,4 @@ Authors
[1]: https://github.com/zsh-users/zsh-history-substring-search [1]: https://github.com/zsh-users/zsh-history-substring-search
[2]: http://fishshell.com [2]: http://fishshell.com
[3]: https://github.com/sorin-ionescu/prezto/issues [3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -10,26 +10,14 @@
pmodload 'editor' pmodload 'editor'
# Source module files. # Source module files.
source "${0:h}/external/zsh-history-substring-search.zsh" || return 1 source "${0:h}/external/zsh-history-substring-search.zsh"
# #
# Search # Styles
# #
zstyle -s ':prezto:module:history-substring-search:color' found \
'HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND' \
|| HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold'
zstyle -s ':prezto:module:history-substring-search:color' not-found \
'HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND' \
|| HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold'
zstyle -s ':prezto:module:history-substring-search' globbing-flags \
'HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS' \
|| HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'
if zstyle -t ':prezto:module:history-substring-search' case-sensitive; then if zstyle -t ':prezto:module:history-substring-search' case-sensitive; then
HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS="${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS//i}" unset HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS
fi fi
if ! zstyle -t ':prezto:module:history-substring-search' color; then if ! zstyle -t ':prezto:module:history-substring-search' color; then
@ -40,7 +28,7 @@ fi
# Key Bindings # Key Bindings
# #
if [[ -n "$key_info" ]]; then if [[ -n $key_info ]]; then
# Emacs # Emacs
bindkey -M emacs "$key_info[Control]P" history-substring-search-up bindkey -M emacs "$key_info[Control]P" history-substring-search-up
bindkey -M emacs "$key_info[Control]N" history-substring-search-down bindkey -M emacs "$key_info[Control]N" history-substring-search-down
@ -54,6 +42,5 @@ if [[ -n "$key_info" ]]; then
bindkey -M "$keymap" "$key_info[Up]" history-substring-search-up bindkey -M "$keymap" "$key_info[Up]" history-substring-search-up
bindkey -M "$keymap" "$key_info[Down]" history-substring-search-down bindkey -M "$keymap" "$key_info[Down]" history-substring-search-down
done done
unset keymap
fi fi

View File

@ -41,3 +41,4 @@ Authors
[1]: http://zsh.sourceforge.net/Guide/zshguide02.html#l16 [1]: http://zsh.sourceforge.net/Guide/zshguide02.html#l16
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,39 +0,0 @@
Homebrew
========
Defines Homebrew aliases.
Aliases
-------
### Homebrew
- `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.
- `brewo` lists brews which have an update available.
- `brews` searches for a formula.
- `brewu` updates and upgrades Homebrew packages and formulae.
- `brewx` uninstalls a formula.
### Homebrew Cask
- `cask` is aliased to `brew cask`.
- `caskc` cleans up old cached downloads.
- `caskC` cleans up all cached downloads.
- `caski` installs a cask.
- `caskl` lists installed casks.
- `casko` lists casks which have an update available.
- `casks` searches for a cask.
- `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)
[1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,35 +0,0 @@
#
# Defines Homebrew aliases.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Return if requirements are not found.
if [[ "$OSTYPE" != (darwin|linux)* ]]; then
return 1
fi
#
# Aliases
#
# Homebrew
alias brewc='brew cleanup'
alias brewC='brew cleanup --force'
alias brewi='brew install'
alias brewl='brew list'
alias brewo='brew outdated'
alias brews='brew search'
alias brewu='brew update && brew upgrade'
alias brewx='brew remove'
# Homebrew Cask
alias cask='brew cask'
alias caskc='brew cask cleanup --outdated'
alias caskC='brew cask cleanup'
alias caski='brew cask install'
alias caskl='brew cask list'
alias casko='brew cask outdated'
alias casks='brew cask search'
alias caskx='brew cask uninstall'

View File

@ -1,4 +1,4 @@
MacPorts Macports
======== ========
Defines MacPorts aliases and adds MacPorts directories to path variables. Defines MacPorts aliases and adds MacPorts directories to path variables.
@ -23,3 +23,4 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -15,6 +15,18 @@ fi
# Paths # Paths
# #
# Set the list of directories that info searches for manuals.
infopath=(
/opt/local/share/info
$infopath
)
# Set the list of directories that man searches for manuals.
manpath=(
/opt/local/share/man
$manpath
)
# Set the list of directories that Zsh searches for programs. # Set the list of directories that Zsh searches for programs.
path=( path=(
/opt/local/{bin,sbin} /opt/local/{bin,sbin}
@ -32,3 +44,4 @@ alias portU='sudo port selfupdate && sudo port upgrade outdated'
alias portu='sudo port upgrade' alias portu='sudo port upgrade'
alias portX='sudo port -u uninstall' alias portX='sudo port -u uninstall'
alias portx='sudo port uninstall' alias portx='sudo port uninstall'

View File

@ -1,43 +1,13 @@
Node.js Node.js
======= =======
Provides utility functions for [Node.js][1], loads the Node Version Manager, and Provides utility functions for [Node.js][1] and loads [npm][2] completion.
enables [npm][2] completion.
nvm
---
[nvm][5] allows for managing multiple, isolated Node.js installations in the
home directory.
nodenv
------
[nodenv][6] does one thing well. nodenv is concerned solely with switching
Node versions. It's simple and predictable, Just Works, and is rock solid in
production. nodenv is forked from the popular [rbenv][7].
Functions Functions
--------- ---------
- `node-doc` opens the Node.js online [API documentation][3] in the default - `node-doc` opens the Node.js online [API documentation][3] in the default
browser. browser.
- `node-info` exposes information about the Node.js environment via the
`$node_info` associative array.
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'
```
Then add `$node_info[version]` to either `$PROMPT` or `$RPROMPT` and call
`node-info` in `prompt_name_preexec` hook function.
Authors Authors
------- -------
@ -45,12 +15,9 @@ Authors
*The authors of this module should be contacted via the [issue tracker][4].* *The authors of this module should be contacted via the [issue tracker][4].*
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Zeh Rizzatti](https://github.com/zehrizzatti)
[1]: http://nodejs.org [1]: http://nodejs.org
[2]: http://npmjs.org [2]: http://npmjs.org
[3]: http://nodejs.org/api [3]: http://nodejs.org/api
[4]: https://github.com/sorin-ionescu/prezto/issues [4]: https://github.com/sorin-ionescu/prezto/issues
[5]: https://github.com/creationix/nvm
[6]: https://github.com/nodenv/nodenv
[7]: https://github.com/sstephenson/rbenv

View File

@ -5,14 +5,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # 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. # TODO: Make the sections easier to use.
"$BROWSER" "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}" open "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}"
# }

View File

@ -1,30 +0,0 @@
#
# Exposes information about the Node.js environment via the $node_info
# associative array.
#
# Authors:
# Zeh Rizzatti <zehrizzatti@gmail.com>
#
# function node-info {
local version
local version_format
local version_formatted
unset node_info
typeset -gA node_info
if (( $+functions[nvm_version] )); then
version="${$(nvm_version)#v}"
elif (( $+commands[nodenv] )); then
version="${${$(nodenv version)#v}[(w)0]}"
fi
if [[ "$version" != (none|) ]]; 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
# }

View File

@ -1,36 +1,18 @@
# #
# Loads the Node Version Manager and enables npm completion. # Completes npm.
# #
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# Zeh Rizzatti <zehrizzatti@gmail.com>
# #
# Load manually installed NVM into the shell session.
if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
source "$HOME/.nvm/nvm.sh"
# Load package manager installed NVM into the shell session.
elif (( $+commands[brew] )) && [[ -d "$(brew --prefix nvm 2> /dev/null)" ]]; then
source "$(brew --prefix nvm)/nvm.sh"
# Load manually installed nodenv into the shell session.
elif [[ -s "$HOME/.nodenv/bin/nodenv" ]]; then
path=("$HOME/.nodenv/bin" $path)
eval "$(nodenv init - --no-rehash zsh)"
# Load package manager installed nodenv into the shell session.
elif (( $+commands[nodenv] )); then
eval "$(nodenv init - --no-rehash zsh)"
# Return if requirements are not found. # Return if requirements are not found.
elif (( ! $+commands[node] )); then if (( ! $+commands[node] )); then
return 1 return 1
fi fi
# Load NPM completion. # Load NPM completion.
if (( $+commands[npm] )); then if (( $+commands[npm] )); then
cache_file="${TMPDIR:-/tmp}/prezto-node-cache.$UID.zsh" cache_file="${0:h}/cache.zsh"
if [[ "$commands[npm]" -nt "$cache_file" || ! -s "$cache_file" ]]; then if [[ "$commands[npm]" -nt "$cache_file" || ! -s "$cache_file" ]]; then
# npm is slow; cache its output. # npm is slow; cache its output.
@ -41,3 +23,4 @@ if (( $+commands[npm] )); then
unset cache_file unset cache_file
fi fi

View File

@ -1,27 +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]: http://ocaml.org/
[2]: http://opam.ocamlpro.com/
[3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -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"

View File

@ -3,39 +3,24 @@ OSX
Defines [Mac OS X][1] aliases and functions. Defines [Mac OS X][1] aliases and functions.
Settings
--------
### Dash Keyword
To change the keyword used by `mand` to open man pages in [_Dash.app_][2] from
its default value of 'manpages', add the following line in *zpreztorc* and
replace the **keyword** with the one configured in [_Dash.app_][2].
```sh
zstyle ':prezto:module:osx:man' dash-keyword 'keyword'
```
Aliases Aliases
------- -------
- `cdf` changes the current working director to the current _Finder_ - `cdf` changes the current working director to the current _Finder_
directory. directory.
- `pushdf` pushes the current working directory onto the directory queue and - `pushdf` pushes the current working directory onto the directory queue and
changes the current working director to the current _Finder_ directory. - `ql` quick looks at files.
- `rm-osx-cruft` deletes .DS\_Store, \_\_MACOSX cruft.
Functions Functions
--------- ---------
- `mand` opens _man_ pages in [_Dash.app_][2]. - `manb` opens _man_ pages in [_Bwana.app_][2].
- `manp` opens _man_ pages in _Preview.app_. - `manp` opens _man_ pages in _Preview.app_.
- `pfd` prints the current _Finder_ directory. - `pfd` prints the current _Finder_ directory.
- `pfs` prints the current _Finder_ selection. - `pfs` prints the current _Finder_ selection.
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]). - `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]).
- `ql` previews files in Quick Look. - `trash` moves files and folders to _Trash_.
- `osx-rm-dir-metadata` deletes .DS\_Store, \_\_MACOSX cruft.
- `osx-ls-download-history` displays the Mac OS X download history.
- `osx-rm-download-history` deletes the Mac OS X download history.
Authors Authors
------- -------
@ -45,6 +30,7 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.apple.com/macosx/ [1]: http://www.apple.com/macosx/
[2]: http://kapeli.com/dash [2]: http://bruji.com/bwana/
[3]: http://www.iterm2.com/ [3]: http://www.iterm2.com/
[4]: https://github.com/sorin-ionescu/prezto/issues [4]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,11 +1,12 @@
#compdef mand manp #compdef manb manp
#autoload #autoload
# #
# Completes mand and manp. # Completes manb and manp.
# #
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
_man _man

View 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 "$@"

View File

@ -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:$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 "$@"

View File

@ -17,3 +17,4 @@ function manp {
} }
manp "$@" manp "$@"

View File

@ -1,17 +0,0 @@
#
# Displays the Mac OS X download history.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function osx-ls-download-history {
local db
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
sqlite3 "$db" 'SELECT LSQuarantineDataURLString FROM LSQuarantineEvent'
fi
done
# }

View File

@ -1,15 +0,0 @@
#
# Deletes .DS_Store and __MACOSX directories.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function osx-rm-dir-metadata {
find "${@:-$PWD}" \( \
-type f -name '.DS_Store' -o \
-type d -name '__MACOSX' \
\) -print0 | xargs -0 rm -rf
# }

View File

@ -1,17 +0,0 @@
#
# Deletes the Mac OS X download history.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function osx-rm-download-history {
local db
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
sqlite3 "$db" 'DELETE FROM LSQuarantineEvent; VACUUM'
fi
done
# }

View File

@ -5,12 +5,9 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function pfd { osascript 2>/dev/null <<EOF
osascript 2> /dev/null <<EOF
tell application "Finder" tell application "Finder"
return POSIX path of (target of first window as text) return POSIX path of (target of window 1 as alias)
end tell end tell
EOF EOF
# }

View File

@ -5,15 +5,14 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
# function pfs { osascript 2>/dev/null <<EOF
set output to ""
osascript 2>&1 <<EOF
tell application "Finder" to set the_selection to selection tell application "Finder" to set the_selection to selection
if the_selection is not {} set item_count to count the_selection
repeat with an_item in the_selection repeat with item_index from 1 to count the_selection
log POSIX path of (an_item as text) if item_index is less than item_count then set the_delimiter to "\n"
end repeat if item_index is item_count then set the_delimiter to ""
end if set output to output & ((item item_index of the_selection as alias)'s POSIX path) & the_delimiter
end repeat
EOF EOF
# }

Some files were not shown because too many files have changed in this diff Show More