removing exising prezto for cloning
This commit is contained in:
parent
29d0df6073
commit
d2c40ae871
186 changed files with 6 additions and 10639 deletions
6
init.sh
6
init.sh
|
@ -1,4 +1,10 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
#git cloning
|
||||||
|
echo "initialize submodules and clone prezto"
|
||||||
|
git clone --recursive https://github.com/steveokard/prezto.git "$HOME/stevset/prezto/.zprezto"
|
||||||
|
git submodule init && git submodule update
|
||||||
|
|
||||||
#install pre-req.
|
#install pre-req.
|
||||||
echo "installing required packages"
|
echo "installing required packages"
|
||||||
bash deps.sh
|
bash deps.sh
|
||||||
|
|
|
@ -1,75 +0,0 @@
|
||||||
Contributing
|
|
||||||
------------
|
|
||||||
|
|
||||||
This project would not exist without all of its users and [contributors][1].
|
|
||||||
|
|
||||||
If you have ideas on how to make the configuration easier to maintain or
|
|
||||||
improve its performance, do not hesitate to fork and send pull requests.
|
|
||||||
|
|
||||||
### Issue Reporting
|
|
||||||
|
|
||||||
- Check that the issue has not already been reported.
|
|
||||||
- Check that the issue has not already been fixed in the latest code.
|
|
||||||
- Open an issue with a clear title and description in grammatically correct,
|
|
||||||
complete sentences.
|
|
||||||
|
|
||||||
### Pull Request
|
|
||||||
|
|
||||||
- Read [how to properly contribute to open source projects on GitHub][2].
|
|
||||||
- Use a topic branch to easily amend a pull request later, if necessary.
|
|
||||||
- Write [good commit messages][3].
|
|
||||||
- Squash commits on the topic branch before opening a pull request.
|
|
||||||
- Use the same coding style and spacing.
|
|
||||||
- Open a [pull request][4] that relates to but one subject with a clear
|
|
||||||
title and description in grammatically correct, complete sentences.
|
|
||||||
|
|
||||||
#### Code Style
|
|
||||||
|
|
||||||
This project follows the [Google Shell Style Guide][5] when possible. However,
|
|
||||||
there are a number of additional things to keep in mind.
|
|
||||||
|
|
||||||
- Local variables should be used whenever possible.
|
|
||||||
- Prefer `zstyle` over environment variables for configuration.
|
|
||||||
- Prefer (( ... )) over [[ ... ]] for arithmetic expression.
|
|
||||||
- Use the function keyword to define functions.
|
|
||||||
- The 80 character hard limit can be waived for readability.
|
|
||||||
|
|
||||||
#### 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
|
|
||||||
|
|
||||||
- A *README.md* must be present.
|
|
||||||
- Large functions must be placed in a *functions* directory.
|
|
||||||
- Functions that take arguments must have completion.
|
|
||||||
|
|
||||||
#### Themes
|
|
||||||
|
|
||||||
- A screenshots section must be present in the file header.
|
|
||||||
- The pull request description must have [embedded screenshots][6].
|
|
||||||
|
|
||||||
[1]: https://github.com/sorin-ionescu/prezto/contributors
|
|
||||||
[2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request
|
|
||||||
[3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
|
|
||||||
[4]: https://help.github.com/articles/using-pull-requests
|
|
||||||
[5]: https://google.github.io/styleguide/shell.xml
|
|
||||||
[6]: http://daringfireball.net/projects/markdown/syntax#img
|
|
|
@ -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
|
|
|
@ -1,136 +0,0 @@
|
||||||
Prezto — Instantly Awesome Zsh
|
|
||||||
==============================
|
|
||||||
|
|
||||||
Prezto is the configuration framework for [Zsh][1]; it enriches the command line
|
|
||||||
interface environment with sane defaults, aliases, functions, auto completion,
|
|
||||||
and prompt themes.
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
Prezto will work with any recent release of Zsh, but the minimum required
|
|
||||||
version is 4.3.11.
|
|
||||||
|
|
||||||
1. Launch Zsh:
|
|
||||||
|
|
||||||
```console
|
|
||||||
zsh
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Clone the repository:
|
|
||||||
|
|
||||||
```console
|
|
||||||
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Create a new Zsh configuration by copying the Zsh configuration files
|
|
||||||
provided:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
setopt EXTENDED_GLOB
|
|
||||||
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
|
|
||||||
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
|
|
||||||
done
|
|
||||||
```
|
|
||||||
|
|
||||||
Note: If you already have any of the given configuration files, `ln` will
|
|
||||||
cause error. In simple cases you can load prezto by adding the line
|
|
||||||
`source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to the bottom of your
|
|
||||||
`.zshrc` and keep the rest of your Zsh configuration intact. For more
|
|
||||||
complicated setups, it is recommended that you back up your original
|
|
||||||
configs and replace them with the provided prezto runcoms.
|
|
||||||
|
|
||||||
4. Set Zsh as your default shell:
|
|
||||||
|
|
||||||
```console
|
|
||||||
chsh -s /bin/zsh
|
|
||||||
```
|
|
||||||
|
|
||||||
5. Open a new Zsh terminal window or tab.
|
|
||||||
|
|
||||||
### Troubleshooting
|
|
||||||
|
|
||||||
If you are not able to find certain commands after switching to *Prezto*,
|
|
||||||
modify the `PATH` variable in *~/.zprofile* then open a new Zsh terminal
|
|
||||||
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
|
|
||||||
-----
|
|
||||||
|
|
||||||
Prezto has many features disabled by default. Read the source code and
|
|
||||||
accompanying README files to learn of what is available.
|
|
||||||
|
|
||||||
### Modules
|
|
||||||
|
|
||||||
1. Browse */modules* to see what is available.
|
|
||||||
2. Load the modules you need in *~/.zpreztorc* then open a new Zsh terminal
|
|
||||||
window or tab.
|
|
||||||
|
|
||||||
### Themes
|
|
||||||
|
|
||||||
1. For a list of themes, type `prompt -l`.
|
|
||||||
2. To preview a theme, type `prompt -p name`.
|
|
||||||
3. Load the theme you like in *~/.zpreztorc* then open a new Zsh terminal
|
|
||||||
window or tab.
|
|
||||||
|
|
||||||
![sorin theme][2]
|
|
||||||
Note that the 'git' module may be required for special symbols to appear,
|
|
||||||
such as those on the right of the above image. Add `'git'` to the `pmodule`
|
|
||||||
list (under `zstyle ':prezto:load' pmodule \` in your *~/.zpreztorc*) to
|
|
||||||
enable this module.
|
|
||||||
|
|
||||||
### 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.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib
|
|
||||||
```
|
|
||||||
|
|
||||||
Customization
|
|
||||||
-------------
|
|
||||||
|
|
||||||
The project is managed via [Git][3]. It is highly recommended that you fork this
|
|
||||||
project; so, that you can commit your changes and push them to [GitHub][4] to
|
|
||||||
not lose them. If you do not know how to use Git, follow this [tutorial][5] and
|
|
||||||
bookmark this [reference][6].
|
|
||||||
|
|
||||||
Resources
|
|
||||||
---------
|
|
||||||
|
|
||||||
The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable.
|
|
||||||
|
|
||||||
License
|
|
||||||
-------
|
|
||||||
|
|
||||||
This project is licensed under the MIT License.
|
|
||||||
|
|
||||||
[1]: http://www.zsh.org
|
|
||||||
[2]: http://i.imgur.com/nrGV6pg.png "sorin theme"
|
|
||||||
[3]: http://git-scm.com
|
|
||||||
[4]: https://github.com
|
|
||||||
[5]: http://gitimmersion.com
|
|
||||||
[6]: https://git.github.io/git-reference/
|
|
||||||
[7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf
|
|
||||||
[8]: http://grml.org/zsh/zsh-lovers.html
|
|
|
@ -1,191 +0,0 @@
|
||||||
#
|
|
||||||
# Initializes Prezto.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Version Check
|
|
||||||
#
|
|
||||||
|
|
||||||
# Check for the minimum supported version.
|
|
||||||
min_zsh_version='4.3.11'
|
|
||||||
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
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
unset min_zsh_version
|
|
||||||
|
|
||||||
# zprezto convenience updater
|
|
||||||
# The function is surrounded by ( ) instead of { } so it starts in a subshell
|
|
||||||
# and won't affect the environment of the calling shell
|
|
||||||
function zprezto-update {
|
|
||||||
(
|
|
||||||
function cannot-fast-forward {
|
|
||||||
local STATUS="$1"
|
|
||||||
[[ -n "${STATUS}" ]] && printf "%s\n" "${STATUS}"
|
|
||||||
printf "Unable to fast-forward the changes. You can fix this by "
|
|
||||||
printf "running\ncd '%s' and then\n'git pull' " "${ZPREZTODIR}"
|
|
||||||
printf "to manually pull and possibly merge in changes\n"
|
|
||||||
}
|
|
||||||
cd -q -- "${ZPREZTODIR}" || return 7
|
|
||||||
local orig_branch="$(git symbolic-ref HEAD 2> /dev/null | cut -d '/' -f 3)"
|
|
||||||
if [[ "$orig_branch" == "master" ]]; then
|
|
||||||
git fetch || return "$?"
|
|
||||||
local UPSTREAM=$(git rev-parse '@{u}')
|
|
||||||
local LOCAL=$(git rev-parse HEAD)
|
|
||||||
local REMOTE=$(git rev-parse "$UPSTREAM")
|
|
||||||
local BASE=$(git merge-base HEAD "$UPSTREAM")
|
|
||||||
if [[ $LOCAL == $REMOTE ]]; then
|
|
||||||
printf "There are no updates.\n"
|
|
||||||
return 0
|
|
||||||
elif [[ $LOCAL == $BASE ]]; then
|
|
||||||
printf "There is an update available. Trying to pull.\n\n"
|
|
||||||
if git pull --ff-only; then
|
|
||||||
printf "Syncing submodules\n"
|
|
||||||
git submodule 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
|
|
||||||
#
|
|
||||||
|
|
||||||
# Loads Prezto modules.
|
|
||||||
function pmodload {
|
|
||||||
local -a pmodules
|
|
||||||
local -a pmodule_dirs
|
|
||||||
local -a locations
|
|
||||||
local pmodule
|
|
||||||
local pmodule_location
|
|
||||||
local pfunction_glob='^([_.]*|prompt_*_setup|README*|*~)(-.N:t)'
|
|
||||||
|
|
||||||
# Load in any additional directories and warn if they don't exist
|
|
||||||
zstyle -a ':prezto:load' pmodule-dirs 'user_pmodule_dirs'
|
|
||||||
for user_dir in "$user_pmodule_dirs[@]"; do
|
|
||||||
if [[ ! -d "$user_dir" ]]; then
|
|
||||||
echo "$0: Missing user module dir: $user_dir"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
pmodule_dirs=("$ZPREZTODIR/modules" "$ZPREZTODIR/contrib" "$user_pmodule_dirs[@]")
|
|
||||||
|
|
||||||
# $argv is overridden in the anonymous function.
|
|
||||||
pmodules=("$argv[@]")
|
|
||||||
|
|
||||||
# Load Prezto modules.
|
|
||||||
for pmodule in "$pmodules[@]"; do
|
|
||||||
if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then
|
|
||||||
continue
|
|
||||||
else
|
|
||||||
locations=(${pmodule_dirs:+${^pmodule_dirs}/$pmodule(-/FN)})
|
|
||||||
if (( ${#locations} > 1 )); then
|
|
||||||
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
|
|
||||||
|
|
||||||
if (( $? == 0 )); then
|
|
||||||
zstyle ":prezto:module:$pmodule" loaded 'yes'
|
|
||||||
else
|
|
||||||
# Remove the $fpath entry.
|
|
||||||
fpath[(r)${pmodule_location}/functions]=()
|
|
||||||
|
|
||||||
function {
|
|
||||||
local pfunction
|
|
||||||
|
|
||||||
# Extended globbing is needed for listing autoloadable function
|
|
||||||
# directories.
|
|
||||||
setopt LOCAL_OPTIONS EXTENDED_GLOB
|
|
||||||
|
|
||||||
# Unload Prezto functions.
|
|
||||||
for pfunction in ${pmodule_location}/functions/$~pfunction_glob; do
|
|
||||||
unfunction "$pfunction"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
zstyle ":prezto:module:$pmodule" loaded 'no'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Prezto Initialization
|
|
||||||
#
|
|
||||||
|
|
||||||
# This finds the directory prezto is installed to so plugin managers don't need
|
|
||||||
# to rely on dirty hacks to force prezto into a directory. Additionally, it
|
|
||||||
# needs to be done here because inside the pmodload function ${0:h} evaluates to
|
|
||||||
# the current directory of the shell rather than the prezto dir.
|
|
||||||
ZPREZTODIR=${0:h}
|
|
||||||
|
|
||||||
# Source the Prezto configuration file.
|
|
||||||
if [[ -s "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then
|
|
||||||
source "${ZDOTDIR:-$HOME}/.zpreztorc"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Disable color and theme in dumb terminals.
|
|
||||||
if [[ "$TERM" == 'dumb' ]]; then
|
|
||||||
zstyle ':prezto:*:*' color 'no'
|
|
||||||
zstyle ':prezto:module:prompt' theme 'off'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Load Zsh modules.
|
|
||||||
zstyle -a ':prezto:load' zmodule 'zmodules'
|
|
||||||
for zmodule ("$zmodules[@]") zmodload "zsh/${(z)zmodule}"
|
|
||||||
unset zmodule{s,}
|
|
||||||
|
|
||||||
# Autoload Zsh functions.
|
|
||||||
zstyle -a ':prezto:load' zfunction 'zfunctions'
|
|
||||||
for zfunction ("$zfunctions[@]") autoload -Uz "$zfunction"
|
|
||||||
unset zfunction{s,}
|
|
||||||
|
|
||||||
# Load Prezto modules.
|
|
||||||
zstyle -a ':prezto:load' pmodule 'pmodules'
|
|
||||||
pmodload "$pmodules[@]"
|
|
||||||
unset pmodules
|
|
|
@ -1,206 +0,0 @@
|
||||||
Modules
|
|
||||||
=======
|
|
||||||
|
|
||||||
Load modules in *zpreztorc*. The order matters.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:load' pmodule 'environment' 'terminal'
|
|
||||||
```
|
|
||||||
|
|
||||||
Archive
|
|
||||||
-------
|
|
||||||
|
|
||||||
Provides functions to list and extract archives.
|
|
||||||
|
|
||||||
Autosuggestions
|
|
||||||
---------------
|
|
||||||
|
|
||||||
Integrates zsh-autosuggestions into Prezto.
|
|
||||||
|
|
||||||
Command-Not-Found
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
Loads the command-not-found tool on macOS or Debian-based distributions.
|
|
||||||
|
|
||||||
Completion
|
|
||||||
----------
|
|
||||||
|
|
||||||
Loads and configures tab completion and provides additional completions from
|
|
||||||
the zsh-completions project.
|
|
||||||
|
|
||||||
Directory
|
|
||||||
---------
|
|
||||||
|
|
||||||
Sets directory options and defines directory aliases.
|
|
||||||
|
|
||||||
DNF
|
|
||||||
---
|
|
||||||
|
|
||||||
Defines dnf aliases.
|
|
||||||
|
|
||||||
Dpkg
|
|
||||||
----
|
|
||||||
|
|
||||||
Defines dpkg aliases and functions.
|
|
||||||
|
|
||||||
Editor
|
|
||||||
------
|
|
||||||
|
|
||||||
Sets key bindings.
|
|
||||||
|
|
||||||
Emacs
|
|
||||||
-----
|
|
||||||
|
|
||||||
Enables Emacs dependency management.
|
|
||||||
|
|
||||||
Environment
|
|
||||||
-----------
|
|
||||||
|
|
||||||
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
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Provides for the interactive use of GNU utilities on non-GNU systems.
|
|
||||||
|
|
||||||
GPG
|
|
||||||
---
|
|
||||||
|
|
||||||
Provides for an easier use of GPG by setting up gpg-agent.
|
|
||||||
|
|
||||||
Haskell
|
|
||||||
-------
|
|
||||||
|
|
||||||
Enables local Haskell package installation.
|
|
||||||
|
|
||||||
Helper
|
|
||||||
------
|
|
||||||
|
|
||||||
Provides helper functions for developing modules.
|
|
||||||
|
|
||||||
History
|
|
||||||
-------
|
|
||||||
|
|
||||||
Sets history options and defines history aliases.
|
|
||||||
|
|
||||||
History Substring Search
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Integrates zsh-history-substring-search into Prezto.
|
|
||||||
|
|
||||||
Homebrew
|
|
||||||
--------
|
|
||||||
|
|
||||||
Defines Homebrew aliases.
|
|
||||||
|
|
||||||
MacPorts
|
|
||||||
--------
|
|
||||||
|
|
||||||
Defines MacPorts aliases and adds MacPorts directories to path variables.
|
|
||||||
|
|
||||||
Node.js
|
|
||||||
-------
|
|
||||||
|
|
||||||
Provides utility functions for Node.js and loads npm completion.
|
|
||||||
|
|
||||||
OCaml
|
|
||||||
-----
|
|
||||||
|
|
||||||
Initializes OCaml package management.
|
|
||||||
|
|
||||||
OSX
|
|
||||||
---
|
|
||||||
|
|
||||||
Defines macOS aliases and functions.
|
|
||||||
|
|
||||||
Pacman
|
|
||||||
------
|
|
||||||
|
|
||||||
Provides aliases and functions for the Pacman package manager and frontends.
|
|
||||||
|
|
||||||
Perl
|
|
||||||
----
|
|
||||||
|
|
||||||
Enables local Perl module installation on macOS and defines alises.
|
|
||||||
|
|
||||||
Prompt
|
|
||||||
------
|
|
||||||
|
|
||||||
Loads prompt themes.
|
|
||||||
|
|
||||||
Python
|
|
||||||
------
|
|
||||||
|
|
||||||
Enables local Python and local Python package installation.
|
|
||||||
|
|
||||||
Ruby on Rails
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Defines Ruby on Rails aliases.
|
|
||||||
|
|
||||||
Rsync
|
|
||||||
-----
|
|
||||||
|
|
||||||
Defines rsync aliases.
|
|
||||||
|
|
||||||
Ruby
|
|
||||||
----
|
|
||||||
|
|
||||||
Configures Ruby local gem installation, loads version managers, and defines
|
|
||||||
aliases.
|
|
||||||
|
|
||||||
GNU Screen
|
|
||||||
----------
|
|
||||||
|
|
||||||
Defines GNU Screen aliases and provides for auto launching it at start-up.
|
|
||||||
|
|
||||||
Spectrum
|
|
||||||
--------
|
|
||||||
|
|
||||||
Provides for easier use of 256 colors and effects.
|
|
||||||
|
|
||||||
SSH
|
|
||||||
---
|
|
||||||
|
|
||||||
Provides for an easier use of SSH by setting up ssh-agent.
|
|
||||||
|
|
||||||
Syntax Highlighting
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Integrates zsh-syntax-highlighting into Prezto.
|
|
||||||
|
|
||||||
Terminal
|
|
||||||
--------
|
|
||||||
|
|
||||||
Sets terminal window and tab titles.
|
|
||||||
|
|
||||||
Tmux
|
|
||||||
----
|
|
||||||
|
|
||||||
Defines tmux aliases and provides for auto launching it at start-up.
|
|
||||||
|
|
||||||
Utility
|
|
||||||
-------
|
|
||||||
|
|
||||||
Defines general aliases and functions.
|
|
||||||
|
|
||||||
Wake-on-LAN
|
|
||||||
-----------
|
|
||||||
|
|
||||||
This module provides a wrapper around the wakeonlan tool.
|
|
||||||
|
|
||||||
Yum
|
|
||||||
---
|
|
||||||
|
|
||||||
Defines yum aliases.
|
|
|
@ -1,36 +0,0 @@
|
||||||
#Readability aliases
|
|
||||||
alias lss='ls -alh --color=auto'
|
|
||||||
alias mount='mount |column -t'
|
|
||||||
alias df='df -H'
|
|
||||||
|
|
||||||
#Shell Function aliases
|
|
||||||
alias dirs="dirs -v"
|
|
||||||
alias h='history'
|
|
||||||
alias j='jobs -l'
|
|
||||||
|
|
||||||
#shortcuts aliases
|
|
||||||
alias please="sudo !!"
|
|
||||||
alias ping='ping -c 5'
|
|
||||||
alias ax="chmod a+x"
|
|
||||||
alias wmip="curl icanhazip.com"
|
|
||||||
|
|
||||||
#git aliases
|
|
||||||
alias gitS='git status'
|
|
||||||
alias gitL='git log'
|
|
||||||
alias gitD='git diff'
|
|
||||||
alias gitC='git commit -a'
|
|
||||||
|
|
||||||
#Apt aliases
|
|
||||||
alias aptup="sudo apt update && sudo apt upgrade"
|
|
||||||
alias aptrm="sudo apt autoremove && sudo apt autoclean"
|
|
||||||
|
|
||||||
#Combo aliases
|
|
||||||
mcd() { mkdir -p "$1"; cd "$1";} #make a directory and cd into it
|
|
||||||
cls() { cd "$1"; ls;} #cd into directory and list contents
|
|
||||||
md5check() { md5sum "$1" | grep "$2";} #md5sum file, compare to md5sum as second parameter
|
|
||||||
|
|
||||||
#ssh aliases
|
|
||||||
alias sagent="eval `ssh-agent`"
|
|
||||||
|
|
||||||
#Command Replacement aliases
|
|
||||||
alias less='less -imJMW'
|
|
|
@ -1,52 +0,0 @@
|
||||||
Archive
|
|
||||||
=======
|
|
||||||
|
|
||||||
Provides functions to create, list, and extract archives.
|
|
||||||
|
|
||||||
Functions
|
|
||||||
---------
|
|
||||||
|
|
||||||
- `archive` creates an archive based on the provided archive name.
|
|
||||||
- `lsarchive` lists the contents of one or more archives.
|
|
||||||
- `unarchive` extracts the contents of one or more archives.
|
|
||||||
|
|
||||||
Supported Formats
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
The following archive formats are supported when the required utilities are
|
|
||||||
installed:
|
|
||||||
|
|
||||||
- *.tar.gz*, *.tgz* require `tar` (optionally `pigz`).
|
|
||||||
- *.tar.bz2*, *.tbz* require `tar` (optionally `pbzip2`).
|
|
||||||
- *.tar.xz*, *.txz* require `tar` with *xz* support.
|
|
||||||
- *.tar.zma*, *.tlz* require `tar` with *lzma* support.
|
|
||||||
- *.tar* requires `tar`.
|
|
||||||
- *.gz* requires `gunzip`.
|
|
||||||
- *.bz2* requires `bunzip2`.
|
|
||||||
- *.xz* requires `unxz`.
|
|
||||||
- *.lzma* requires `unlzma`.
|
|
||||||
- *.Z* requires `uncompress`.
|
|
||||||
- *.zip*, *.jar* requires `unzip`.
|
|
||||||
- *.rar* requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`.
|
|
||||||
- *.7z* requires `7za`.
|
|
||||||
- *.deb* requires `ar`, `tar`.
|
|
||||||
|
|
||||||
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
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][1].*
|
|
||||||
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
- [Matt Hamilton](https://github.com/Eriner)
|
|
||||||
|
|
||||||
[1]: https://theunarchiver.com/command-line
|
|
|
@ -1,13 +0,0 @@
|
||||||
#compdef lsarchive
|
|
||||||
#autoload
|
|
||||||
|
|
||||||
#
|
|
||||||
# Completes lsarchive.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
_arguments \
|
|
||||||
'(-v --verbose)'{-v,--remove}'[verbose archive listing]' \
|
|
||||||
"*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z)(-.)'" && return 0
|
|
|
@ -1,13 +0,0 @@
|
||||||
#compdef unarchive
|
|
||||||
#autoload
|
|
||||||
|
|
||||||
#
|
|
||||||
# Completes unarchive.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
_arguments \
|
|
||||||
'(-r --remove)'{-r,--remove}'[remove archive]' \
|
|
||||||
"*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z|deb)(-.)'" && return 0
|
|
|
@ -1,65 +0,0 @@
|
||||||
#!/usr/bin/env zsh
|
|
||||||
#
|
|
||||||
# Creates archive file
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Matt Hamilton <m@tthamilton.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function archive {
|
|
||||||
|
|
||||||
local archive_name path_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}"
|
|
||||||
# let paths be handled by actual archive helper
|
|
||||||
path_to_archive="${@:2}"
|
|
||||||
|
|
||||||
# here, we check for dropin/multi-threaded replacements
|
|
||||||
# this should eventually be moved to modules/archive/init.zsh
|
|
||||||
# as a global alias
|
|
||||||
if (( $+commands[pigz] )); then
|
|
||||||
_gzip_bin='pigz'
|
|
||||||
else
|
|
||||||
_gzip_bin='gzip'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if (( $+commands[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}" "${=path_to_archive}" ;;
|
|
||||||
(*.tar.bz2|*.tbz|*.tbz2) tar -cvf "${archive_name}" --use-compress-program="${_bzip2_bin}" "${=path_to_archive}" ;;
|
|
||||||
(*.tar.xz|*.txz) tar -cvJf "${archive_name}" "${=path_to_archive}" ;;
|
|
||||||
(*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${=path_to_archive}" ;;
|
|
||||||
(*.tar) tar -cvf "${archive_name}" "${=path_to_archive}" ;;
|
|
||||||
(*.zip|*.jar) zip -r "${archive_name}" "${=path_to_archive}" ;;
|
|
||||||
(*.rar) rar a "${archive_name}" "${=path_to_archive}" ;;
|
|
||||||
(*.7z) 7za a "${archive_name}" "${=path_to_archive}" ;;
|
|
||||||
(*.gz) print "\n.gz is only useful for single files, and does not capture permissions. Use .tar.gz" ;;
|
|
||||||
(*.bz2) print "\n.bzip2 is only useful for single files, and does not capture permissions. Use .tar.bz2" ;;
|
|
||||||
(*.xz) print "\n.xz is only useful for single files, and does not capture permissions. Use .tar.xz" ;;
|
|
||||||
(*.lzma) print "\n.lzma is only useful for single files, and does not capture permissions. Use .tar.lzma" ;;
|
|
||||||
(*) print "\nunknown archive type for archive: ${archive_name}" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,61 +0,0 @@
|
||||||
#
|
|
||||||
# Lists the contents of archives.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function lsarchive {
|
|
||||||
|
|
||||||
local verbose
|
|
||||||
|
|
||||||
if (( $# == 0 )); then
|
|
||||||
cat >&2 <<EOF
|
|
||||||
usage: $0 [-option] [file ...]
|
|
||||||
|
|
||||||
options:
|
|
||||||
-v, --verbose verbose archive listing
|
|
||||||
|
|
||||||
Report bugs to <sorin.ionescu@gmail.com>.
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$1" == "-v" || "$1" == "--verbose" ]]; then
|
|
||||||
verbose=0
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
while (( $# > 0 )); do
|
|
||||||
if [[ ! -s "$1" ]]; then
|
|
||||||
print "$0: file not valid: $1" >&2
|
|
||||||
shift
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$1:l" in
|
|
||||||
(*.tar.gz|*.tgz) tar t${verbose:+v}vzf "$1" ;;
|
|
||||||
(*.tar.bz2|*.tbz|*.tbz2) tar t${verbose:+v}jf "$1" ;;
|
|
||||||
(*.tar.xz|*.txz) tar --xz --help &> /dev/null \
|
|
||||||
&& tar --xz -t${verbose:+v}f "$1" \
|
|
||||||
|| xzcat "$1" | tar t${verbose:+v}f - ;;
|
|
||||||
(*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \
|
|
||||||
&& tar --lzma -t${verbose:+v}f "$1" \
|
|
||||||
|| lzcat "$1" | tar x${verbose:+v}f - ;;
|
|
||||||
(*.tar) tar t${verbose:+v}f "$1" ;;
|
|
||||||
(*.zip|*.jar) unzip -l${verbose:+v} "$1" ;;
|
|
||||||
(*.rar) ( (( $+commands[unrar] )) \
|
|
||||||
&& unrar ${${verbose:+v}:-l} "$1" ) \
|
|
||||||
|| ( (( $+commands[rar] )) \
|
|
||||||
&& rar ${${verbose:+v}:-l} "$1" ) \
|
|
||||||
|| lsar ${verbose:+-l} "$1" ;;
|
|
||||||
(*.7z) 7za l "$1" ;;
|
|
||||||
(*)
|
|
||||||
print "$0: cannot list: $1" >&2
|
|
||||||
success=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,86 +0,0 @@
|
||||||
#
|
|
||||||
# Extracts the contents of archives.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function unarchive {
|
|
||||||
|
|
||||||
local remove_archive
|
|
||||||
local success
|
|
||||||
local file_name
|
|
||||||
local file_path
|
|
||||||
local extract_dir
|
|
||||||
|
|
||||||
if (( $# == 0 )); then
|
|
||||||
cat >&2 <<EOF
|
|
||||||
usage: $0 [-option] [file ...]
|
|
||||||
|
|
||||||
options:
|
|
||||||
-r, --remove remove archive
|
|
||||||
|
|
||||||
Report bugs to <sorin.ionescu@gmail.com>.
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
|
|
||||||
remove_archive=1
|
|
||||||
if [[ "$1" == "-r" || "$1" == "--remove" ]]; then
|
|
||||||
remove_archive=0
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
while (( $# > 0 )); do
|
|
||||||
if [[ ! -s "$1" ]]; then
|
|
||||||
print "$0: file not valid: $1" >&2
|
|
||||||
shift
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
success=0
|
|
||||||
file_name="${1:t}"
|
|
||||||
file_path="${1:A}"
|
|
||||||
extract_dir="${file_name:r}"
|
|
||||||
case "$1:l" in
|
|
||||||
(*.tar.gz|*.tgz) tar xvzf "$1" ;;
|
|
||||||
(*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;;
|
|
||||||
(*.tar.xz|*.txz) tar --xz --help &> /dev/null \
|
|
||||||
&& tar --xz -xvf "$1" \
|
|
||||||
|| xzcat "$1" | tar xvf - ;;
|
|
||||||
(*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \
|
|
||||||
&& tar --lzma -xvf "$1" \
|
|
||||||
|| lzcat "$1" | tar xvf - ;;
|
|
||||||
(*.tar) tar xvf "$1" ;;
|
|
||||||
(*.gz) gunzip "$1" ;;
|
|
||||||
(*.bz2) bunzip2 "$1" ;;
|
|
||||||
(*.xz) unxz "$1" ;;
|
|
||||||
(*.lzma) unlzma "$1" ;;
|
|
||||||
(*.Z) uncompress "$1" ;;
|
|
||||||
(*.zip|*.jar) unzip "$1" -d $extract_dir ;;
|
|
||||||
(*.rar) ( (( $+commands[unrar] )) \
|
|
||||||
&& unrar x -ad "$1" ) \
|
|
||||||
|| ( (( $+commands[rar] )) \
|
|
||||||
&& rar x -ad "$1" ) \
|
|
||||||
|| unar -d "$1" ;;
|
|
||||||
(*.7z) 7za x "$1" ;;
|
|
||||||
(*.deb)
|
|
||||||
mkdir -p "$extract_dir/control"
|
|
||||||
mkdir -p "$extract_dir/data"
|
|
||||||
cd "$extract_dir"; ar vx "${file_path}" > /dev/null
|
|
||||||
cd control; tar xvf ../control.tar.*
|
|
||||||
cd ../data; tar xvf ../data.tar.*
|
|
||||||
cd ..; rm control.tar.* data.tar.* debian-binary
|
|
||||||
cd ..
|
|
||||||
;;
|
|
||||||
(*)
|
|
||||||
print "$0: cannot extract: $1" >&2
|
|
||||||
success=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
(( success = $success > 0 ? $success : $? ))
|
|
||||||
(( $success == 0 )) && (( $remove_archive == 0 )) && rm "$1"
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,61 +0,0 @@
|
||||||
Autosuggestions
|
|
||||||
===============
|
|
||||||
|
|
||||||
Integrates [zsh-autosuggestions][1] into Prezto, which implements the
|
|
||||||
[Fish shell][2]'s autosuggestions feature, where the user can type in any part
|
|
||||||
of a previously entered command and Zsh suggests commands as you type based on
|
|
||||||
history and completions.
|
|
||||||
|
|
||||||
If this module is used in conjunction with the *syntax-highlighting* 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 ''
|
|
||||||
```
|
|
||||||
|
|
||||||
Troubleshooting
|
|
||||||
---------------
|
|
||||||
|
|
||||||
### Autosuggestions from previous sessions don't show up
|
|
||||||
|
|
||||||
For autosuggestions from previous shell sessions to work, please make sure you
|
|
||||||
also have the `history` module enabled.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][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
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 15931f04ffac91a2f9a1a044b6b3ee4050751064
|
|
|
@ -1,35 +0,0 @@
|
||||||
#
|
|
||||||
# Integrates zsh-autosuggestions into Prezto.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Load dependencies.
|
|
||||||
pmodload 'editor'
|
|
||||||
|
|
||||||
# Source module files.
|
|
||||||
source "${0:h}/external/zsh-autosuggestions.zsh" || return 1
|
|
||||||
|
|
||||||
#
|
|
||||||
# Highlighting
|
|
||||||
#
|
|
||||||
|
|
||||||
# Set highlight color, default 'fg=8'.
|
|
||||||
zstyle -s ':prezto:module:autosuggestions:color' found \
|
|
||||||
'ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE' || ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8'
|
|
||||||
|
|
||||||
# Disable highlighting.
|
|
||||||
if ! zstyle -t ':prezto:module:autosuggestions' color; then
|
|
||||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=''
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Key Bindings
|
|
||||||
#
|
|
||||||
|
|
||||||
if [[ -n "$key_info" ]]; then
|
|
||||||
# vi
|
|
||||||
bindkey -M viins "$key_info[Control]F" vi-forward-word
|
|
||||||
bindkey -M viins "$key_info[Control]E" vi-add-eol
|
|
||||||
fi
|
|
|
@ -1,24 +0,0 @@
|
||||||
Command-Not-Found
|
|
||||||
=================
|
|
||||||
|
|
||||||
When you try to use a command that is not available locally, searches
|
|
||||||
the package manager for a package offering that command and suggests
|
|
||||||
the proper install command.
|
|
||||||
|
|
||||||
Debian and Arch Linux based distributions use the [`command-not-found`][1] tool.
|
|
||||||
|
|
||||||
macOS uses Homebrew's [`command-not-found` clone][2]. Note that you also need to
|
|
||||||
[follow the instructions][3] to tap the `command-not-found` homebrew repository.
|
|
||||||
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][4].*
|
|
||||||
|
|
||||||
- [Joseph Booker](https://github.com/sargas)
|
|
||||||
|
|
||||||
[1]: https://code.launchpad.net/command-not-found
|
|
||||||
[2]: https://github.com/Homebrew/homebrew-command-not-found
|
|
||||||
[3]: https://github.com/Homebrew/homebrew-command-not-found#install
|
|
||||||
[4]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1,42 +0,0 @@
|
||||||
#
|
|
||||||
# Displays installation information for not found commands.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Joseph Jon Booker <joe@neoturbine.net>
|
|
||||||
# Indrajit Raychaudhuri <irc+code@indrajit.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Load command-not-found on Debian-based distributions.
|
|
||||||
if [[ -s '/etc/zsh_command_not_found' ]]; then
|
|
||||||
source '/etc/zsh_command_not_found'
|
|
||||||
# Load command-not-found on Arch Linux-based distributions.
|
|
||||||
elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then
|
|
||||||
source '/usr/share/doc/pkgfile/command-not-found.zsh'
|
|
||||||
# Load command-not-found on macOS when Homebrew tap is configured.
|
|
||||||
# To avoid performance penalty, we do not use Homebrew's ruby based command
|
|
||||||
# lookup mechanism (viz., `brew command command-not-found-init`) and instead
|
|
||||||
# `find` it ourselves from `TAP_DIRECTORY` defined internally in Homebrew.
|
|
||||||
elif (( $+commands[brew] )); then
|
|
||||||
cnf_command=(
|
|
||||||
"$(brew --repository 2> /dev/null)"/Library/Taps/*/*/cmd/brew-command-not-found-init(|.rb)(.N)
|
|
||||||
)
|
|
||||||
if (( $#cnf_command )); then
|
|
||||||
cache_file="${TMPDIR:-/tmp}/prezto-brew-command-not-found-cache.$UID.zsh"
|
|
||||||
|
|
||||||
if [[ "${${(@o)cnf_command}[1]}" -nt "$cache_file" \
|
|
||||||
|| "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
|
|
||||||
|| ! -s "$cache_file" ]]; then
|
|
||||||
# brew command-not-found-init is slow; cache its output.
|
|
||||||
brew command-not-found-init >! "$cache_file" 2> /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
source "$cache_file"
|
|
||||||
|
|
||||||
unset cache_file
|
|
||||||
fi
|
|
||||||
|
|
||||||
unset cnf_command
|
|
||||||
# Return if requirements are not found.
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
|
@ -1,53 +0,0 @@
|
||||||
Completion
|
|
||||||
==========
|
|
||||||
|
|
||||||
Loads and configures tab completion and provides additional completions from
|
|
||||||
the [zsh-completions][1] project.
|
|
||||||
|
|
||||||
This module must be loaded **after** the *utility* module.
|
|
||||||
|
|
||||||
Options
|
|
||||||
-------
|
|
||||||
|
|
||||||
- `COMPLETE_IN_WORD` complete from both ends of a word.
|
|
||||||
- `ALWAYS_TO_END` move cursor to the end of a completed word.
|
|
||||||
- `PATH_DIRS` perform path search even on command names with slashes.
|
|
||||||
- `AUTO_MENU` show completion menu on a successive tab press.
|
|
||||||
- `AUTO_LIST` automatically list choices on ambiguous completion.
|
|
||||||
- `AUTO_PARAM_SLASH` if completed parameter is a directory, add a trailing slash.
|
|
||||||
- `EXTENDED_GLOB` needed for file modification glob modifiers with compinit.
|
|
||||||
- `MENU_COMPLETE` do not autoselect the first completion entry.
|
|
||||||
- `FLOW_CONTROL` disable start/stop characters in shell editor.
|
|
||||||
|
|
||||||
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
|
|
||||||
------------
|
|
||||||
|
|
||||||
Completions should be submitted to the [zsh-completions][1] project according
|
|
||||||
to its rules and regulations. This module will be synchronized against it.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][2].*
|
|
||||||
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: https://github.com/zsh-users/zsh-completions
|
|
||||||
[2]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 2a30b05a5cf724a2d1c4c140c302dbf93f6aa6f6
|
|
|
@ -1,161 +0,0 @@
|
||||||
#
|
|
||||||
# Sets completion options.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Robby Russell <robby@planetargon.com>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if [[ "$TERM" == 'dumb' ]]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add zsh-completions to $fpath.
|
|
||||||
fpath=("${0:h}/external/src" $fpath)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Options
|
|
||||||
#
|
|
||||||
|
|
||||||
setopt COMPLETE_IN_WORD # Complete from both ends of a word.
|
|
||||||
setopt ALWAYS_TO_END # Move cursor to the end of a completed word.
|
|
||||||
setopt PATH_DIRS # Perform path search even on command names with slashes.
|
|
||||||
setopt AUTO_MENU # Show completion menu on a successive tab press.
|
|
||||||
setopt AUTO_LIST # Automatically list choices on ambiguous completion.
|
|
||||||
setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
|
|
||||||
setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit
|
|
||||||
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
|
|
||||||
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
|
|
||||||
|
|
||||||
# Load and initialize the completion system ignoring insecure directories with a
|
|
||||||
# cache time of 20 hours, so it should almost always regenerate the first time a
|
|
||||||
# shell is opened each day.
|
|
||||||
autoload -Uz compinit
|
|
||||||
_comp_files=(${ZDOTDIR:-$HOME}/.zcompdump(Nm-20))
|
|
||||||
if (( $#_comp_files )); then
|
|
||||||
compinit -i -C
|
|
||||||
else
|
|
||||||
compinit -i
|
|
||||||
fi
|
|
||||||
unset _comp_files
|
|
||||||
|
|
||||||
#
|
|
||||||
# Styles
|
|
||||||
#
|
|
||||||
|
|
||||||
# Use caching to make completion for commands such as dpkg and apt usable.
|
|
||||||
zstyle ':completion::complete:*' use-cache on
|
|
||||||
zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache"
|
|
||||||
|
|
||||||
# Case-insensitive (all), partial-word, and then substring completion.
|
|
||||||
if zstyle -t ':prezto:module:completion:*' case-sensitive; then
|
|
||||||
zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
|
||||||
setopt CASE_GLOB
|
|
||||||
else
|
|
||||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
|
||||||
unsetopt CASE_GLOB
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Group matches and describe.
|
|
||||||
zstyle ':completion:*:*:*:*:*' menu select
|
|
||||||
zstyle ':completion:*:matches' group 'yes'
|
|
||||||
zstyle ':completion:*:options' description 'yes'
|
|
||||||
zstyle ':completion:*:options' auto-description '%d'
|
|
||||||
zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f'
|
|
||||||
zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f'
|
|
||||||
zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f'
|
|
||||||
zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'
|
|
||||||
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
|
|
||||||
zstyle ':completion:*' format ' %F{yellow}-- %d --%f'
|
|
||||||
zstyle ':completion:*' group-name ''
|
|
||||||
zstyle ':completion:*' verbose yes
|
|
||||||
|
|
||||||
# Fuzzy match mistyped completions.
|
|
||||||
zstyle ':completion:*' completer _complete _match _approximate
|
|
||||||
zstyle ':completion:*:match:*' original only
|
|
||||||
zstyle ':completion:*:approximate:*' max-errors 1 numeric
|
|
||||||
|
|
||||||
# Increase the number of errors based on the length of the typed word. But make
|
|
||||||
# sure to cap (at 7) the max-errors to avoid hanging.
|
|
||||||
zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3>7?7:($#PREFIX+$#SUFFIX)/3))numeric)'
|
|
||||||
|
|
||||||
# Don't complete unavailable commands.
|
|
||||||
zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
|
|
||||||
|
|
||||||
# Array completion element sorting.
|
|
||||||
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
|
|
||||||
|
|
||||||
# Directories
|
|
||||||
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
|
||||||
zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
|
|
||||||
zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
|
|
||||||
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
|
|
||||||
zstyle ':completion:*' squeeze-slashes true
|
|
||||||
|
|
||||||
# History
|
|
||||||
zstyle ':completion:*:history-words' stop yes
|
|
||||||
zstyle ':completion:*:history-words' remove-all-dups yes
|
|
||||||
zstyle ':completion:*:history-words' list false
|
|
||||||
zstyle ':completion:*:history-words' menu yes
|
|
||||||
|
|
||||||
# Environment Variables
|
|
||||||
zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
|
|
||||||
|
|
||||||
# Populate hostname completion. But allow ignoring custom entries from static
|
|
||||||
# */etc/hosts* which might be uninteresting.
|
|
||||||
zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores'
|
|
||||||
|
|
||||||
zstyle -e ':completion:*:hosts' hosts 'reply=(
|
|
||||||
${=${=${=${${(f)"$(cat {/etc/ssh/ssh_,~/.ssh/}known_hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
|
|
||||||
${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2> /dev/null))"}%%(\#${_etc_host_ignores:+|${(j:|:)~_etc_host_ignores}})*}
|
|
||||||
${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2> /dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
|
|
||||||
)'
|
|
||||||
|
|
||||||
# Don't complete uninteresting users...
|
|
||||||
zstyle ':completion:*:*:*:users' ignored-patterns \
|
|
||||||
adm amanda apache avahi beaglidx bin cacti canna clamav daemon \
|
|
||||||
dbus distcache dovecot fax ftp games gdm gkrellmd gopher \
|
|
||||||
hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \
|
|
||||||
mailman mailnull mldonkey mysql nagios \
|
|
||||||
named netdump news nfsnobody nobody nscd ntp nut nx openvpn \
|
|
||||||
operator pcap postfix postgres privoxy pulse pvm quagga radvd \
|
|
||||||
rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs '_*'
|
|
||||||
|
|
||||||
# ... unless we really want to.
|
|
||||||
zstyle '*' single-ignored show
|
|
||||||
|
|
||||||
# Ignore multiple entries.
|
|
||||||
zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
|
|
||||||
zstyle ':completion:*:rm:*' file-patterns '*:all-files'
|
|
||||||
|
|
||||||
# Kill
|
|
||||||
zstyle ':completion:*:*:*:*:processes' command 'ps -u $LOGNAME -o pid,user,command -w'
|
|
||||||
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'
|
|
||||||
zstyle ':completion:*:*:kill:*' menu yes select
|
|
||||||
zstyle ':completion:*:*:kill:*' force-list always
|
|
||||||
zstyle ':completion:*:*:kill:*' insert-ids single
|
|
||||||
|
|
||||||
# Man
|
|
||||||
zstyle ':completion:*:manuals' separate-sections true
|
|
||||||
zstyle ':completion:*:manuals.(^1*)' insert-sections true
|
|
||||||
|
|
||||||
# Media Players
|
|
||||||
zstyle ':completion:*:*:mpg123:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories'
|
|
||||||
zstyle ':completion:*:*:mpg321:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories'
|
|
||||||
zstyle ':completion:*:*:ogg123:*' file-patterns '*.(ogg|OGG|flac):ogg\ files *(-/):directories'
|
|
||||||
zstyle ':completion:*:*:mocp:*' file-patterns '*.(wav|WAV|mp3|MP3|ogg|OGG|flac):ogg\ files *(-/):directories'
|
|
||||||
|
|
||||||
# Mutt
|
|
||||||
if [[ -s "$HOME/.mutt/aliases" ]]; then
|
|
||||||
zstyle ':completion:*:*:mutt:*' menu yes select
|
|
||||||
zstyle ':completion:*:mutt:*' users ${${${(f)"$(<"$HOME/.mutt/aliases")"}#alias[[:space:]]}%%[[:space:]]*}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# SSH/SCP/RSYNC
|
|
||||||
zstyle ':completion:*:(ssh|scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
|
|
||||||
zstyle ':completion:*:(scp|rsync):*' 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|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
|
|
||||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
|
|
||||||
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
|
|
|
@ -1,35 +0,0 @@
|
||||||
Directory
|
|
||||||
=========
|
|
||||||
|
|
||||||
Sets directory options and defines directory aliases.
|
|
||||||
|
|
||||||
Options
|
|
||||||
-------
|
|
||||||
|
|
||||||
- `AUTO_CD` auto changes to a directory without typing `cd`.
|
|
||||||
- `AUTO_PUSHD` pushes the old directory onto the stack on `cd`.
|
|
||||||
- `PUSHD_IGNORE_DUPS` does not store duplicates in the stack.
|
|
||||||
- `PUSHD_SILENT` does not print the directory stack after `pushd` or `popd`.
|
|
||||||
- `PUSHD_TO_HOME` pushes to the home directory when no argument is given.
|
|
||||||
- `CDABLE_VARS` changes directory to a path stored in a variable.
|
|
||||||
- `AUTO_NAME_DIRS` auto adds variable-stored paths to `~` list.
|
|
||||||
- `MULTIOS` writes to multiple descriptors.
|
|
||||||
- `EXTENDED_GLOB` uses extended globbing syntax.
|
|
||||||
- `CLOBBER` does not overwrite existing files with `>` and `>>`. Use `>!` and
|
|
||||||
`>>!` to bypass.
|
|
||||||
|
|
||||||
Aliases
|
|
||||||
-------
|
|
||||||
|
|
||||||
- `d` prints the contents of the directory stack.
|
|
||||||
- `1 ... 9` changes the directory to the **n** previous one.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][1].*
|
|
||||||
|
|
||||||
- [James Cox](https://github.com/imajes)
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1,29 +0,0 @@
|
||||||
#
|
|
||||||
# Sets directory options and defines directory aliases.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# James Cox <james@imaj.es>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Options
|
|
||||||
#
|
|
||||||
|
|
||||||
setopt AUTO_CD # Auto changes to a directory without typing cd.
|
|
||||||
setopt AUTO_PUSHD # Push the old directory onto the stack on cd.
|
|
||||||
setopt PUSHD_IGNORE_DUPS # Do not store duplicates in the stack.
|
|
||||||
setopt PUSHD_SILENT # Do not print the directory stack after pushd or popd.
|
|
||||||
setopt PUSHD_TO_HOME # Push to home directory when no argument is given.
|
|
||||||
setopt CDABLE_VARS # Change directory to a path stored in a variable.
|
|
||||||
setopt MULTIOS # Write to multiple descriptors.
|
|
||||||
setopt EXTENDED_GLOB # Use extended globbing syntax.
|
|
||||||
unsetopt CLOBBER # Do not overwrite existing files with > and >>.
|
|
||||||
# Use >! and >>! to bypass.
|
|
||||||
|
|
||||||
#
|
|
||||||
# Aliases
|
|
||||||
#
|
|
||||||
|
|
||||||
alias d='dirs -v'
|
|
||||||
for index ({1..9}) alias "$index"="cd +${index}"; unset index
|
|
|
@ -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
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
#
|
|
||||||
# Defines dnf aliases.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# FireWave <firewave@free.fr>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if (( ! $+commands[dnf] )); then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Aliases
|
|
||||||
#
|
|
||||||
|
|
||||||
alias dnfc='sudo dnf clean all' # Cleans the cache.
|
|
||||||
alias dnfh='dnf history' # Displays history.
|
|
||||||
alias dnfi='sudo dnf install' # Installs package(s).
|
|
||||||
alias dnfl='dnf list' # Lists packages.
|
|
||||||
alias dnfL='dnf list installed' # Lists installed packages.
|
|
||||||
alias dnfq='dnf info' # Displays package information.
|
|
||||||
alias dnfr='sudo dnf remove' # Removes package(s).
|
|
||||||
alias dnfs='dnf search' # Searches for a package.
|
|
||||||
alias dnfu='sudo dnf update' # Updates packages.
|
|
||||||
alias dnfU='sudo dnf upgrade' # Upgrades packages.
|
|
||||||
|
|
|
@ -1,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
|
|
|
@ -1,177 +0,0 @@
|
||||||
#
|
|
||||||
# Defines Docker aliases.
|
|
||||||
#
|
|
||||||
# Author:
|
|
||||||
# François Vantomme <akarzim@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Aliases
|
|
||||||
#
|
|
||||||
|
|
||||||
# Docker
|
|
||||||
alias dk='docker'
|
|
||||||
alias dka='docker attach'
|
|
||||||
alias dkb='docker build'
|
|
||||||
alias dkd='docker diff'
|
|
||||||
alias dkdf='docker system df'
|
|
||||||
alias dke='docker exec'
|
|
||||||
alias dkE='docker exec -it'
|
|
||||||
alias dkh='docker history'
|
|
||||||
alias dki='docker images'
|
|
||||||
alias dkin='docker inspect'
|
|
||||||
alias dkim='docker import'
|
|
||||||
alias dkk='docker kill'
|
|
||||||
alias dkl='docker logs'
|
|
||||||
alias dkli='docker login'
|
|
||||||
alias dklo='docker logout'
|
|
||||||
alias dkls='docker ps'
|
|
||||||
alias dkp='docker pause'
|
|
||||||
alias dkP='docker unpause'
|
|
||||||
alias dkpl='docker pull'
|
|
||||||
alias dkph='docker push'
|
|
||||||
alias dkps='docker ps'
|
|
||||||
alias dkpsa='docker ps -a'
|
|
||||||
alias dkr='docker run'
|
|
||||||
alias dkR='docker run -it --rm'
|
|
||||||
alias dkRe='docker run -it --rm --entrypoint /bin/bash'
|
|
||||||
alias dkRM='docker system prune'
|
|
||||||
alias dkrm='docker rm'
|
|
||||||
alias dkrmi='docker rmi'
|
|
||||||
alias dkrn='docker rename'
|
|
||||||
alias dks='docker start'
|
|
||||||
alias dkS='docker restart'
|
|
||||||
alias dkss='docker stats'
|
|
||||||
alias dksv='docker save'
|
|
||||||
alias dkt='docker tag'
|
|
||||||
alias dktop='docker top'
|
|
||||||
alias dkup='docker update'
|
|
||||||
alias dkV='docker volume'
|
|
||||||
alias dkv='docker version'
|
|
||||||
alias dkw='docker wait'
|
|
||||||
alias dkx='docker stop'
|
|
||||||
|
|
||||||
## Container (C)
|
|
||||||
alias dkC='docker container'
|
|
||||||
alias dkCa='docker container attach'
|
|
||||||
alias dkCcp='docker container cp'
|
|
||||||
alias dkCd='docker container diff'
|
|
||||||
alias dkCe='docker container exec'
|
|
||||||
alias dkCin='docker container inspect'
|
|
||||||
alias dkCk='docker container kill'
|
|
||||||
alias dkCl='docker container logs'
|
|
||||||
alias dkCls='docker container ls'
|
|
||||||
alias dkCp='docker container pause'
|
|
||||||
alias dkCpr='docker container prune'
|
|
||||||
alias dkCrn='docker container rename'
|
|
||||||
alias dkCS='docker container restart'
|
|
||||||
alias dkCrm='docker container rm'
|
|
||||||
alias dkCr='docker container run'
|
|
||||||
alias dkCR='docker container run -it --rm'
|
|
||||||
alias dkCRe='docker container run -it --rm --entrypoint /bin/bash'
|
|
||||||
alias dkCs='docker container start'
|
|
||||||
alias dkCss='docker container stats'
|
|
||||||
alias dkCx='docker container stop'
|
|
||||||
alias dkCtop='docker container top'
|
|
||||||
alias dkCP='docker container unpause'
|
|
||||||
alias dkCup='docker container update'
|
|
||||||
alias dkCw='docker container wait'
|
|
||||||
|
|
||||||
## Image (I)
|
|
||||||
alias dkI='docker image'
|
|
||||||
alias dkIb='docker image build'
|
|
||||||
alias dkIh='docker image history'
|
|
||||||
alias dkIim='docker image import'
|
|
||||||
alias dkIin='docker image inspect'
|
|
||||||
alias dkIls='docker image ls'
|
|
||||||
alias dkIpr='docker image prune'
|
|
||||||
alias dkIpl='docker image pull'
|
|
||||||
alias dkIph='docker image push'
|
|
||||||
alias dkIrm='docker image rm'
|
|
||||||
alias dkIsv='docker image save'
|
|
||||||
alias dkIt='docker image tag'
|
|
||||||
|
|
||||||
## Volume (V)
|
|
||||||
alias dkV='docker volume'
|
|
||||||
alias dkVin='docker volume inspect'
|
|
||||||
alias dkVls='docker volume ls'
|
|
||||||
alias dkVpr='docker volume prune'
|
|
||||||
alias dkVrm='docker volume rm'
|
|
||||||
|
|
||||||
## Network (N)
|
|
||||||
alias dkN='docker network'
|
|
||||||
alias dkNs='docker network connect'
|
|
||||||
alias dkNx='docker network disconnect'
|
|
||||||
alias dkNin='docker network inspect'
|
|
||||||
alias dkNls='docker network ls'
|
|
||||||
alias dkNpr='docker network prune'
|
|
||||||
alias dkNrm='docker network rm'
|
|
||||||
|
|
||||||
## System (Y)
|
|
||||||
alias dkY='docker system'
|
|
||||||
alias dkYdf='docker system df'
|
|
||||||
alias dkYpr='docker system prune'
|
|
||||||
|
|
||||||
## Stack (K)
|
|
||||||
alias dkK='docker stack'
|
|
||||||
alias dkKls='docker stack ls'
|
|
||||||
alias dkKps='docker stack ps'
|
|
||||||
alias dkKrm='docker stack rm'
|
|
||||||
|
|
||||||
## Swarm (W)
|
|
||||||
alias dkW='docker swarm'
|
|
||||||
|
|
||||||
## CleanUp (rm)
|
|
||||||
# Clean up exited containers (docker < 1.13)
|
|
||||||
alias dkrmC='docker rm $(docker ps -qaf status=exited)'
|
|
||||||
# Clean up dangling images (docker < 1.13)
|
|
||||||
alias dkrmI='docker rmi $(docker images -qf dangling=true)'
|
|
||||||
# Clean up dangling volumes (docker < 1.13)
|
|
||||||
alias dkrmV='docker volume rm $(docker volume ls -qf dangling=true)'
|
|
||||||
|
|
||||||
|
|
||||||
# Docker Machine (m)
|
|
||||||
alias dkm='docker-machine'
|
|
||||||
alias dkma='docker-machine active'
|
|
||||||
alias dkmcp='docker-machine scp'
|
|
||||||
alias dkmin='docker-machine inspect'
|
|
||||||
alias dkmip='docker-machine ip'
|
|
||||||
alias dkmk='docker-machine kill'
|
|
||||||
alias dkmls='docker-machine ls'
|
|
||||||
alias dkmpr='docker-machine provision'
|
|
||||||
alias dkmps='docker-machine ps'
|
|
||||||
alias dkmrg='docker-machine regenerate-certs'
|
|
||||||
alias dkmrm='docker-machine rm'
|
|
||||||
alias dkms='docker-machine start'
|
|
||||||
alias dkmsh='docker-machine ssh'
|
|
||||||
alias dkmst='docker-machine status'
|
|
||||||
alias dkmS='docker-machine restart'
|
|
||||||
alias dkmu='docker-machine url'
|
|
||||||
alias dkmup='docker-machine upgrade'
|
|
||||||
alias dkmv='docker-machine version'
|
|
||||||
alias dkmx='docker-machine stop'
|
|
||||||
|
|
||||||
# Docker Compose (c)
|
|
||||||
alias dkc='docker-compose'
|
|
||||||
alias dkcb='docker-compose build'
|
|
||||||
alias dkcB='docker-compose build --no-cache'
|
|
||||||
alias dkcd='docker-compose down'
|
|
||||||
alias dkce='docker-compose exec'
|
|
||||||
alias dkck='docker-compose kill'
|
|
||||||
alias dkcl='docker-compose logs'
|
|
||||||
alias dkcls='docker-compose ps'
|
|
||||||
alias dkcp='docker-compose pause'
|
|
||||||
alias dkcP='docker-compose unpause'
|
|
||||||
alias dkcpl='docker-compose pull'
|
|
||||||
alias dkcph='docker-compose push'
|
|
||||||
alias dkcps='docker-compose ps'
|
|
||||||
alias dkcr='docker-compose run'
|
|
||||||
alias dkcR='docker-compose run --rm'
|
|
||||||
alias dkcrm='docker-compose rm'
|
|
||||||
alias dkcs='docker-compose start'
|
|
||||||
alias dkcsc='docker-compose scale'
|
|
||||||
alias dkcS='docker-compose restart'
|
|
||||||
alias dkcu='docker-compose up'
|
|
||||||
alias dkcU='docker-compose up -d'
|
|
||||||
alias dkcv='docker-compose version'
|
|
||||||
alias dkcx='docker-compose stop'
|
|
|
@ -1,57 +0,0 @@
|
||||||
#
|
|
||||||
# Defines Docker aliases.
|
|
||||||
#
|
|
||||||
# Author:
|
|
||||||
# François Vantomme <akarzim@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if (( ! $+commands[docker] )); then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Functions
|
|
||||||
#
|
|
||||||
|
|
||||||
# Set Docker Machine environment
|
|
||||||
function dkme {
|
|
||||||
if (( ! $+commands[docker-machine] )); then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
eval $(docker-machine env $1)
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set Docker Machine default machine
|
|
||||||
function dkmd {
|
|
||||||
if (( ! $+commands[docker-machine] )); then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
pushd ~/.docker/machine/machines
|
|
||||||
|
|
||||||
if [[ ! -d $1 ]]; then
|
|
||||||
echo "Docker machine '$1' does not exists. Abort."
|
|
||||||
popd
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -L default ]]; then
|
|
||||||
eval $(rm -f default)
|
|
||||||
elif [[ -d default ]]; then
|
|
||||||
echo "A default machine already exists. Abort."
|
|
||||||
popd
|
|
||||||
return 1
|
|
||||||
elif [[ -e default ]]; then
|
|
||||||
echo "A file named 'default' already exists. Abort."
|
|
||||||
popd
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
eval $(ln -s $1 default)
|
|
||||||
popd
|
|
||||||
}
|
|
||||||
|
|
||||||
# Source module files.
|
|
||||||
source "${0:h}/alias.zsh"
|
|
|
@ -1,41 +0,0 @@
|
||||||
Dpkg
|
|
||||||
====
|
|
||||||
|
|
||||||
Defines [dpkg][1] aliases and functions.
|
|
||||||
|
|
||||||
Aliases
|
|
||||||
-------
|
|
||||||
|
|
||||||
- `debc` cleans the cache.
|
|
||||||
- `debf` displays a file's package.
|
|
||||||
- `debi` installs packages from repositories.
|
|
||||||
- `debI` installs packages from files.
|
|
||||||
- `debq` displays package information.
|
|
||||||
- `debu` updates the package lists.
|
|
||||||
- `debU` upgrades outdated packages.
|
|
||||||
- `debx` removes packages.
|
|
||||||
- `debX` removes packages, their configuration, and unneeded dependencies.
|
|
||||||
- `debs` searches for packages.
|
|
||||||
- `deb-build` creates a basic deb package.
|
|
||||||
- `deb-kclean` removes all kernel images and headers, except for the ones in
|
|
||||||
use.
|
|
||||||
|
|
||||||
Functions
|
|
||||||
---------
|
|
||||||
|
|
||||||
- `deb-clone` generates a script that can be used to duplicate a dpkg-based
|
|
||||||
system.
|
|
||||||
- `deb-history` displays dpkg history.
|
|
||||||
- `deb-kbuild` makes a dpkg Linux kernel package.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][2].*
|
|
||||||
|
|
||||||
- [Daniel Bolton](https://github.com/dbb)
|
|
||||||
- [Benjamin Boudreau](https://github.com/dreur)
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: http://wiki.debian.org/Teams/Dpkg
|
|
||||||
[2]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1,29 +0,0 @@
|
||||||
#
|
|
||||||
# Generates a script that can be used to duplicate a dpkg-based system.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Daniel Bolton <danielbarrettbolton@gmail.com>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function deb-clone {
|
|
||||||
|
|
||||||
local clone_script="${0}.sh"
|
|
||||||
local package_list=$(
|
|
||||||
perl \
|
|
||||||
-m 'AptPkg::Cache' \
|
|
||||||
-e '
|
|
||||||
$c=AptPkg::Cache->new;
|
|
||||||
for (keys %$c) {
|
|
||||||
push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';
|
|
||||||
}
|
|
||||||
print "$_ " for sort @a;
|
|
||||||
'
|
|
||||||
)
|
|
||||||
|
|
||||||
rm "$clone_script"
|
|
||||||
print '#!/bin/sh\n' > "$clone_script"
|
|
||||||
print "aptitude install ${package_list}\n" >> "$clone_script"
|
|
||||||
chmod +x "$clone_script"
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,40 +0,0 @@
|
||||||
#
|
|
||||||
# Displays dpkg history.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Peter Leung <commandolinux@gmail.com>
|
|
||||||
# Benjamin Boudreau <boudreau.benjamin@gmail.com>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function deb-history {
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
(install)
|
|
||||||
zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*)
|
|
||||||
;;
|
|
||||||
(upgrade|remove)
|
|
||||||
zgrep --no-filename "$1" $(ls -rt /var/log/dpkg*)
|
|
||||||
;;
|
|
||||||
(rollback)
|
|
||||||
zgrep --no-filename upgrade $(ls -rt /var/log/dpkg*) \
|
|
||||||
| grep "$2" -A10000000 \
|
|
||||||
| grep "$3" -B10000000 \
|
|
||||||
| awk '{print $4"="$5}'
|
|
||||||
;;
|
|
||||||
(list)
|
|
||||||
zcat $(ls -rt /var/log/dpkg*)
|
|
||||||
;;
|
|
||||||
(*)
|
|
||||||
cat >&2 <<EOF
|
|
||||||
Commands:
|
|
||||||
install - List installed packages
|
|
||||||
upgrade - List upgraded packages
|
|
||||||
remove - List removed packages
|
|
||||||
rollback - List rollback information
|
|
||||||
list - Display contents of dpkg logs
|
|
||||||
EOF
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,18 +0,0 @@
|
||||||
#
|
|
||||||
# Makes a dpkg Linux kernel package.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Daniel Bolton <dbb@9y.com>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function deb-kbuild {
|
|
||||||
|
|
||||||
make-kpkg clean
|
|
||||||
MAKEFLAGS='' time fakeroot make-kpkg \
|
|
||||||
--append-to-version '-custom' \
|
|
||||||
--revision "$(date +"%Y%m%d")" \
|
|
||||||
kernel_image \
|
|
||||||
kernel_headers
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,57 +0,0 @@
|
||||||
#
|
|
||||||
# Defines dpkg aliases.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Daniel Bolton <dbb@9y.com>
|
|
||||||
# Benjamin Boudreau <boudreau.benjamin@gmail.com>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if (( ! $+commands[dpkg] && ! $+commands[apt-get] )); then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Aliases
|
|
||||||
#
|
|
||||||
|
|
||||||
# Cleans the cache.
|
|
||||||
alias debc='sudo apt-get clean && sudo apt-get autoclean'
|
|
||||||
|
|
||||||
# Displays a file's package.
|
|
||||||
alias debf='apt-file search --regexp'
|
|
||||||
|
|
||||||
# Installs packages from repositories.
|
|
||||||
alias debi='sudo apt-get install'
|
|
||||||
|
|
||||||
# Installs packages from files.
|
|
||||||
alias debI='sudo dpkg -i'
|
|
||||||
|
|
||||||
# Displays package information.
|
|
||||||
alias debq='apt-cache show'
|
|
||||||
|
|
||||||
# Updates the package lists.
|
|
||||||
alias debu='sudo apt-get update'
|
|
||||||
|
|
||||||
# Upgrades outdated packages.
|
|
||||||
alias debU='sudo apt-get update && sudo apt-get dist-upgrade'
|
|
||||||
|
|
||||||
# Removes packages.
|
|
||||||
alias debx='sudo apt-get remove'
|
|
||||||
|
|
||||||
# Removes packages, their configuration, and unneeded dependencies.
|
|
||||||
alias debX='sudo apt-get remove --purge && sudo apt-get autoremove --purge'
|
|
||||||
|
|
||||||
# Searches for packages.
|
|
||||||
if (( $+commands[aptitude] )); then
|
|
||||||
alias debs='aptitude -F "* %p -> %d \n(%v/%V)" --no-gui --disable-columns search'
|
|
||||||
else
|
|
||||||
alias debs='apt-cache search'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Creates a basic deb package.
|
|
||||||
alias deb-build='time dpkg-buildpackage -rfakeroot -us -uc'
|
|
||||||
|
|
||||||
# Removes all kernel images and headers, except for the ones in use.
|
|
||||||
alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n$(uname -r)))"'
|
|
|
@ -1,109 +0,0 @@
|
||||||
Editor
|
|
||||||
======
|
|
||||||
|
|
||||||
Sets editor specific key bindings options and variables.
|
|
||||||
|
|
||||||
Options
|
|
||||||
-------
|
|
||||||
|
|
||||||
- `BEEP` beep on error in line editor.
|
|
||||||
|
|
||||||
Variables
|
|
||||||
---------
|
|
||||||
|
|
||||||
- `WORDCHARS` treat a given set of characters as part of a word.
|
|
||||||
|
|
||||||
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
|
|
|
@ -1,449 +0,0 @@
|
||||||
#
|
|
||||||
# Sets key bindings.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if [[ "$TERM" == 'dumb' ]]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Options
|
|
||||||
#
|
|
||||||
|
|
||||||
setopt BEEP # Beep on error in line editor.
|
|
||||||
|
|
||||||
#
|
|
||||||
# Variables
|
|
||||||
#
|
|
||||||
|
|
||||||
# Treat these characters as part of a word.
|
|
||||||
WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
|
|
||||||
|
|
||||||
# Use human-friendly identifiers.
|
|
||||||
zmodload zsh/terminfo
|
|
||||||
typeset -gA key_info
|
|
||||||
key_info=(
|
|
||||||
'Control' '\C-'
|
|
||||||
'ControlLeft' '\e[1;5D \e[5D \e\e[D \eOd'
|
|
||||||
'ControlRight' '\e[1;5C \e[5C \e\e[C \eOc'
|
|
||||||
'ControlPageUp' '\e[5;5~'
|
|
||||||
'ControlPageDown' '\e[6;5~'
|
|
||||||
'Escape' '\e'
|
|
||||||
'Meta' '\M-'
|
|
||||||
'Backspace' "^?"
|
|
||||||
'Delete' "^[[3~"
|
|
||||||
'F1' "$terminfo[kf1]"
|
|
||||||
'F2' "$terminfo[kf2]"
|
|
||||||
'F3' "$terminfo[kf3]"
|
|
||||||
'F4' "$terminfo[kf4]"
|
|
||||||
'F5' "$terminfo[kf5]"
|
|
||||||
'F6' "$terminfo[kf6]"
|
|
||||||
'F7' "$terminfo[kf7]"
|
|
||||||
'F8' "$terminfo[kf8]"
|
|
||||||
'F9' "$terminfo[kf9]"
|
|
||||||
'F10' "$terminfo[kf10]"
|
|
||||||
'F11' "$terminfo[kf11]"
|
|
||||||
'F12' "$terminfo[kf12]"
|
|
||||||
'Insert' "$terminfo[kich1]"
|
|
||||||
'Home' "$terminfo[khome]"
|
|
||||||
'PageUp' "$terminfo[kpp]"
|
|
||||||
'End' "$terminfo[kend]"
|
|
||||||
'PageDown' "$terminfo[knp]"
|
|
||||||
'Up' "$terminfo[kcuu1]"
|
|
||||||
'Left' "$terminfo[kcub1]"
|
|
||||||
'Down' "$terminfo[kcud1]"
|
|
||||||
'Right' "$terminfo[kcuf1]"
|
|
||||||
'BackTab' "$terminfo[kcbt]"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Set empty $key_info values to an invalid UTF-8 sequence to induce silent
|
|
||||||
# bindkey failure.
|
|
||||||
for key in "${(k)key_info[@]}"; do
|
|
||||||
if [[ -z "$key_info[$key]" ]]; then
|
|
||||||
key_info[$key]='<27>'
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
#
|
|
||||||
# External Editor
|
|
||||||
#
|
|
||||||
|
|
||||||
# Allow command line editing in an external editor.
|
|
||||||
autoload -Uz edit-command-line
|
|
||||||
zle -N edit-command-line
|
|
||||||
|
|
||||||
#
|
|
||||||
# Functions
|
|
||||||
#
|
|
||||||
# Runs bindkey but for all of the keymaps. Running it with no arguments will
|
|
||||||
# print out the mappings for all of the keymaps.
|
|
||||||
function bindkey-all {
|
|
||||||
local keymap=''
|
|
||||||
for keymap in $(bindkey -l); do
|
|
||||||
[[ "$#" -eq 0 ]] && printf "#### %s\n" "${keymap}" 1>&2
|
|
||||||
bindkey -M "${keymap}" "$@"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
# Exposes information about the Zsh Line Editor via the $editor_info associative
|
|
||||||
# array.
|
|
||||||
function editor-info {
|
|
||||||
# Clean up previous $editor_info.
|
|
||||||
unset editor_info
|
|
||||||
typeset -gA editor_info
|
|
||||||
|
|
||||||
if [[ "$KEYMAP" == 'vicmd' ]]; then
|
|
||||||
zstyle -s ':prezto:module:editor:info:keymap:alternate' format 'REPLY'
|
|
||||||
editor_info[keymap]="$REPLY"
|
|
||||||
else
|
|
||||||
zstyle -s ':prezto:module:editor:info:keymap:primary' format 'REPLY'
|
|
||||||
editor_info[keymap]="$REPLY"
|
|
||||||
|
|
||||||
if [[ "$ZLE_STATE" == *overwrite* ]]; then
|
|
||||||
zstyle -s ':prezto:module:editor:info:keymap:primary:overwrite' format 'REPLY'
|
|
||||||
editor_info[overwrite]="$REPLY"
|
|
||||||
else
|
|
||||||
zstyle -s ':prezto:module:editor:info:keymap:primary:insert' format 'REPLY'
|
|
||||||
editor_info[overwrite]="$REPLY"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
unset REPLY
|
|
||||||
zle zle-reset-prompt
|
|
||||||
}
|
|
||||||
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.
|
|
||||||
function zle-keymap-select {
|
|
||||||
zle editor-info
|
|
||||||
}
|
|
||||||
zle -N zle-keymap-select
|
|
||||||
|
|
||||||
# Enables terminal application mode and updates editor information.
|
|
||||||
function zle-line-init {
|
|
||||||
# The terminal must be in application mode when ZLE is active for $terminfo
|
|
||||||
# values to be valid.
|
|
||||||
if (( $+terminfo[smkx] )); then
|
|
||||||
# Enable terminal application mode.
|
|
||||||
echoti smkx
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Update editor information.
|
|
||||||
zle editor-info
|
|
||||||
}
|
|
||||||
zle -N zle-line-init
|
|
||||||
|
|
||||||
# Disables terminal application mode and updates editor information.
|
|
||||||
function zle-line-finish {
|
|
||||||
# The terminal must be in application mode when ZLE is active for $terminfo
|
|
||||||
# values to be valid.
|
|
||||||
if (( $+terminfo[rmkx] )); then
|
|
||||||
# Disable terminal application mode.
|
|
||||||
echoti rmkx
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Update editor information.
|
|
||||||
zle editor-info
|
|
||||||
}
|
|
||||||
zle -N zle-line-finish
|
|
||||||
|
|
||||||
# Toggles emacs overwrite mode and updates editor information.
|
|
||||||
function overwrite-mode {
|
|
||||||
zle .overwrite-mode
|
|
||||||
zle editor-info
|
|
||||||
}
|
|
||||||
zle -N overwrite-mode
|
|
||||||
|
|
||||||
# Enters vi insert mode and updates editor information.
|
|
||||||
function vi-insert {
|
|
||||||
zle .vi-insert
|
|
||||||
zle editor-info
|
|
||||||
}
|
|
||||||
zle -N vi-insert
|
|
||||||
|
|
||||||
# Moves to the first non-blank character then enters vi insert mode and updates
|
|
||||||
# editor information.
|
|
||||||
function vi-insert-bol {
|
|
||||||
zle .vi-insert-bol
|
|
||||||
zle editor-info
|
|
||||||
}
|
|
||||||
zle -N vi-insert-bol
|
|
||||||
|
|
||||||
# Enters vi replace mode and updates editor information.
|
|
||||||
function vi-replace {
|
|
||||||
zle .vi-replace
|
|
||||||
zle editor-info
|
|
||||||
}
|
|
||||||
zle -N vi-replace
|
|
||||||
|
|
||||||
# Expands .... to ../..
|
|
||||||
function expand-dot-to-parent-directory-path {
|
|
||||||
if [[ $LBUFFER = *.. ]]; then
|
|
||||||
LBUFFER+='/..'
|
|
||||||
else
|
|
||||||
LBUFFER+='.'
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
zle -N expand-dot-to-parent-directory-path
|
|
||||||
|
|
||||||
# Displays an indicator when completing.
|
|
||||||
function expand-or-complete-with-indicator {
|
|
||||||
local indicator
|
|
||||||
zstyle -s ':prezto:module:editor:info:completing' format 'indicator'
|
|
||||||
|
|
||||||
# This is included to work around a bug in zsh which shows up when interacting
|
|
||||||
# with multi-line prompts.
|
|
||||||
if [[ -z "$indicator" ]]; then
|
|
||||||
zle expand-or-complete
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
print -Pn "$indicator"
|
|
||||||
zle expand-or-complete
|
|
||||||
zle redisplay
|
|
||||||
}
|
|
||||||
zle -N expand-or-complete-with-indicator
|
|
||||||
|
|
||||||
# Inserts 'sudo ' at the beginning of the line.
|
|
||||||
function prepend-sudo {
|
|
||||||
if [[ "$BUFFER" != su(do|)\ * ]]; then
|
|
||||||
BUFFER="sudo $BUFFER"
|
|
||||||
(( CURSOR += 5 ))
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
zle -N prepend-sudo
|
|
||||||
|
|
||||||
# Expand aliases
|
|
||||||
function glob-alias {
|
|
||||||
zle _expand_alias
|
|
||||||
zle expand-word
|
|
||||||
zle magic-space
|
|
||||||
}
|
|
||||||
zle -N glob-alias
|
|
||||||
|
|
||||||
# Toggle the comment character at the start of the line. This is meant to work
|
|
||||||
# around a buggy implementation of pound-insert in zsh.
|
|
||||||
#
|
|
||||||
# This is currently only used for the emacs keys because vi-pound-insert has
|
|
||||||
# been reported to work properly.
|
|
||||||
function pound-toggle {
|
|
||||||
if [[ "$BUFFER" = '#'* ]]; then
|
|
||||||
# Because of an oddity in how zsh handles the cursor when the buffer size
|
|
||||||
# changes, we need to make this check before we modify the buffer and let
|
|
||||||
# zsh handle moving the cursor back if it's past the end of the line.
|
|
||||||
if [[ $CURSOR != $#BUFFER ]]; then
|
|
||||||
(( CURSOR -= 1 ))
|
|
||||||
fi
|
|
||||||
BUFFER="${BUFFER:1}"
|
|
||||||
else
|
|
||||||
BUFFER="#$BUFFER"
|
|
||||||
(( CURSOR += 1 ))
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
zle -N pound-toggle
|
|
||||||
|
|
||||||
# Reset to default key bindings.
|
|
||||||
bindkey -d
|
|
||||||
|
|
||||||
#
|
|
||||||
# Emacs Key Bindings
|
|
||||||
#
|
|
||||||
|
|
||||||
for key in "$key_info[Escape]"{B,b} "${(s: :)key_info[ControlLeft]}"
|
|
||||||
bindkey -M emacs "$key" emacs-backward-word
|
|
||||||
for key in "$key_info[Escape]"{F,f} "${(s: :)key_info[ControlRight]}"
|
|
||||||
bindkey -M emacs "$key" emacs-forward-word
|
|
||||||
|
|
||||||
# Kill to the beginning of the line.
|
|
||||||
for key in "$key_info[Escape]"{K,k}
|
|
||||||
bindkey -M emacs "$key" backward-kill-line
|
|
||||||
|
|
||||||
# Redo.
|
|
||||||
bindkey -M emacs "$key_info[Escape]_" redo
|
|
||||||
|
|
||||||
# Search previous character.
|
|
||||||
bindkey -M emacs "$key_info[Control]X$key_info[Control]B" vi-find-prev-char
|
|
||||||
|
|
||||||
# Match bracket.
|
|
||||||
bindkey -M emacs "$key_info[Control]X$key_info[Control]]" vi-match-bracket
|
|
||||||
|
|
||||||
# Edit command in an external editor.
|
|
||||||
bindkey -M emacs "$key_info[Control]X$key_info[Control]E" edit-command-line
|
|
||||||
|
|
||||||
if (( $+widgets[history-incremental-pattern-search-backward] )); then
|
|
||||||
bindkey -M emacs "$key_info[Control]R" \
|
|
||||||
history-incremental-pattern-search-backward
|
|
||||||
bindkey -M emacs "$key_info[Control]S" \
|
|
||||||
history-incremental-pattern-search-forward
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Toggle comment at the start of the line. Note that we use pound-toggle which
|
|
||||||
# is similar to pount insert, but meant to work around some issues that were
|
|
||||||
# being seen in iTerm.
|
|
||||||
bindkey -M emacs "$key_info[Escape];" pound-toggle
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Vi Key Bindings
|
|
||||||
#
|
|
||||||
|
|
||||||
# Edit command in an external editor emacs style (v is used for visual mode)
|
|
||||||
bindkey -M vicmd "$key_info[Control]X$key_info[Control]E" edit-command-line
|
|
||||||
|
|
||||||
# Undo/Redo
|
|
||||||
bindkey -M vicmd "u" undo
|
|
||||||
bindkey -M vicmd "$key_info[Control]R" redo
|
|
||||||
|
|
||||||
if (( $+widgets[history-incremental-pattern-search-backward] )); then
|
|
||||||
bindkey -M vicmd "?" history-incremental-pattern-search-backward
|
|
||||||
bindkey -M vicmd "/" history-incremental-pattern-search-forward
|
|
||||||
else
|
|
||||||
bindkey -M vicmd "?" history-incremental-search-backward
|
|
||||||
bindkey -M vicmd "/" history-incremental-search-forward
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Toggle comment at the start of the line.
|
|
||||||
bindkey -M vicmd "#" vi-pound-insert
|
|
||||||
|
|
||||||
#
|
|
||||||
# Emacs and Vi Key Bindings
|
|
||||||
#
|
|
||||||
|
|
||||||
# Unbound keys in vicmd and viins mode will cause really odd things to happen
|
|
||||||
# such as the casing of all the characters you have typed changing or other
|
|
||||||
# undefined things. In emacs mode they just insert a tilde, but bind these keys
|
|
||||||
# in the main keymap to a noop op so if there is no keybind in the users mode
|
|
||||||
# it will fall back and do nothing.
|
|
||||||
function _prezto-zle-noop { ; }
|
|
||||||
zle -N _prezto-zle-noop
|
|
||||||
local -a unbound_keys
|
|
||||||
unbound_keys=(
|
|
||||||
"${key_info[F1]}"
|
|
||||||
"${key_info[F2]}"
|
|
||||||
"${key_info[F3]}"
|
|
||||||
"${key_info[F4]}"
|
|
||||||
"${key_info[F5]}"
|
|
||||||
"${key_info[F6]}"
|
|
||||||
"${key_info[F7]}"
|
|
||||||
"${key_info[F8]}"
|
|
||||||
"${key_info[F9]}"
|
|
||||||
"${key_info[F10]}"
|
|
||||||
"${key_info[F11]}"
|
|
||||||
"${key_info[F12]}"
|
|
||||||
"${key_info[PageUp]}"
|
|
||||||
"${key_info[PageDown]}"
|
|
||||||
"${key_info[ControlPageUp]}"
|
|
||||||
"${key_info[ControlPageDown]}"
|
|
||||||
)
|
|
||||||
for keymap in $unbound_keys; do
|
|
||||||
bindkey -M viins "${keymap}" _prezto-zle-noop
|
|
||||||
bindkey -M vicmd "${keymap}" _prezto-zle-noop
|
|
||||||
done
|
|
||||||
|
|
||||||
# Keybinds for all keymaps
|
|
||||||
for keymap in 'emacs' 'viins' 'vicmd'; do
|
|
||||||
bindkey -M "$keymap" "$key_info[Home]" beginning-of-line
|
|
||||||
bindkey -M "$keymap" "$key_info[End]" end-of-line
|
|
||||||
done
|
|
||||||
|
|
||||||
# Keybinds for all vi keymaps
|
|
||||||
for keymap in viins vicmd; do
|
|
||||||
# Ctrl + Left and Ctrl + Right bindings to forward/backward word
|
|
||||||
for key in "${(s: :)key_info[ControlLeft]}"
|
|
||||||
bindkey -M "$keymap" "$key" vi-backward-word
|
|
||||||
for key in "${(s: :)key_info[ControlRight]}"
|
|
||||||
bindkey -M "$keymap" "$key" vi-forward-word
|
|
||||||
done
|
|
||||||
|
|
||||||
# Keybinds for emacs and vi insert mode
|
|
||||||
for keymap in 'emacs' 'viins'; do
|
|
||||||
bindkey -M "$keymap" "$key_info[Insert]" overwrite-mode
|
|
||||||
bindkey -M "$keymap" "$key_info[Delete]" delete-char
|
|
||||||
bindkey -M "$keymap" "$key_info[Backspace]" backward-delete-char
|
|
||||||
|
|
||||||
bindkey -M "$keymap" "$key_info[Left]" backward-char
|
|
||||||
bindkey -M "$keymap" "$key_info[Right]" forward-char
|
|
||||||
|
|
||||||
# Expand history on space.
|
|
||||||
bindkey -M "$keymap" ' ' magic-space
|
|
||||||
|
|
||||||
# Clear screen.
|
|
||||||
bindkey -M "$keymap" "$key_info[Control]L" clear-screen
|
|
||||||
|
|
||||||
# Expand command name to full path.
|
|
||||||
for key in "$key_info[Escape]"{E,e}
|
|
||||||
bindkey -M "$keymap" "$key" expand-cmd-path
|
|
||||||
|
|
||||||
# Duplicate the previous word.
|
|
||||||
for key in "$key_info[Escape]"{M,m}
|
|
||||||
bindkey -M "$keymap" "$key" copy-prev-shell-word
|
|
||||||
|
|
||||||
# Use a more flexible push-line.
|
|
||||||
for key in "$key_info[Control]Q" "$key_info[Escape]"{q,Q}
|
|
||||||
bindkey -M "$keymap" "$key" push-line-or-edit
|
|
||||||
|
|
||||||
# Bind Shift + Tab to go to the previous menu item.
|
|
||||||
bindkey -M "$keymap" "$key_info[BackTab]" reverse-menu-complete
|
|
||||||
|
|
||||||
# Complete in the middle of word.
|
|
||||||
bindkey -M "$keymap" "$key_info[Control]I" expand-or-complete
|
|
||||||
|
|
||||||
# Expand .... to ../..
|
|
||||||
if zstyle -t ':prezto:module:editor' dot-expansion; then
|
|
||||||
bindkey -M "$keymap" "." expand-dot-to-parent-directory-path
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Display an indicator when completing.
|
|
||||||
bindkey -M "$keymap" "$key_info[Control]I" \
|
|
||||||
expand-or-complete-with-indicator
|
|
||||||
|
|
||||||
# Insert 'sudo ' at the beginning of the line.
|
|
||||||
bindkey -M "$keymap" "$key_info[Control]X$key_info[Control]S" prepend-sudo
|
|
||||||
|
|
||||||
# control-space expands all aliases, including global
|
|
||||||
bindkey -M "$keymap" "$key_info[Control] " glob-alias
|
|
||||||
done
|
|
||||||
|
|
||||||
# Delete key deletes character in vimcmd cmd mode instead of weird default functionality
|
|
||||||
bindkey -M vicmd "$key_info[Delete]" delete-char
|
|
||||||
|
|
||||||
# Do not expand .... to ../.. during incremental search.
|
|
||||||
if zstyle -t ':prezto:module:editor' dot-expansion; then
|
|
||||||
bindkey -M isearch . self-insert 2> /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Layout
|
|
||||||
#
|
|
||||||
|
|
||||||
# Set the key layout.
|
|
||||||
zstyle -s ':prezto:module:editor' key-bindings 'key_bindings'
|
|
||||||
if [[ "$key_bindings" == (emacs|) ]]; then
|
|
||||||
bindkey -e
|
|
||||||
elif [[ "$key_bindings" == vi ]]; then
|
|
||||||
bindkey -v
|
|
||||||
else
|
|
||||||
print "prezto: editor: invalid key bindings: $key_bindings" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
unset key{,map,_bindings}
|
|
|
@ -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
|
|
|
@ -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'
|
|
|
@ -1,56 +0,0 @@
|
||||||
Environment
|
|
||||||
===========
|
|
||||||
|
|
||||||
Sets general shell options and defines environment variables.
|
|
||||||
|
|
||||||
This module must be loaded first.
|
|
||||||
|
|
||||||
Contributors
|
|
||||||
------------
|
|
||||||
|
|
||||||
This module **MUST NOT** rely on any command not built in Zsh.
|
|
||||||
|
|
||||||
Non-interactive environment variables should be defined in [`zshenv`][1].
|
|
||||||
|
|
||||||
Options
|
|
||||||
-------
|
|
||||||
|
|
||||||
### General
|
|
||||||
|
|
||||||
- `COMBINING_CHARS` combine zero-length punctuation characters (accents) with
|
|
||||||
the base character.
|
|
||||||
- `INTERACTIVE_COMMENTS` enable comments in interactive shell.
|
|
||||||
- `RC_QUOTES` allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
|
|
||||||
- `MAIL_WARNING` don't print a warning message if a mail file has been accessed.
|
|
||||||
|
|
||||||
### Jobs
|
|
||||||
|
|
||||||
- `LONG_LIST_JOBS` list jobs in the long format by default.
|
|
||||||
- `AUTO_RESUME` attempt to resume existing job before creating a new process.
|
|
||||||
- `NOTIFY` report status of background jobs immediately.
|
|
||||||
- `BG_NICE` don't run all background jobs at a lower priority.
|
|
||||||
- `HUP` don't kill jobs on shell exit.
|
|
||||||
- `CHECK_JOBS` don't report on jobs when shell exit.
|
|
||||||
|
|
||||||
Variables
|
|
||||||
---------
|
|
||||||
|
|
||||||
### Termcap
|
|
||||||
|
|
||||||
- `LESS_TERMCAP_mb` begins blinking.
|
|
||||||
- `LESS_TERMCAP_md` begins bold.
|
|
||||||
- `LESS_TERMCAP_me` ends mode.
|
|
||||||
- `LESS_TERMCAP_se` ends standout-mode.
|
|
||||||
- `LESS_TERMCAP_so` begins standout-mode.
|
|
||||||
- `LESS_TERMCAP_ue` ends underline.
|
|
||||||
- `LESS_TERMCAP_us` begins underline.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][2].*
|
|
||||||
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zshenv
|
|
||||||
[2]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1,64 +0,0 @@
|
||||||
#
|
|
||||||
# Sets general shell options and defines environment variables.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Smart URLs
|
|
||||||
#
|
|
||||||
|
|
||||||
# This logic comes from an old version of zim. Essentially, bracketed-paste was
|
|
||||||
# added as a requirement of url-quote-magic in 5.1, but in 5.1.1 bracketed
|
|
||||||
# paste had a regression. Additionally, 5.2 added bracketed-paste-url-magic
|
|
||||||
# which is generally better than url-quote-magic so we load that when possible.
|
|
||||||
autoload -Uz is-at-least
|
|
||||||
if [[ ${ZSH_VERSION} != 5.1.1 && ${TERM} != "dumb" ]]; then
|
|
||||||
if is-at-least 5.2; then
|
|
||||||
autoload -Uz bracketed-paste-url-magic
|
|
||||||
zle -N bracketed-paste bracketed-paste-url-magic
|
|
||||||
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
|
|
||||||
#
|
|
||||||
|
|
||||||
setopt COMBINING_CHARS # Combine zero-length punctuation characters (accents)
|
|
||||||
# with the base character.
|
|
||||||
setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell.
|
|
||||||
setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
|
|
||||||
unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed.
|
|
||||||
|
|
||||||
#
|
|
||||||
# Jobs
|
|
||||||
#
|
|
||||||
|
|
||||||
setopt LONG_LIST_JOBS # List jobs in the long format by default.
|
|
||||||
setopt AUTO_RESUME # Attempt to resume existing job before creating a new process.
|
|
||||||
setopt NOTIFY # Report status of background jobs immediately.
|
|
||||||
unsetopt BG_NICE # Don't run all background jobs at a lower priority.
|
|
||||||
unsetopt HUP # Don't kill jobs on shell exit.
|
|
||||||
unsetopt CHECK_JOBS # Don't report on jobs when shell exit.
|
|
||||||
|
|
||||||
#
|
|
||||||
# Termcap
|
|
||||||
#
|
|
||||||
|
|
||||||
if zstyle -t ':prezto:environment:termcap' color; then
|
|
||||||
export LESS_TERMCAP_mb=$'\E[01;31m' # Begins blinking.
|
|
||||||
export LESS_TERMCAP_md=$'\E[01;31m' # Begins bold.
|
|
||||||
export LESS_TERMCAP_me=$'\E[0m' # Ends mode.
|
|
||||||
export LESS_TERMCAP_se=$'\E[0m' # Ends standout-mode.
|
|
||||||
export LESS_TERMCAP_so=$'\E[00;47;30m' # Begins standout-mode.
|
|
||||||
export LESS_TERMCAP_ue=$'\E[0m' # Ends underline.
|
|
||||||
export LESS_TERMCAP_us=$'\E[01;32m' # Begins underline.
|
|
||||||
fi
|
|
|
@ -1,44 +0,0 @@
|
||||||
Fasd
|
|
||||||
====
|
|
||||||
|
|
||||||
[Fasd][1] is a command-line productivity booster, inspired by tools like
|
|
||||||
[autojump][2], [z][3] and [v][4], it offers quick access to files and
|
|
||||||
directories by keeping track of files and directories that were previously
|
|
||||||
accessed.
|
|
||||||
|
|
||||||
For completion to work, this module must be loaded **after** the *completion*
|
|
||||||
module.
|
|
||||||
|
|
||||||
The Prezto Fasd configuration differs from the default. The default aliases have
|
|
||||||
been disabled.
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
`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
|
|
||||||
-------
|
|
||||||
|
|
||||||
- `j` changes the current working directory interactively.
|
|
||||||
|
|
||||||
Completion
|
|
||||||
----------
|
|
||||||
|
|
||||||
Type `,`, `f,`, `d,` in front of a comma-separated query or type `,,`, `,,f`,
|
|
||||||
`,,d` at the end of a comma-separated query then hit <kbd>tab</kbd>.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][5].*
|
|
||||||
|
|
||||||
- [Wei Dai](https://github.com/clvv)
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: https://github.com/clvv/fasd
|
|
||||||
[2]: https://github.com/joelthelion/autojump
|
|
||||||
[3]: https://github.com/rupa/z
|
|
||||||
[4]: https://github.com/rupa/v
|
|
||||||
[5]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 48220241e764fdf46b075cd7fe723468aaadde58
|
|
|
@ -1,56 +0,0 @@
|
||||||
#
|
|
||||||
# Maintains a frequently used file and directory list for fast access.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Wei Dai <x@wei23.net>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Load dependencies.
|
|
||||||
pmodload 'editor'
|
|
||||||
|
|
||||||
# If the command doesn't exist externally, we need to fall back to the bundled
|
|
||||||
# submodule.
|
|
||||||
if (( ! $+commands[fasd] )); then
|
|
||||||
source "${0:h}/external/fasd" || return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Initialization
|
|
||||||
#
|
|
||||||
|
|
||||||
cache_file="${TMPDIR:-/tmp}/prezto-fasd-cache.$UID.zsh"
|
|
||||||
if [[ "${commands[fasd]}" -nt "$cache_file" \
|
|
||||||
|| "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
|
|
||||||
|| ! -s "$cache_file" ]]; then
|
|
||||||
# Set the base init arguments.
|
|
||||||
init_args=(zsh-hook)
|
|
||||||
|
|
||||||
# Set fasd completion init arguments, if applicable.
|
|
||||||
if zstyle -t ':prezto:module:completion' loaded; then
|
|
||||||
init_args+=(zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Cache init code.
|
|
||||||
fasd --init "$init_args[@]" >! "$cache_file" 2> /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
source "$cache_file"
|
|
||||||
|
|
||||||
unset cache_file init_args
|
|
||||||
|
|
||||||
function fasd_cd {
|
|
||||||
local fasd_ret="$(fasd -d "$@")"
|
|
||||||
if [[ -d "$fasd_ret" ]]; then
|
|
||||||
cd "$fasd_ret"
|
|
||||||
else
|
|
||||||
print "$fasd_ret"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# Aliases
|
|
||||||
#
|
|
||||||
|
|
||||||
# Changes the current working directory interactively.
|
|
||||||
alias j='fasd_cd -i'
|
|
|
@ -1,456 +0,0 @@
|
||||||
Git
|
|
||||||
===
|
|
||||||
|
|
||||||
Enhances the [Git][1] distributed version control system by providing aliases,
|
|
||||||
functions and by exposing repository status information to prompts.
|
|
||||||
|
|
||||||
Git **1.7.2** is the [minimum required version][7].
|
|
||||||
|
|
||||||
Settings
|
|
||||||
--------
|
|
||||||
|
|
||||||
### Log
|
|
||||||
|
|
||||||
The format of the [git-log][8] output is configurable via the following style,
|
|
||||||
where context is *brief*, *oneline*, and *medium*, which will be passed to the
|
|
||||||
`--pretty=format:` switch.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:module:git:log:context' format ''
|
|
||||||
```
|
|
||||||
|
|
||||||
### Status
|
|
||||||
|
|
||||||
Retrieving the status of a repository with submodules can take a long time.
|
|
||||||
Submodules may be ignored when they are *dirty*, *untracked*, *all*, or *none*.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:module:git:status:ignore' submodules 'all'
|
|
||||||
```
|
|
||||||
|
|
||||||
This setting affects all aliases and functions that call `git-status`.
|
|
||||||
|
|
||||||
Aliases
|
|
||||||
-------
|
|
||||||
|
|
||||||
Aliases are enabled by default. You can disable them with:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:module:git:alias' skip 'yes'
|
|
||||||
```
|
|
||||||
|
|
||||||
### Git
|
|
||||||
|
|
||||||
- `g` is short for `git`.
|
|
||||||
|
|
||||||
### Branch
|
|
||||||
|
|
||||||
- `gb` lists, creates, renames, and deletes branches.
|
|
||||||
- `gbc` creates a new branch.
|
|
||||||
- `gbl` lists branches and their commits. (also `gbv`)
|
|
||||||
- `gbL` lists all local and remote branches and their commits.
|
|
||||||
- `gbr` renames a branch. (also `gbm`)
|
|
||||||
- `gbR` renames a branch even if the new branch name already exists. (also
|
|
||||||
`gbM`)
|
|
||||||
- `gbs` lists branches and their commits with ancestry graphs.
|
|
||||||
- `gbS` lists local and remote branches and their commits with ancestry
|
|
||||||
graphs.
|
|
||||||
- `gbV` lists branches with more verbose information about their commits.
|
|
||||||
- `gbx` deletes a branch. (also `gbd`)
|
|
||||||
- `gbX` deletes a branch irrespective of its merged status. (also `gbD`)
|
|
||||||
|
|
||||||
|
|
||||||
### Commit
|
|
||||||
|
|
||||||
- `gc` records changes to the repository.
|
|
||||||
- `gca` stages all modified and deleted files.
|
|
||||||
- `gcm` records changes to the repository with the given message.
|
|
||||||
- `gcS` records changes to the repository. (Signed)
|
|
||||||
- `gcSa` stages all modified and deleted files. (Signed)
|
|
||||||
- `gcSm` records changes to the repository with the given message. (Signed)
|
|
||||||
- `gcam` stages all modified and deleted files, and records changes to the repository with the given message.
|
|
||||||
- `gco` checks out a branch or paths to work tree.
|
|
||||||
- `gcO` checks out hunks from the index or the tree interactively.
|
|
||||||
- `gcf` amends the tip of the current branch using the same log message as *HEAD*.
|
|
||||||
- `gcSf` amends the tip of the current branch using the same log message as *HEAD*. (Signed)
|
|
||||||
- `gcF` amends the tip of the current branch.
|
|
||||||
- `gcSF` amends the tip of the current branch. (Signed)
|
|
||||||
- `gcp` applies changes introduced by existing commits.
|
|
||||||
- `gcP` applies changes introduced by existing commits without committing.
|
|
||||||
- `gcr` reverts existing commits by reverting patches and recording new
|
|
||||||
commits.
|
|
||||||
- `gcR` removes the *HEAD* commit.
|
|
||||||
- `gcs` displays various types of objects.
|
|
||||||
- `gcsS` displays commits with GPG signature.
|
|
||||||
- `gcl` lists lost commits.
|
|
||||||
- `gcy` displays commits yet to be applied to upstream in the short format.
|
|
||||||
- `gcY` displays commits yet to be applied to upstream.
|
|
||||||
|
|
||||||
### Conflict
|
|
||||||
|
|
||||||
- `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
|
|
||||||
|
|
||||||
- `gd` displays information about files in the index and the work tree.
|
|
||||||
- `gdc` lists cached files.
|
|
||||||
- `gdx` lists deleted files.
|
|
||||||
- `gdm` lists modified files.
|
|
||||||
- `gdu` lists untracked files.
|
|
||||||
- `gdk` lists killed files.
|
|
||||||
- `gdi` lists ignored files.
|
|
||||||
|
|
||||||
### Fetch
|
|
||||||
|
|
||||||
- `gf` downloads objects and references from another repository.
|
|
||||||
- `gfa` downloads objects and references from all remote repositories.
|
|
||||||
- `gfc` clones a repository into a new directory.
|
|
||||||
- `gfcr` clones a repository into a new directory including all submodules.
|
|
||||||
- `gfm` fetches from and merges with another repository or local branch.
|
|
||||||
- `gfr` fetches from and rebases on another repository or local branch.
|
|
||||||
|
|
||||||
### Flow
|
|
||||||
|
|
||||||
- `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
|
|
||||||
|
|
||||||
- `gg` displays lines matching a pattern.
|
|
||||||
- `ggi` displays lines matching a pattern ignoring case.
|
|
||||||
- `ggl` lists files matching a pattern.
|
|
||||||
- `ggL` lists files that are not matching a pattern.
|
|
||||||
- `ggv` displays lines not matching a pattern.
|
|
||||||
- `ggw` displays lines matching a pattern at word boundary.
|
|
||||||
|
|
||||||
### Index
|
|
||||||
|
|
||||||
- `gia` adds file contents to the index.
|
|
||||||
- `giA` adds file contents to the index interactively.
|
|
||||||
- `giu` adds file contents to the index (updates only known files).
|
|
||||||
- `gid` displays changes between the index and a named commit (diff).
|
|
||||||
- `giD` displays changes between the index and a named commit (word diff).
|
|
||||||
- `gii` temporarily ignore differences in a given file.
|
|
||||||
- `giI` unignore differences in a given file.
|
|
||||||
- `gir` resets the current HEAD to the specified state.
|
|
||||||
- `giR` resets the current index interactively.
|
|
||||||
- `gix` removes files/directories from the index (recursively).
|
|
||||||
- `giX` removes files/directories from the index (recursively and forced).
|
|
||||||
|
|
||||||
### Log
|
|
||||||
|
|
||||||
- `gl` displays the log.
|
|
||||||
- `gls` displays the stats log.
|
|
||||||
- `gld` displays the diff log.
|
|
||||||
- `glo` displays the one line log.
|
|
||||||
- `glg` displays the graph log.
|
|
||||||
- `glb` displays the brief commit log.
|
|
||||||
- `glc` displays the commit count for each contributor in descending order.
|
|
||||||
- `glS` displays the log and checks the validity of signed commits.
|
|
||||||
|
|
||||||
### Merge
|
|
||||||
|
|
||||||
- `gm` joins two or more development histories together.
|
|
||||||
- `gmC` joins two or more development histories together but does not commit.
|
|
||||||
- `gmF` joins two or more development histories together but does not commit
|
|
||||||
generating a merge commit even if the merge resolved as a fast-forward.
|
|
||||||
- `gma` aborts the conflict resolution, and reconstructs the pre-merge state.
|
|
||||||
- `gmt` runs the merge conflict resolution tools to resolve conflicts.
|
|
||||||
|
|
||||||
### Push
|
|
||||||
|
|
||||||
- `gp` updates remote refs along with associated objects.
|
|
||||||
- `gpf` forcefully updates remote refs along with associated objects using the safer `--force-with-lease` option.
|
|
||||||
- `gpF` forcefully updates remote refs along with associated objects using the riskier `--force` option.
|
|
||||||
- `gpa` updates remote branches along with associated objects.
|
|
||||||
- `gpA` updates remote branches and tags along with associated objects.
|
|
||||||
- `gpt` updates remote tags along with associated objects.
|
|
||||||
- `gpc` updates remote refs along with associated objects and adds *origin*
|
|
||||||
as an upstream reference for the current branch.
|
|
||||||
- `gpp` pulls and pushes from origin to origin.
|
|
||||||
|
|
||||||
### Rebase
|
|
||||||
|
|
||||||
- `gr` forward-ports local commits to the updated upstream head.
|
|
||||||
- `gra` aborts the rebase.
|
|
||||||
- `grc` continues the rebase after merge conflicts are resolved.
|
|
||||||
- `gri` makes a list of commits to be rebased and opens the editor.
|
|
||||||
- `grs` skips the current patch.
|
|
||||||
|
|
||||||
### Remote
|
|
||||||
|
|
||||||
- `gR` manages tracked repositories.
|
|
||||||
- `gRl` lists remote names and their URLs.
|
|
||||||
- `gRa` adds a new remote.
|
|
||||||
- `gRx` removes a remote.
|
|
||||||
- `gRm` renames a remote.
|
|
||||||
- `gRu` fetches remotes updates.
|
|
||||||
- `gRp` prunes all stale remote tracking branches.
|
|
||||||
- `gRs` displays information about a given remote.
|
|
||||||
- `gRb` opens a remote on [GitHub][3] in the default browser.
|
|
||||||
|
|
||||||
### Stash
|
|
||||||
|
|
||||||
- `gs` stashes the changes of the dirty working directory.
|
|
||||||
- `gsa` applies the changes recorded in a stash to the working directory.
|
|
||||||
- `gsx` drops a stashed state.
|
|
||||||
- `gsX` drops all the stashed states.
|
|
||||||
- `gsl` lists stashed states.
|
|
||||||
- `gsL` lists dropped stashed states.
|
|
||||||
- `gsd` displays changes between the stash and its original parent.
|
|
||||||
- `gsp` removes and applies a single stashed state from the stash list.
|
|
||||||
- `gsr` recovers a given stashed state.
|
|
||||||
- `gss` stashes the changes of the dirty working directory, including untracked.
|
|
||||||
- `gsS` stashes the changes of the dirty working directory interactively.
|
|
||||||
- `gsw` stashes the changes of the dirty working directory retaining the index.
|
|
||||||
|
|
||||||
### Submodule
|
|
||||||
|
|
||||||
- `gS` initializes, updates, or inspects submodules.
|
|
||||||
- `gSa` adds given a repository as a submodule.
|
|
||||||
- `gSf` evaluates a shell command in each of checked out submodules.
|
|
||||||
- `gSi` initializes submodules.
|
|
||||||
- `gSI` initializes and clones submodules recursively.
|
|
||||||
- `gSl` lists the commits of all submodules.
|
|
||||||
- `gSm` moves a submodule.
|
|
||||||
- `gSs` synchronizes submodules' remote URL to the value specified in
|
|
||||||
.gitmodules.
|
|
||||||
- `gSu` fetches and merges the latest changes for all submodule.
|
|
||||||
- `gSx` removes a submodule.
|
|
||||||
|
|
||||||
### Tag
|
|
||||||
|
|
||||||
- `gt` lists tags or creates tag.
|
|
||||||
- `gtl` lists tags matching pattern.
|
|
||||||
- `gts` creates a signed tag.
|
|
||||||
- `gtv` validate a signed tag.
|
|
||||||
|
|
||||||
### Working directory
|
|
||||||
|
|
||||||
- `gws` displays working-tree status in the short format.
|
|
||||||
- `gwS` displays working-tree status.
|
|
||||||
- `gwd` displays changes between the working tree and the index (diff).
|
|
||||||
- `gwD` displays changes between the working tree and the index (word diff).
|
|
||||||
- `gwr` resets the current HEAD to the specified state, does not touch the
|
|
||||||
index nor the working tree.
|
|
||||||
- `gwR` resets the current HEAD, index and working tree to the specified state.
|
|
||||||
- `gwc` removes untracked files from the working tree (dry-run).
|
|
||||||
- `gwC` removes untracked files from the working tree.
|
|
||||||
- `gwx` removes files from the working tree and from the index recursively.
|
|
||||||
- `gwX` removes files from the working tree and from the index recursively and
|
|
||||||
forcefully.
|
|
||||||
|
|
||||||
### Shadows
|
|
||||||
|
|
||||||
The following aliases may shadow system commands:
|
|
||||||
|
|
||||||
- `gb` shadows the [GB][9].
|
|
||||||
- `gm` shadows the [Graphics Magick image processor][11].
|
|
||||||
- `gpt` shadows the [GUID partition table maintenance utility][4].
|
|
||||||
- `gs` shadows the [Ghostscript interpreter and previewer][5].
|
|
||||||
|
|
||||||
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`.
|
|
||||||
|
|
||||||
You can temporarily bypass an alias by prefixing it with a backward slash:
|
|
||||||
`\gpt`.
|
|
||||||
|
|
||||||
Functions
|
|
||||||
---------
|
|
||||||
|
|
||||||
- `git-branch-current` displays the current branch.
|
|
||||||
- `git-commit-lost` lists lost commits.
|
|
||||||
- `git-dir` displays the path to the Git directory.
|
|
||||||
- `git-hub-browse` opens the [GitHub][3] repository in the default browser.
|
|
||||||
- `git-hub-shorten-url` shortens [GitHub URLs][10].
|
|
||||||
- `git-info` exposes repository information via the `$git_info` associative
|
|
||||||
array.
|
|
||||||
- `git-root` displays the path to the working tree root.
|
|
||||||
- `git-stash-clear-interactive` asks for confirmation before clearing the stash.
|
|
||||||
- `git-stash-dropped` lists dropped stashed states.
|
|
||||||
- `git-stash-recover` recovers given dropped stashed states.
|
|
||||||
- `git-submodule-move` moves a submodule.
|
|
||||||
- `git-submodule-remove` removes a submodule.
|
|
||||||
|
|
||||||
Theming
|
|
||||||
-------
|
|
||||||
|
|
||||||
To display information about the current repository in a prompt, define the
|
|
||||||
following styles in the `prompt_name_setup` function, where the syntax for
|
|
||||||
setting a style is as follows.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:module:git:info:context:subcontext' format 'string'
|
|
||||||
```
|
|
||||||
|
|
||||||
### Main Contexts
|
|
||||||
|
|
||||||
| Name | Format Code | Description
|
|
||||||
| --------- | :---------: | ---------------------------------------------------
|
|
||||||
| action | %s | Special action name
|
|
||||||
| ahead | %A | Commits ahead of remote count
|
|
||||||
| behind | %B | Commits behind of remote count
|
|
||||||
| branch | %b | Branch name
|
|
||||||
| commit | %c | Commit hash
|
|
||||||
| position | %p | Commits from the nearest tag count
|
|
||||||
| remote | %R | Remote name
|
|
||||||
| stashed | %S | Stashed states count
|
|
||||||
|
|
||||||
### 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
|
|
||||||
| deleted | %d | Deleted files count
|
|
||||||
| dirty | %D | Dirty files count
|
|
||||||
| modified | %m | Modified files count
|
|
||||||
| renamed | %r | Renamed files count
|
|
||||||
| unmerged | %U | Unmerged files count
|
|
||||||
| untracked | %u | Untracked files count
|
|
||||||
|
|
||||||
### Special Action Contexts
|
|
||||||
|
|
||||||
| Name | Format | Description
|
|
||||||
| -------------------- | :---------: | -----------------------------------------
|
|
||||||
| apply | value | Applying patches
|
|
||||||
| bisect | value | Binary searching for changes
|
|
||||||
| cherry-pick | value | Cherry picking
|
|
||||||
| cherry-pick-sequence | value | Cherry picking sequence
|
|
||||||
| merge | value | Merging
|
|
||||||
| rebase | value | Rebasing
|
|
||||||
| rebase-interactive | value | Rebasing interactively
|
|
||||||
| rebase-merge | value | Rebasing merge
|
|
||||||
| revert | value | Reverting
|
|
||||||
| revert-sequence | value | Reverting sequence
|
|
||||||
|
|
||||||
First, format the repository state attributes. For example, to format the branch
|
|
||||||
and remote names, define the following styles.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:module:git:info:branch' format 'branch:%b'
|
|
||||||
zstyle ':prezto:module:git:info:remote' format 'remote:%R'
|
|
||||||
```
|
|
||||||
|
|
||||||
Second, format how the above attributes are displayed in prompts.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:module:git:info:keys' format \
|
|
||||||
'prompt' ' git(%b)' \
|
|
||||||
'rprompt' '[%R]'
|
|
||||||
```
|
|
||||||
|
|
||||||
Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to
|
|
||||||
`$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook
|
|
||||||
function.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][6].*
|
|
||||||
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
- [Colin Hebert](https://github.com/ColinHebert)
|
|
||||||
|
|
||||||
[1]: http://www.git-scm.com
|
|
||||||
[2]: https://github.com/defunkt/hub
|
|
||||||
[3]: https://www.github.com
|
|
||||||
[4]: http://www.manpagez.com/man/8/gpt/
|
|
||||||
[5]: http://www.manpagez.com/man/1/gs/
|
|
||||||
[6]: https://github.com/sorin-ionescu/prezto/issues
|
|
||||||
[7]: https://github.com/sorin-ionescu/prezto/issues/219
|
|
||||||
[8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html
|
|
||||||
[9]: https://getgb.io/
|
|
||||||
[10]: https://github.com/blog/985-git-io-github-url-shortener
|
|
||||||
[11]: http://www.manpagez.com/man/1/gm/
|
|
|
@ -1,274 +0,0 @@
|
||||||
#
|
|
||||||
# Defines Git aliases.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Settings
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
# Log
|
|
||||||
zstyle -s ':prezto:module:git:log:medium' format '_git_log_medium_format' \
|
|
||||||
|| _git_log_medium_format='%C(bold)Commit:%C(reset) %C(green)%H%C(red)%d%n%C(bold)Author:%C(reset) %C(cyan)%an <%ae>%n%C(bold)Date:%C(reset) %C(blue)%ai (%ar)%C(reset)%n%+B'
|
|
||||||
zstyle -s ':prezto:module:git:log:oneline' format '_git_log_oneline_format' \
|
|
||||||
|| _git_log_oneline_format='%C(green)%h%C(reset) %s%C(red)%d%C(reset)%n'
|
|
||||||
zstyle -s ':prezto:module:git:log:brief' format '_git_log_brief_format' \
|
|
||||||
|| _git_log_brief_format='%C(green)%h%C(reset) %s%n%C(blue)(%ar by %an)%C(red)%d%C(reset)%n'
|
|
||||||
|
|
||||||
# Status
|
|
||||||
zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_submodules' \
|
|
||||||
|| _git_status_ignore_submodules='none'
|
|
||||||
|
|
||||||
#
|
|
||||||
# Aliases
|
|
||||||
#
|
|
||||||
|
|
||||||
if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
|
|
||||||
# Git
|
|
||||||
alias g='git'
|
|
||||||
|
|
||||||
# Branch (b)
|
|
||||||
alias gb='git branch'
|
|
||||||
alias gba='git branch --all --verbose'
|
|
||||||
alias gbc='git checkout -b'
|
|
||||||
alias gbd='git branch --delete'
|
|
||||||
alias gbD='git branch --delete --force'
|
|
||||||
alias gbl='git branch --verbose'
|
|
||||||
alias gbL='git branch --all --verbose'
|
|
||||||
alias gbm='git branch --move'
|
|
||||||
alias gbM='git branch --move --force'
|
|
||||||
alias gbr='git branch --move'
|
|
||||||
alias gbR='git branch --move --force'
|
|
||||||
alias gbs='git show-branch'
|
|
||||||
alias gbS='git show-branch --all'
|
|
||||||
alias gbv='git branch --verbose'
|
|
||||||
alias gbV='git branch --verbose --verbose'
|
|
||||||
alias gbx='git branch --delete'
|
|
||||||
alias gbX='git branch --delete --force'
|
|
||||||
|
|
||||||
# Commit (c)
|
|
||||||
alias gc='git commit --verbose'
|
|
||||||
alias gca='git commit --verbose --all'
|
|
||||||
alias gcm='git commit --message'
|
|
||||||
alias gcS='git commit -S --verbose'
|
|
||||||
alias gcSa='git commit -S --verbose --all'
|
|
||||||
alias gcSm='git commit -S --message'
|
|
||||||
alias gcam='git commit --all --message'
|
|
||||||
alias gco='git checkout'
|
|
||||||
alias gcO='git checkout --patch'
|
|
||||||
alias gcf='git commit --amend --reuse-message HEAD'
|
|
||||||
alias gcSf='git commit -S --amend --reuse-message HEAD'
|
|
||||||
alias gcF='git commit --verbose --amend'
|
|
||||||
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 gcsS='git show --pretty=short --show-signature'
|
|
||||||
alias gcl='git-commit-lost'
|
|
||||||
alias gcy='git cherry -v --abbrev'
|
|
||||||
alias gcY='git cherry -v'
|
|
||||||
|
|
||||||
# Conflict (C)
|
|
||||||
alias gCl='git --no-pager diff --name-only --diff-filter=U'
|
|
||||||
alias gCa='git add $(gCl)'
|
|
||||||
alias gCe='git mergetool $(gCl)'
|
|
||||||
alias gCo='git checkout --ours --'
|
|
||||||
alias gCO='gCo $(gCl)'
|
|
||||||
alias gCt='git checkout --theirs --'
|
|
||||||
alias gCT='gCt $(gCl)'
|
|
||||||
|
|
||||||
# Data (d)
|
|
||||||
alias gd='git ls-files'
|
|
||||||
alias gdc='git ls-files --cached'
|
|
||||||
alias gdx='git ls-files --deleted'
|
|
||||||
alias gdm='git ls-files --modified'
|
|
||||||
alias gdu='git ls-files --other --exclude-standard'
|
|
||||||
alias gdk='git ls-files --killed'
|
|
||||||
alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"'
|
|
||||||
|
|
||||||
# Fetch (f)
|
|
||||||
alias gf='git fetch'
|
|
||||||
alias gfa='git fetch --all'
|
|
||||||
alias gfc='git clone'
|
|
||||||
alias gfcr='git clone --recurse-submodules'
|
|
||||||
alias gfm='git pull'
|
|
||||||
alias gfr='git pull --rebase'
|
|
||||||
|
|
||||||
# Flow (F)
|
|
||||||
alias gFi='git flow init'
|
|
||||||
alias gFf='git flow feature'
|
|
||||||
alias gFb='git flow bugfix'
|
|
||||||
alias gFl='git flow release'
|
|
||||||
alias gFh='git flow hotfix'
|
|
||||||
alias gFs='git flow support'
|
|
||||||
|
|
||||||
alias gFfl='git flow feature list'
|
|
||||||
alias gFfs='git flow feature start'
|
|
||||||
alias gFff='git flow feature finish'
|
|
||||||
alias gFfp='git flow feature publish'
|
|
||||||
alias gFft='git flow feature track'
|
|
||||||
alias gFfd='git flow feature diff'
|
|
||||||
alias gFfr='git flow feature rebase'
|
|
||||||
alias gFfc='git flow feature checkout'
|
|
||||||
alias gFfm='git flow feature pull'
|
|
||||||
alias gFfx='git flow feature delete'
|
|
||||||
|
|
||||||
alias gFbl='git flow bugfix list'
|
|
||||||
alias gFbs='git flow bugfix start'
|
|
||||||
alias gFbf='git flow bugfix finish'
|
|
||||||
alias gFbp='git flow bugfix publish'
|
|
||||||
alias gFbt='git flow bugfix track'
|
|
||||||
alias gFbd='git flow bugfix diff'
|
|
||||||
alias gFbr='git flow bugfix rebase'
|
|
||||||
alias gFbc='git flow bugfix checkout'
|
|
||||||
alias gFbm='git flow bugfix pull'
|
|
||||||
alias gFbx='git flow bugfix delete'
|
|
||||||
|
|
||||||
alias gFll='git flow release list'
|
|
||||||
alias gFls='git flow release start'
|
|
||||||
alias gFlf='git flow release finish'
|
|
||||||
alias gFlp='git flow release publish'
|
|
||||||
alias gFlt='git flow release track'
|
|
||||||
alias gFld='git flow release diff'
|
|
||||||
alias gFlr='git flow release rebase'
|
|
||||||
alias gFlc='git flow release checkout'
|
|
||||||
alias gFlm='git flow release pull'
|
|
||||||
alias gFlx='git flow release delete'
|
|
||||||
|
|
||||||
alias gFhl='git flow hotfix list'
|
|
||||||
alias gFhs='git flow hotfix start'
|
|
||||||
alias gFhf='git flow hotfix finish'
|
|
||||||
alias gFhp='git flow hotfix publish'
|
|
||||||
alias gFht='git flow hotfix track'
|
|
||||||
alias gFhd='git flow hotfix diff'
|
|
||||||
alias gFhr='git flow hotfix rebase'
|
|
||||||
alias gFhc='git flow hotfix checkout'
|
|
||||||
alias gFhm='git flow hotfix pull'
|
|
||||||
alias gFhx='git flow hotfix delete'
|
|
||||||
|
|
||||||
alias gFsl='git flow support list'
|
|
||||||
alias gFss='git flow support start'
|
|
||||||
alias gFsf='git flow support finish'
|
|
||||||
alias gFsp='git flow support publish'
|
|
||||||
alias gFst='git flow support track'
|
|
||||||
alias gFsd='git flow support diff'
|
|
||||||
alias gFsr='git flow support rebase'
|
|
||||||
alias gFsc='git flow support checkout'
|
|
||||||
alias gFsm='git flow support pull'
|
|
||||||
alias gFsx='git flow support delete'
|
|
||||||
|
|
||||||
# Grep (g)
|
|
||||||
alias gg='git grep'
|
|
||||||
alias ggi='git grep --ignore-case'
|
|
||||||
alias ggl='git grep --files-with-matches'
|
|
||||||
alias ggL='git grep --files-without-matches'
|
|
||||||
alias ggv='git grep --invert-match'
|
|
||||||
alias ggw='git grep --word-regexp'
|
|
||||||
|
|
||||||
# Index (i)
|
|
||||||
alias gia='git add'
|
|
||||||
alias giA='git add --patch'
|
|
||||||
alias giu='git add --update'
|
|
||||||
alias gid='git diff --no-ext-diff --cached'
|
|
||||||
alias giD='git diff --no-ext-diff --cached --word-diff'
|
|
||||||
alias gii='git update-index --assume-unchanged'
|
|
||||||
alias giI='git update-index --no-assume-unchanged'
|
|
||||||
alias gir='git reset'
|
|
||||||
alias giR='git reset --patch'
|
|
||||||
alias gix='git rm -r --cached'
|
|
||||||
alias giX='git rm -rf --cached'
|
|
||||||
|
|
||||||
# Log (l)
|
|
||||||
alias gl='git log --topo-order --pretty=format:"${_git_log_medium_format}"'
|
|
||||||
alias gls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"'
|
|
||||||
alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"${_git_log_medium_format}"'
|
|
||||||
alias glo='git log --topo-order --pretty=format:"${_git_log_oneline_format}"'
|
|
||||||
alias glg='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_format}"'
|
|
||||||
alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"'
|
|
||||||
alias glc='git shortlog --summary --numbered'
|
|
||||||
alias glS='git log --show-signature'
|
|
||||||
|
|
||||||
# Merge (m)
|
|
||||||
alias gm='git merge'
|
|
||||||
alias gmC='git merge --no-commit'
|
|
||||||
alias gmF='git merge --no-ff'
|
|
||||||
alias gma='git merge --abort'
|
|
||||||
alias gmt='git mergetool'
|
|
||||||
|
|
||||||
# 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'
|
|
||||||
|
|
||||||
# Tag (t)
|
|
||||||
alias gt='git tag'
|
|
||||||
alias gtl='git tag -l'
|
|
||||||
alias gts='git tag -s'
|
|
||||||
alias gtv='git verify-tag'
|
|
||||||
|
|
||||||
# Working Copy (w)
|
|
||||||
alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short'
|
|
||||||
alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}'
|
|
||||||
alias gwd='git diff --no-ext-diff'
|
|
||||||
alias gwD='git diff --no-ext-diff --word-diff'
|
|
||||||
alias gwr='git reset --soft'
|
|
||||||
alias gwR='git reset --hard'
|
|
||||||
alias gwc='git clean -n'
|
|
||||||
alias gwC='git clean -f'
|
|
||||||
alias gwx='git rm -r'
|
|
||||||
alias gwX='git rm -rf'
|
|
||||||
fi
|
|
|
@ -1,47 +0,0 @@
|
||||||
#compdef git-hub-browse
|
|
||||||
#autoload
|
|
||||||
|
|
||||||
#
|
|
||||||
# Completes git-hub-browse.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local state expl remotes remote branches_or_tags branches tags files ret=1
|
|
||||||
|
|
||||||
_arguments -C -s -S \
|
|
||||||
'1::args:->remote' \
|
|
||||||
'2::args:->branch-or-tag' \
|
|
||||||
'3::args:->file' && ret=0
|
|
||||||
|
|
||||||
case "$state" in
|
|
||||||
(remote)
|
|
||||||
remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2))
|
|
||||||
|
|
||||||
_describe -t branch 'remotes' remotes && ret=0
|
|
||||||
;;
|
|
||||||
(branch-or-tag)
|
|
||||||
remote="$words[(($CURRENT - 1))]"
|
|
||||||
|
|
||||||
branches_or_tags=($(
|
|
||||||
command git ls-remote --heads --tags "$remote" 2> /dev/null | cut -f2
|
|
||||||
))
|
|
||||||
|
|
||||||
branches=(HEAD ${${(M)branches_or_tags[@]##refs/heads/?##}##refs/heads/})
|
|
||||||
tags=(${${(M)branches_or_tags[@]##refs/tags/?##}##refs/tags/})
|
|
||||||
|
|
||||||
_describe -t branch 'branches' branches && ret=0
|
|
||||||
_describe -t tag 'tags' tags && ret=0
|
|
||||||
;;
|
|
||||||
(file)
|
|
||||||
files=(${(0)"$(_call_program files command git ls-files -z --exclude-standard 2> /dev/null)"})
|
|
||||||
_wanted file expl 'file' _multi_parts - / files && ret=0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
return $ret
|
|
|
@ -1,16 +0,0 @@
|
||||||
#compdef git-hub-shorten-url
|
|
||||||
#autoload
|
|
||||||
|
|
||||||
#
|
|
||||||
# Completes git-hub-shorten-url.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
local service="$service"
|
|
||||||
|
|
||||||
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
|
|
|
@ -1,18 +0,0 @@
|
||||||
#compdef git-info
|
|
||||||
#autoload
|
|
||||||
|
|
||||||
#
|
|
||||||
# Completes git-info.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
_arguments "1:toggle:((
|
|
||||||
on\:'enable in-prompt information for the current repository'
|
|
||||||
off\:'disable in-prompt information for the current repository'
|
|
||||||
))" && return 0
|
|
|
@ -1,40 +0,0 @@
|
||||||
#compdef git-submodule-move
|
|
||||||
#autoload
|
|
||||||
|
|
||||||
#
|
|
||||||
# Completes git-submodule-move.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local state expl ret=1
|
|
||||||
local -a submodules
|
|
||||||
local submodule
|
|
||||||
|
|
||||||
_arguments -C -s -S \
|
|
||||||
'1::args:->submodule' \
|
|
||||||
'2::args:->directory' && ret=0
|
|
||||||
|
|
||||||
case "$state" in
|
|
||||||
(submodule)
|
|
||||||
while IFS=$'\n' read submodule; do
|
|
||||||
submodules+=("$submodule")
|
|
||||||
done < <(
|
|
||||||
command git config --file "$(git-root)/.gitmodules" --list \
|
|
||||||
| grep '.path=' \
|
|
||||||
| cut -d= -f2-
|
|
||||||
)
|
|
||||||
|
|
||||||
_describe -t submodule 'submodules' submodules && ret=0
|
|
||||||
;;
|
|
||||||
(directory)
|
|
||||||
_wanted directories expl 'directory' _path_files -/ || _message 'directory'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
return $ret
|
|
|
@ -1,26 +0,0 @@
|
||||||
#compdef git-submodule-remove
|
|
||||||
#autoload
|
|
||||||
|
|
||||||
#
|
|
||||||
# Completes git-submodule-remove.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local -a submodules
|
|
||||||
local submodule
|
|
||||||
|
|
||||||
while IFS=$'\n' read submodule; do
|
|
||||||
submodules+=("$submodule")
|
|
||||||
done < <(
|
|
||||||
command git config --file "$(git-root)/.gitmodules" --list \
|
|
||||||
| grep '.path=' \
|
|
||||||
| cut -d= -f2-
|
|
||||||
)
|
|
||||||
|
|
||||||
_describe -t submodule 'submodules' submodules && return 0
|
|
|
@ -1,24 +0,0 @@
|
||||||
#
|
|
||||||
# Displays the current Git branch.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-branch-current {
|
|
||||||
|
|
||||||
if ! command git rev-parse 2> /dev/null; then
|
|
||||||
print "$0: not a repository: $PWD" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local ref="$(command git symbolic-ref HEAD 2> /dev/null)"
|
|
||||||
|
|
||||||
if [[ -n "$ref" ]]; then
|
|
||||||
print "${ref#refs/heads/}"
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,24 +0,0 @@
|
||||||
#
|
|
||||||
# Lists lost Git commits.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-commit-lost {
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
command git fsck 2> /dev/null \
|
|
||||||
| grep "^dangling commit" \
|
|
||||||
| awk '{print $3}' \
|
|
||||||
| command git log \
|
|
||||||
--date-order \
|
|
||||||
--no-walk \
|
|
||||||
--stdin \
|
|
||||||
--pretty=format:${_git_log_oneline_format}
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,20 +0,0 @@
|
||||||
#
|
|
||||||
# Displays the path to the Git directory.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-dir {
|
|
||||||
|
|
||||||
local git_dir="${$(command git rev-parse --git-dir):A}"
|
|
||||||
|
|
||||||
if [[ -n "$git_dir" ]]; then
|
|
||||||
print "$git_dir"
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
print "$0: not a repository: $PWD" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,62 +0,0 @@
|
||||||
#
|
|
||||||
# Opens a GitHub repository in the default browser.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-hub-browse {
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local remotes remote references reference file url
|
|
||||||
|
|
||||||
remote="${1:-origin}"
|
|
||||||
remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2))
|
|
||||||
|
|
||||||
if (( $remotes[(i)$remote] == $#remotes + 1 )); then
|
|
||||||
print "$0: remote not found: $remote" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
url=$(
|
|
||||||
command git config --get "remote.${remote}.url" \
|
|
||||||
| sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p"
|
|
||||||
)
|
|
||||||
|
|
||||||
reference="${${2:-$(git-branch-current)}:-HEAD}"
|
|
||||||
references=(
|
|
||||||
HEAD
|
|
||||||
${$(command git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/}
|
|
||||||
)
|
|
||||||
|
|
||||||
if (( $references[(i)$reference] == $#references + 1 )); then
|
|
||||||
print "$0: branch or tag not found: $reference" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$reference" == 'HEAD' ]]; then
|
|
||||||
reference="$(command git rev-parse HEAD 2> /dev/null)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
file="$3"
|
|
||||||
|
|
||||||
if [[ -n "$url" ]]; then
|
|
||||||
url="${url}/tree/${reference}/${file}"
|
|
||||||
|
|
||||||
if (( $+commands[$BROWSER] )); then
|
|
||||||
"$BROWSER" "$url"
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
print "$0: browser not set or set to a non-existent browser" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
print "$0: not a Git repository or remote not set" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,28 +0,0 @@
|
||||||
#
|
|
||||||
# Shortens GitHub URLs.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-hub-shorten-url {
|
|
||||||
|
|
||||||
local url="$1" code="$2"
|
|
||||||
|
|
||||||
if [[ "$url" == '-' ]]; then
|
|
||||||
read url <&0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$url" || ! "$url" =~ ^https?:\/\/.*github.com\/ ]]; then
|
|
||||||
print "usage: $0 [ url | - ] [code] ; url must be a github.com URL" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if (( $+commands[curl] )); then
|
|
||||||
curl -s -i 'https://git.io' -F "url=$url" ${(s: :)code:+ -F "code=$code"} | sed -n 's/^Location: //p'
|
|
||||||
else
|
|
||||||
print "$0: command not found: curl" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,444 +0,0 @@
|
||||||
#
|
|
||||||
# Exposes Git repository information via the $git_info associative array.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Gets the Git special action (am, bisect, cherry, merge, rebase, revert).
|
|
||||||
# Borrowed from vcs_info and edited.
|
|
||||||
function _git-action {
|
|
||||||
local action_dir
|
|
||||||
local git_dir="$(git-dir)"
|
|
||||||
local apply_formatted
|
|
||||||
local bisect_formatted
|
|
||||||
local cherry_pick_formatted
|
|
||||||
local cherry_pick_sequence_formatted
|
|
||||||
local merge_formatted
|
|
||||||
local rebase_formatted
|
|
||||||
local rebase_interactive_formatted
|
|
||||||
local rebase_merge_formatted
|
|
||||||
local revert_formatted
|
|
||||||
local revert_sequence_formatted
|
|
||||||
|
|
||||||
for action_dir in \
|
|
||||||
"${git_dir}/rebase-apply" \
|
|
||||||
"${git_dir}/rebase" \
|
|
||||||
"${git_dir}/../.dotest"
|
|
||||||
do
|
|
||||||
if [[ -d "$action_dir" ]] ; then
|
|
||||||
zstyle -s ':prezto:module:git:info:action:apply' format 'apply_formatted' || apply_formatted='apply'
|
|
||||||
zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' || rebase_formatted='rebase'
|
|
||||||
|
|
||||||
if [[ -f "${action_dir}/rebasing" ]] ; then
|
|
||||||
print "$rebase_formatted"
|
|
||||||
elif [[ -f "${action_dir}/applying" ]] ; then
|
|
||||||
print "$apply_formatted"
|
|
||||||
else
|
|
||||||
print "${rebase_formatted}/${apply_formatted}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
for action_dir in \
|
|
||||||
"${git_dir}/rebase-merge/interactive" \
|
|
||||||
"${git_dir}/.dotest-merge/interactive"
|
|
||||||
do
|
|
||||||
if [[ -f "$action_dir" ]]; then
|
|
||||||
zstyle -s ':prezto:module:git:info:action:rebase-interactive' format 'rebase_interactive_formatted' || rebase_interactive_formatted='rebase-interactive'
|
|
||||||
print "$rebase_interactive_formatted"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
for action_dir in \
|
|
||||||
"${git_dir}/rebase-merge" \
|
|
||||||
"${git_dir}/.dotest-merge"
|
|
||||||
do
|
|
||||||
if [[ -d "$action_dir" ]]; then
|
|
||||||
zstyle -s ':prezto:module:git:info:action:rebase-merge' format 'rebase_merge_formatted' || rebase_merge_formatted='rebase-merge'
|
|
||||||
print "$rebase_merge_formatted"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ -f "${git_dir}/MERGE_HEAD" ]]; then
|
|
||||||
zstyle -s ':prezto:module:git:info:action:merge' format 'merge_formatted' || merge_formatted='merge'
|
|
||||||
print "$merge_formatted"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -f "${git_dir}/CHERRY_PICK_HEAD" ]]; then
|
|
||||||
if [[ -d "${git_dir}/sequencer" ]] ; then
|
|
||||||
zstyle -s ':prezto:module:git:info:action:cherry-pick-sequence' format 'cherry_pick_sequence_formatted' || cherry_pick_sequence_formatted='cherry-pick-sequence'
|
|
||||||
print "$cherry_pick_sequence_formatted"
|
|
||||||
else
|
|
||||||
zstyle -s ':prezto:module:git:info:action:cherry-pick' format 'cherry_pick_formatted' || cherry_pick_formatted='cherry-pick'
|
|
||||||
print "$cherry_pick_formatted"
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -f "${git_dir}/REVERT_HEAD" ]]; then
|
|
||||||
if [[ -d "${git_dir}/sequencer" ]] ; then
|
|
||||||
zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' || revert_sequence_formatted='revert-sequence'
|
|
||||||
print "$revert_sequence_formatted"
|
|
||||||
else
|
|
||||||
zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' || revert_formatted='revert'
|
|
||||||
print "$revert_formatted"
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -f "${git_dir}/BISECT_LOG" ]]; then
|
|
||||||
zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect'
|
|
||||||
print "$bisect_formatted"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Gets the Git status information.
|
|
||||||
function git-info {
|
|
||||||
# Extended globbing is needed to parse repository status.
|
|
||||||
setopt LOCAL_OPTIONS
|
|
||||||
setopt EXTENDED_GLOB
|
|
||||||
|
|
||||||
local action
|
|
||||||
local action_format
|
|
||||||
local action_formatted
|
|
||||||
local added=0
|
|
||||||
local added_format
|
|
||||||
local added_formatted
|
|
||||||
local ahead=0
|
|
||||||
local ahead_and_behind
|
|
||||||
local ahead_and_behind_cmd
|
|
||||||
local ahead_format
|
|
||||||
local ahead_formatted
|
|
||||||
local ahead_or_behind
|
|
||||||
local behind=0
|
|
||||||
local behind_format
|
|
||||||
local behind_formatted
|
|
||||||
local branch
|
|
||||||
local branch_format
|
|
||||||
local branch_formatted
|
|
||||||
local branch_info
|
|
||||||
local clean
|
|
||||||
local clean_formatted
|
|
||||||
local commit
|
|
||||||
local commit_format
|
|
||||||
local commit_formatted
|
|
||||||
local deleted=0
|
|
||||||
local deleted_format
|
|
||||||
local deleted_formatted
|
|
||||||
local dirty=0
|
|
||||||
local dirty_format
|
|
||||||
local dirty_formatted
|
|
||||||
local ignore_submodules
|
|
||||||
local indexed=0
|
|
||||||
local indexed_format
|
|
||||||
local indexed_formatted
|
|
||||||
local -A info_formats
|
|
||||||
local info_format
|
|
||||||
local modified=0
|
|
||||||
local modified_format
|
|
||||||
local modified_formatted
|
|
||||||
local position
|
|
||||||
local position_format
|
|
||||||
local position_formatted
|
|
||||||
local remote
|
|
||||||
local remote_cmd
|
|
||||||
local remote_format
|
|
||||||
local remote_formatted
|
|
||||||
local renamed=0
|
|
||||||
local renamed_format
|
|
||||||
local renamed_formatted
|
|
||||||
local stashed=0
|
|
||||||
local stashed_format
|
|
||||||
local stashed_formatted
|
|
||||||
local status_cmd
|
|
||||||
local status_mode
|
|
||||||
local unindexed=0
|
|
||||||
local unindexed_format
|
|
||||||
local unindexed_formatted
|
|
||||||
local unmerged=0
|
|
||||||
local unmerged_format
|
|
||||||
local unmerged_formatted
|
|
||||||
local untracked=0
|
|
||||||
local untracked_format
|
|
||||||
local untracked_formatted
|
|
||||||
|
|
||||||
# Clean up previous $git_info.
|
|
||||||
unset git_info
|
|
||||||
typeset -gA git_info
|
|
||||||
|
|
||||||
# Return if not inside a Git repository work tree.
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if (( $# > 0 )); then
|
|
||||||
if [[ "$1" == [Oo][Nn] ]]; then
|
|
||||||
command git config --bool prompt.showinfo true
|
|
||||||
elif [[ "$1" == [Oo][Ff][Ff] ]]; then
|
|
||||||
command git config --bool prompt.showinfo false
|
|
||||||
else
|
|
||||||
print "usage: $0 [ on | off ]" >&2
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Return if git-info is disabled.
|
|
||||||
if ! is-true "${$(command git config --bool prompt.showinfo):-true}"; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ignore submodule status.
|
|
||||||
zstyle -s ':prezto:module:git:status:ignore' submodules 'ignore_submodules'
|
|
||||||
|
|
||||||
# Format commit.
|
|
||||||
zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
|
|
||||||
if [[ -n "$commit_format" ]]; then
|
|
||||||
commit="$(command git rev-parse HEAD 2> /dev/null)"
|
|
||||||
if [[ -n "$commit" ]]; then
|
|
||||||
zformat -f commit_formatted "$commit_format" "c:$commit"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Format stashed.
|
|
||||||
zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format'
|
|
||||||
if [[ -n "$stashed_format" ]]; then
|
|
||||||
commondir=""
|
|
||||||
if [[ -f "$(git-dir)/commondir" ]]; then
|
|
||||||
commondir="$(<$(git-dir)/commondir)"
|
|
||||||
[[ "$commondir" =~ ^/ ]] || commondir="$(git-dir)/$commondir"
|
|
||||||
fi
|
|
||||||
if [[ -f "$(git-dir)/refs/stash" || ( -n "$commondir" && -f "$commondir/refs/stash" ) ]]; then
|
|
||||||
stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')"
|
|
||||||
if [[ -n "$stashed" ]]; then
|
|
||||||
zformat -f stashed_formatted "$stashed_format" "S:$stashed"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Format action.
|
|
||||||
zstyle -s ':prezto:module:git:info:action' format 'action_format'
|
|
||||||
if [[ -n "$action_format" ]]; then
|
|
||||||
action="$(_git-action)"
|
|
||||||
if [[ -n "$action" ]]; then
|
|
||||||
zformat -f action_formatted "$action_format" "s:$action"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get the branch.
|
|
||||||
branch="${$(command git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
|
|
||||||
|
|
||||||
# Format branch.
|
|
||||||
zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
|
|
||||||
if [[ -n "$branch" && -n "$branch_format" ]]; then
|
|
||||||
zformat -f branch_formatted "$branch_format" "b:$branch"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Format position.
|
|
||||||
zstyle -s ':prezto:module:git:info:position' format 'position_format'
|
|
||||||
if [[ -z "$branch" && -n "$position_format" ]]; then
|
|
||||||
position="$(command git describe --contains --all HEAD 2> /dev/null)"
|
|
||||||
if [[ -n "$position" ]]; then
|
|
||||||
zformat -f position_formatted "$position_format" "p:$position"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Format remote.
|
|
||||||
zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
|
|
||||||
if [[ -n "$branch" && -n "$remote_format" ]]; then
|
|
||||||
# Gets the remote name.
|
|
||||||
remote_cmd='command git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
|
|
||||||
remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}"
|
|
||||||
if [[ -n "$remote" ]]; then
|
|
||||||
zformat -f remote_formatted "$remote_format" "R:$remote"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
zstyle -s ':prezto:module:git:info:ahead' format 'ahead_format'
|
|
||||||
zstyle -s ':prezto:module:git:info:behind' format 'behind_format'
|
|
||||||
if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then
|
|
||||||
# Gets the commit difference counts between local and remote.
|
|
||||||
ahead_and_behind_cmd='command git rev-list --count --left-right HEAD...@{upstream}'
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Get status type.
|
|
||||||
if ! zstyle -t ':prezto:module:git:info' verbose; then
|
|
||||||
# Format indexed.
|
|
||||||
zstyle -s ':prezto:module:git:info:indexed' format 'indexed_format'
|
|
||||||
if [[ -n "$indexed_format" ]]; then
|
|
||||||
((
|
|
||||||
indexed+=$(
|
|
||||||
command 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.
|
|
||||||
zstyle -s ':prezto:module:git:info:unindexed' format 'unindexed_format'
|
|
||||||
if [[ -n "$unindexed_format" ]]; then
|
|
||||||
((
|
|
||||||
unindexed+=$(
|
|
||||||
command 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.
|
|
||||||
zstyle -s ':prezto:module:git:info:untracked' format 'untracked_format'
|
|
||||||
if [[ -n "$untracked_format" ]]; then
|
|
||||||
((
|
|
||||||
untracked+=$(
|
|
||||||
command 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="command 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
|
|
||||||
|
|
||||||
# Format dirty and clean.
|
|
||||||
if (( dirty > 0 )); then
|
|
||||||
zstyle -s ':prezto:module:git:info:dirty' format 'dirty_format'
|
|
||||||
zformat -f dirty_formatted "$dirty_format" "D:$dirty"
|
|
||||||
else
|
|
||||||
zstyle -s ':prezto:module:git:info:clean' format 'clean_formatted'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Format info.
|
|
||||||
zstyle -a ':prezto:module:git:info:keys' format 'info_formats'
|
|
||||||
for info_format in ${(k)info_formats}; do
|
|
||||||
zformat -f REPLY "$info_formats[$info_format]" \
|
|
||||||
"a:$added_formatted" \
|
|
||||||
"A:$ahead_formatted" \
|
|
||||||
"B:$behind_formatted" \
|
|
||||||
"b:$branch_formatted" \
|
|
||||||
"C:$clean_formatted" \
|
|
||||||
"c:$commit_formatted" \
|
|
||||||
"d:$deleted_formatted" \
|
|
||||||
"D:$dirty_formatted" \
|
|
||||||
"i:$indexed_formatted" \
|
|
||||||
"I:$unindexed_formatted" \
|
|
||||||
"m:$modified_formatted" \
|
|
||||||
"p:$position_formatted" \
|
|
||||||
"R:$remote_formatted" \
|
|
||||||
"r:$renamed_formatted" \
|
|
||||||
"s:$action_formatted" \
|
|
||||||
"S:$stashed_formatted" \
|
|
||||||
"U:$unmerged_formatted" \
|
|
||||||
"u:$untracked_formatted"
|
|
||||||
git_info[$info_format]="$REPLY"
|
|
||||||
done
|
|
||||||
|
|
||||||
unset REPLY
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
git-info "$@"
|
|
|
@ -1,20 +0,0 @@
|
||||||
#
|
|
||||||
# Displays the path to the working tree root.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-root {
|
|
||||||
|
|
||||||
local root="$(command git rev-parse --show-toplevel 2> /dev/null)"
|
|
||||||
|
|
||||||
if [[ -n "$root" ]]; then
|
|
||||||
print "$root"
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,26 +0,0 @@
|
||||||
#
|
|
||||||
# Asks for confirmation before clearing the Git stash.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-stash-clear-interactive {
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local stashed
|
|
||||||
|
|
||||||
if [[ -f "$(git-dir)/refs/stash" ]]; then
|
|
||||||
stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')"
|
|
||||||
if (( $stashed > 0 )); then
|
|
||||||
if read -q "?Clear $stashed stashed state(s) [y/N]? "; then
|
|
||||||
command git stash clear
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,26 +0,0 @@
|
||||||
#
|
|
||||||
# Lists dropped Git stashed states.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-stash-dropped {
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
command git fsck --unreachable 2> /dev/null \
|
|
||||||
| grep 'commit' \
|
|
||||||
| awk '{print $3}' \
|
|
||||||
| command git log \
|
|
||||||
--pretty=format:${_git_log_oneline_format} \
|
|
||||||
--extended-regexp \
|
|
||||||
--grep="${1:-(WIP )?[Oo]n [^:]+:}" \
|
|
||||||
--merges \
|
|
||||||
--no-walk \
|
|
||||||
--stdin
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,22 +0,0 @@
|
||||||
#
|
|
||||||
# Recovers dropped Git stashed states.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-stash-recover {
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local commit
|
|
||||||
|
|
||||||
for commit in "$@"; do
|
|
||||||
command git update-ref \
|
|
||||||
-m "$(command git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
|
|
||||||
done
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,36 +0,0 @@
|
||||||
#
|
|
||||||
# Moves a Git submodule.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-submodule-move {
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
|
||||||
return 1
|
|
||||||
elif [[ "$PWD" != "$(git-root)" ]]; then
|
|
||||||
print "$0: must be run from the root of the work tree" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local src="$1"
|
|
||||||
local dst="$2"
|
|
||||||
local url
|
|
||||||
|
|
||||||
url="$(command git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")"
|
|
||||||
|
|
||||||
if [[ -z "$url" ]]; then
|
|
||||||
print "$0: submodule not found: $src" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p "${dst:h}"
|
|
||||||
|
|
||||||
git-submodule-remove "$src"
|
|
||||||
command git submodule add "$url" "$dst"
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,31 +0,0 @@
|
||||||
#
|
|
||||||
# Removes a Git submodule.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function git-submodule-remove {
|
|
||||||
|
|
||||||
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
|
|
||||||
print "$0: not a repository work tree: $PWD" >&2
|
|
||||||
return 1
|
|
||||||
elif [[ "$PWD" != "$(git-root)" ]]; then
|
|
||||||
print "$0: must be run from the root of the work tree" >&2
|
|
||||||
return 1
|
|
||||||
elif ! command git config --file .gitmodules --get "submodule.${1}.path" &> /dev/null; then
|
|
||||||
print "$0: submodule not found: $1" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
command git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &> /dev/null
|
|
||||||
command git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &> /dev/null
|
|
||||||
command git add .gitmodules
|
|
||||||
|
|
||||||
command git rm --cached -rf "${1}"
|
|
||||||
rm -rf "${1}"
|
|
||||||
rm -rf "$(git-dir)/modules/${1}"
|
|
||||||
|
|
||||||
return 0
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,17 +0,0 @@
|
||||||
#
|
|
||||||
# Provides Git aliases and functions.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if (( ! $+commands[git] )); then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Load dependencies.
|
|
||||||
pmodload 'helper'
|
|
||||||
|
|
||||||
# Source module files.
|
|
||||||
source "${0:h}/alias.zsh"
|
|
|
@ -1,34 +0,0 @@
|
||||||
GNU Utility
|
|
||||||
===========
|
|
||||||
|
|
||||||
Provides for the interactive use of GNU utilities on BSD systems.
|
|
||||||
|
|
||||||
Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e.
|
|
||||||
`ls` instead of `gls`, is not recommended since scripts that target other
|
|
||||||
utilities will be broken.
|
|
||||||
|
|
||||||
This module wraps GNU utilities in functions without a prefix for interactive
|
|
||||||
use.
|
|
||||||
|
|
||||||
This module must be loaded **before** the *utility* module.
|
|
||||||
|
|
||||||
Settings
|
|
||||||
--------
|
|
||||||
|
|
||||||
### Prefix
|
|
||||||
|
|
||||||
To use a different prefix, add the following to *zpreztorc*, and replace 'g' with
|
|
||||||
the desired prefix:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:module:gnu-utility' prefix 'g'
|
|
||||||
```
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][1].*
|
|
||||||
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1,60 +0,0 @@
|
||||||
#
|
|
||||||
# Provides for the interactive use of GNU utilities on BSD systems.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Get the prefix or use the default.
|
|
||||||
zstyle -s ':prezto:module:gnu-utility' prefix '_gnu_utility_p' || _gnu_utility_p='g'
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if (( ! ${+commands[${_gnu_utility_p}whoami]} )); then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
_gnu_utility_cmds=(
|
|
||||||
# Coreutils
|
|
||||||
'[' 'b2sum' 'base32' 'base64' 'basename' 'cat' 'chcon' 'chgrp' 'chmod' 'chown'
|
|
||||||
'chroot' 'cksum' 'comm' 'cp' 'csplit' 'cut' 'date' 'dd' 'df'
|
|
||||||
'dir' 'dircolors' 'dirname' 'du' 'echo' 'env' 'expand' 'expr'
|
|
||||||
'factor' 'false' 'fmt' 'fold' 'groups' 'head' 'hostid' 'id'
|
|
||||||
'install' 'join' 'kill' 'link' 'ln' 'logname' 'ls' 'md5sum' 'mkdir'
|
|
||||||
'mkfifo' 'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc'
|
|
||||||
'numfmt' 'od' 'paste' 'pathchk' 'pinky' 'pr' 'printenv' 'printf' 'ptx'
|
|
||||||
'pwd' 'readlink' 'realpath' 'rm' 'rmdir' 'runcon' 'seq' 'sha1sum'
|
|
||||||
'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf'
|
|
||||||
'sleep' 'sort' 'split' 'stat' 'stdbuf' 'stty' 'sum' 'sync' 'tac' 'tail'
|
|
||||||
'tee' 'test' 'timeout' 'touch' 'tr' 'true' 'truncate' 'tsort'
|
|
||||||
'tty' 'uname' 'unexpand' 'uniq' 'unlink' 'uptime' 'users' 'vdir'
|
|
||||||
'wc' 'who' 'whoami' 'yes'
|
|
||||||
|
|
||||||
# The following utilities are not part of Coreutils but installed separately.
|
|
||||||
|
|
||||||
# Binutils
|
|
||||||
'addr2line' 'ar' 'c++filt' 'elfedit' 'nm' 'objcopy' 'objdump'
|
|
||||||
'ranlib' 'readelf' 'size' 'strings' 'strip'
|
|
||||||
|
|
||||||
# Findutils
|
|
||||||
'find' 'locate' 'oldfind' 'updatedb' 'xargs'
|
|
||||||
|
|
||||||
# Libtool
|
|
||||||
'libtool' 'libtoolize'
|
|
||||||
|
|
||||||
# Miscellaneous
|
|
||||||
'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units' 'which'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Wrap GNU utilities in functions.
|
|
||||||
for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do
|
|
||||||
_gnu_utility_pcmd="${_gnu_utility_p}${_gnu_utility_cmd}"
|
|
||||||
if (( ${+commands[${_gnu_utility_pcmd}]} && ! ${+builtins[${_gnu_utility_cmd}]} )); then
|
|
||||||
eval "
|
|
||||||
function ${_gnu_utility_cmd} {
|
|
||||||
'${commands[${_gnu_utility_pcmd}]}' \"\$@\"
|
|
||||||
}
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
unset _gnu_utility_{p,cmds,cmd,pcmd}
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -1,28 +0,0 @@
|
||||||
Haskell
|
|
||||||
=======
|
|
||||||
|
|
||||||
Enables local Haskell package installation.
|
|
||||||
|
|
||||||
Per-user Package Installation
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
[Cabal][1], the Haskell package manager, can install packages into per user
|
|
||||||
directories.
|
|
||||||
|
|
||||||
This module prepends per user directories to the relevant path variables to
|
|
||||||
enable the execution of user installed executables and the reading of
|
|
||||||
documentation.
|
|
||||||
|
|
||||||
### Usage
|
|
||||||
|
|
||||||
Install packages into per user directories with `cabal install --user`.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][2].*
|
|
||||||
|
|
||||||
- [Sebastian Wiesner](https://github.com/lunaryorn)
|
|
||||||
|
|
||||||
[1]: http://www.haskell.org/cabal/
|
|
||||||
[2]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1,18 +0,0 @@
|
||||||
#
|
|
||||||
# Enables local Haskell package installation.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sebastian Wiesner <lunaryorn@googlemail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if (( ! $+commands[ghc] )); then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prepend Cabal per user directories to PATH.
|
|
||||||
if [[ "$OSTYPE" == darwin* && -d $HOME/Library/Haskell ]]; then
|
|
||||||
path=($HOME/Library/Haskell/bin(/N) $path)
|
|
||||||
else
|
|
||||||
path=($HOME/.cabal/bin(/N) $path)
|
|
||||||
fi
|
|
|
@ -1,24 +0,0 @@
|
||||||
Helper
|
|
||||||
======
|
|
||||||
|
|
||||||
Provides helper functions for developing modules.
|
|
||||||
|
|
||||||
Functions
|
|
||||||
---------
|
|
||||||
|
|
||||||
- `add-zsh-trap` adds a function name to a list to be called when a trap is
|
|
||||||
triggered.
|
|
||||||
- `is-autoloadable` checks if a file can be autoloaded by trying to load it
|
|
||||||
in a subshell.
|
|
||||||
- `is-callable` checks if a name is a command, function, or alias.
|
|
||||||
- `is-true` checks a boolean variable for "true".
|
|
||||||
- `coalesce` prints the first non-empty string in the arguments array.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][1].*
|
|
||||||
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1,41 +0,0 @@
|
||||||
#
|
|
||||||
# Provides for trapping UNIX signals and calling callback functions when a trap
|
|
||||||
# is triggered.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Adds a function name to a list to be called when a trap is triggered.
|
|
||||||
function add-zsh-trap {
|
|
||||||
if (( $# < 2 )); then
|
|
||||||
print "usage: $0 type function" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$signals[(r)$1]" ]]; then
|
|
||||||
print "$0: unknown signal: $1" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
local trap_functions="TRAP${1}_FUNCTIONS"
|
|
||||||
if (( ! ${(P)+trap_functions} )); then
|
|
||||||
typeset -gaU "$trap_functions"
|
|
||||||
fi
|
|
||||||
eval "$trap_functions+="$2""
|
|
||||||
|
|
||||||
if (( ! $+functions[TRAP${1}] )); then
|
|
||||||
eval "
|
|
||||||
function TRAP${1} {
|
|
||||||
for trap_function in \"\$TRAP${1}_FUNCTIONS[@]\"; do
|
|
||||||
if (( \$+functions[\$trap_function] )); then
|
|
||||||
\"\$trap_function\" \"\$1\"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return \$(( 128 + \$1 ))
|
|
||||||
}
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
add-zsh-trap "$@"
|
|
|
@ -1,31 +0,0 @@
|
||||||
#
|
|
||||||
# Defines helper functions.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Checks if a file can be autoloaded by trying to load it in a subshell.
|
|
||||||
function is-autoloadable {
|
|
||||||
( unfunction $1 ; autoload -U +X $1 ) &> /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Checks if a name is a command, function, or alias.
|
|
||||||
function is-callable {
|
|
||||||
(( $+commands[$1] || $+functions[$1] || $+aliases[$1] || $+builtins[$1] ))
|
|
||||||
}
|
|
||||||
|
|
||||||
# Checks a boolean variable for "true".
|
|
||||||
# Case insensitive: "1", "y", "yes", "t", "true", "o", and "on".
|
|
||||||
function is-true {
|
|
||||||
[[ -n "$1" && "$1" == (1|[Yy]([Ee][Ss]|)|[Tt]([Rr][Uu][Ee]|)|[Oo]([Nn]|)) ]]
|
|
||||||
}
|
|
||||||
|
|
||||||
# Prints the first non-empty string in the arguments array.
|
|
||||||
function coalesce {
|
|
||||||
for arg in $argv; do
|
|
||||||
print "$arg"
|
|
||||||
return 0
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 2a593787b2645c941c6aabfabca7dfd00721d56b
|
|
|
@ -1,71 +0,0 @@
|
||||||
History Substring Search
|
|
||||||
========================
|
|
||||||
|
|
||||||
Integrates [zsh-history-substring-search][1] into Prezto, which implements
|
|
||||||
the [Fish shell][2]'s history search feature, where the user can type in any
|
|
||||||
part of a previously entered command and press up and down to cycle through
|
|
||||||
matching commands.
|
|
||||||
|
|
||||||
If this module is used in conjunction with the *syntax-highlighting* module,
|
|
||||||
this module must be loaded **after** the *syntax-highlighting* module.
|
|
||||||
|
|
||||||
Contributors
|
|
||||||
------------
|
|
||||||
|
|
||||||
New features and bug fixes should be submitted to the
|
|
||||||
[zsh-history-substring-search][1] project according to its rules and
|
|
||||||
regulations. This module will be synchronized against it.
|
|
||||||
|
|
||||||
Settings
|
|
||||||
--------
|
|
||||||
|
|
||||||
### Case Sensitivity
|
|
||||||
|
|
||||||
To enable case-sensitivity for this module only, add the following line to
|
|
||||||
*zpreztorc*:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
|
|
||||||
```
|
|
||||||
|
|
||||||
### Highlighting
|
|
||||||
|
|
||||||
If colors are enabled, *history-substring-search* will automatically highlight
|
|
||||||
positive results.
|
|
||||||
|
|
||||||
To enable highlighting for this module only, add the following line to
|
|
||||||
*zpreztorc*:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
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
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][3].*
|
|
||||||
|
|
||||||
- [Suraj N. Kurapati](https://github.com/sunaku)
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: https://github.com/zsh-users/zsh-history-substring-search
|
|
||||||
[2]: http://fishshell.com
|
|
||||||
[3]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit aae3388491c2312c4efb2e86bcb999927bb2900e
|
|
|
@ -1,59 +0,0 @@
|
||||||
#
|
|
||||||
# Integrates history-substring-search into Prezto.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Suraj N. Kurapati <sunaku@gmail.com>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Load dependencies.
|
|
||||||
pmodload 'editor'
|
|
||||||
|
|
||||||
# Source module files.
|
|
||||||
source "${0:h}/external/zsh-history-substring-search.zsh" || return 1
|
|
||||||
|
|
||||||
#
|
|
||||||
# Search
|
|
||||||
#
|
|
||||||
|
|
||||||
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
|
|
||||||
HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS="${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS//i}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! zstyle -t ':prezto:module:history-substring-search' color; then
|
|
||||||
unset HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_{FOUND,NOT_FOUND}
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Key Bindings
|
|
||||||
#
|
|
||||||
|
|
||||||
if [[ -n "$key_info" ]]; then
|
|
||||||
# Emacs
|
|
||||||
bindkey -M emacs "$key_info[Control]P" history-substring-search-up
|
|
||||||
bindkey -M emacs "$key_info[Control]N" history-substring-search-down
|
|
||||||
|
|
||||||
# Vi
|
|
||||||
bindkey -M vicmd "k" history-substring-search-up
|
|
||||||
bindkey -M vicmd "j" history-substring-search-down
|
|
||||||
|
|
||||||
# Emacs and Vi
|
|
||||||
for keymap in 'emacs' 'viins'; do
|
|
||||||
bindkey -M "$keymap" "$key_info[Up]" history-substring-search-up
|
|
||||||
bindkey -M "$keymap" "$key_info[Down]" history-substring-search-down
|
|
||||||
done
|
|
||||||
|
|
||||||
unset keymap
|
|
||||||
fi
|
|
|
@ -1,44 +0,0 @@
|
||||||
History
|
|
||||||
=======
|
|
||||||
|
|
||||||
Sets [history][1] options and defines history aliases.
|
|
||||||
|
|
||||||
Options
|
|
||||||
-------
|
|
||||||
|
|
||||||
- `BANG_HIST` treats the **!** character specially during expansion.
|
|
||||||
- `EXTENDED_HISTORY` writes the history file in the *:start:elapsed;command* format.
|
|
||||||
- `SHARE_HISTORY` shares history between all sessions. Note that
|
|
||||||
`SHARE_HISTORY`, `INC_APPEND_HISTORY`, and `INC_APPEND_HISTORY_TIME` are
|
|
||||||
mutually exclusive.
|
|
||||||
- `HIST_EXPIRE_DUPS_FIRST` expires a duplicate event first when trimming history.
|
|
||||||
- `HIST_IGNORE_DUPS` does not record an event that was just recorded again.
|
|
||||||
- `HIST_IGNORE_ALL_DUPS` deletes an old recorded event if a new event is a duplicate.
|
|
||||||
- `HIST_FIND_NO_DUPS` does not display a previously found event.
|
|
||||||
- `HIST_IGNORE_SPACE` does not record an event starting with a space.
|
|
||||||
- `HIST_SAVE_NO_DUPS` does not write a duplicate event to the history file.
|
|
||||||
- `HIST_VERIFY` does not execute immediately upon history expansion.
|
|
||||||
- `HIST_BEEP` beeps when accessing non-existent history.
|
|
||||||
|
|
||||||
Variables
|
|
||||||
---------
|
|
||||||
|
|
||||||
- `HISTFILE` stores the path to the history file.
|
|
||||||
- `HISTSIZE` stores the maximum number of events to save in the internal history.
|
|
||||||
- `SAVEHIST` stores the maximum number of events to save in the history file.
|
|
||||||
|
|
||||||
Aliases
|
|
||||||
-------
|
|
||||||
|
|
||||||
- `history-stat` lists the ten most used commands
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][2].*
|
|
||||||
|
|
||||||
- [Robby Russell](https://github.com/robbyrussell)
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: http://zsh.sourceforge.net/Guide/zshguide02.html#l16
|
|
||||||
[2]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1,38 +0,0 @@
|
||||||
#
|
|
||||||
# Sets history options and defines history aliases.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Robby Russell <robby@planetargon.com>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Options
|
|
||||||
#
|
|
||||||
|
|
||||||
setopt BANG_HIST # Treat the '!' character specially during expansion.
|
|
||||||
setopt EXTENDED_HISTORY # Write the history file in the ':start:elapsed;command' format.
|
|
||||||
setopt SHARE_HISTORY # Share history between all sessions.
|
|
||||||
setopt HIST_EXPIRE_DUPS_FIRST # Expire a duplicate event first when trimming history.
|
|
||||||
setopt HIST_IGNORE_DUPS # Do not record an event that was just recorded again.
|
|
||||||
setopt HIST_IGNORE_ALL_DUPS # Delete an old recorded event if a new event is a duplicate.
|
|
||||||
setopt HIST_FIND_NO_DUPS # Do not display a previously found event.
|
|
||||||
setopt HIST_IGNORE_SPACE # Do not record an event starting with a space.
|
|
||||||
setopt HIST_SAVE_NO_DUPS # Do not write a duplicate event to the history file.
|
|
||||||
setopt HIST_VERIFY # Do not execute immediately upon history expansion.
|
|
||||||
setopt HIST_BEEP # Beep when accessing non-existent history.
|
|
||||||
|
|
||||||
#
|
|
||||||
# Variables
|
|
||||||
#
|
|
||||||
|
|
||||||
HISTFILE="${ZDOTDIR:-$HOME}/.zhistory" # The path to the history file.
|
|
||||||
HISTSIZE=10000 # The maximum number of events to save in the internal history.
|
|
||||||
SAVEHIST=10000 # The maximum number of events to save in the history file.
|
|
||||||
|
|
||||||
#
|
|
||||||
# Aliases
|
|
||||||
#
|
|
||||||
|
|
||||||
# Lists the ten most used commands.
|
|
||||||
alias history-stat="history 0 | awk '{print \$2}' | sort | uniq -c | sort -n -r | head"
|
|
|
@ -1,45 +0,0 @@
|
||||||
Homebrew
|
|
||||||
========
|
|
||||||
|
|
||||||
Defines Homebrew specific environment variables and aliases.
|
|
||||||
|
|
||||||
Variables
|
|
||||||
---------
|
|
||||||
|
|
||||||
Execute the following to list the environment variables loaded in the shell:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
brew shellenv
|
|
||||||
```
|
|
||||||
|
|
||||||
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`.
|
|
||||||
- `caski` installs a cask.
|
|
||||||
- `caskl` lists installed casks.
|
|
||||||
- `casko` lists casks which have an update available.
|
|
||||||
- `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
|
|
|
@ -1,56 +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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Variables
|
|
||||||
#
|
|
||||||
|
|
||||||
# Load standard Homebrew shellenv into the shell session.
|
|
||||||
# Load 'HOMEBREW_' prefixed variables only. Avoid loading 'PATH' related
|
|
||||||
# variables as they are already handled in standard zsh configuration.
|
|
||||||
if (( $+commands[brew] )); then
|
|
||||||
eval "${(@M)${(f)"$(brew shellenv 2> /dev/null)"}:#export HOMEBREW*}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Aliases
|
|
||||||
#
|
|
||||||
|
|
||||||
# Homebrew
|
|
||||||
alias brewc='brew cleanup'
|
|
||||||
alias brewC='brew cleanup --force'
|
|
||||||
alias brewi='brew install'
|
|
||||||
alias brewl='brew list'
|
|
||||||
alias brewo='brew outdated'
|
|
||||||
alias brews='brew search'
|
|
||||||
alias brewu='brew upgrade'
|
|
||||||
alias brewx='brew uninstall'
|
|
||||||
|
|
||||||
# Homebrew Cask
|
|
||||||
alias cask='brew cask'
|
|
||||||
alias caskc='hb_deprecated brew cask cleanup'
|
|
||||||
alias caskC='hb_deprecated brew cask cleanup'
|
|
||||||
alias caski='brew cask install'
|
|
||||||
alias caskl='brew cask list'
|
|
||||||
alias casko='brew cask outdated'
|
|
||||||
alias casks='hb_deprecated brew cask search'
|
|
||||||
alias caskx='brew cask uninstall'
|
|
||||||
|
|
||||||
function hb_deprecated {
|
|
||||||
local cmd="${@[3]}"
|
|
||||||
local cmd_args="${@:4}"
|
|
||||||
|
|
||||||
printf "'brew cask %s' has been deprecated, " "${cmd}"
|
|
||||||
printf "using 'brew %s' instead\n" "${cmd}"
|
|
||||||
|
|
||||||
command brew "${cmd}" "${=cmd_args}"
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
MacPorts
|
|
||||||
========
|
|
||||||
|
|
||||||
Defines MacPorts aliases and adds MacPorts directories to path variables.
|
|
||||||
|
|
||||||
Aliases
|
|
||||||
-------
|
|
||||||
|
|
||||||
- `portc` cleans the files used to build ports.
|
|
||||||
- `porti` installs a port.
|
|
||||||
- `ports` searches for a port.
|
|
||||||
- `portu` upgrades a port.
|
|
||||||
- `portU` upgrades MacPorts, the ports collection, and outdated ports.
|
|
||||||
- `portx` uninstalls a port.
|
|
||||||
- `portX` uninstalls inactive ports.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][1].*
|
|
||||||
|
|
||||||
- [Matt Cable](https://github.com/curiousstranger)
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1,34 +0,0 @@
|
||||||
#
|
|
||||||
# Defines MacPorts aliases and adds MacPorts directories to path variables.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Matt Cable <wozz@wookie.net>
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if [[ "$OSTYPE" != darwin* ]]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Paths
|
|
||||||
#
|
|
||||||
|
|
||||||
# Set the list of directories that Zsh searches for programs.
|
|
||||||
path=(
|
|
||||||
/opt/local/{bin,sbin}
|
|
||||||
$path
|
|
||||||
)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Aliases
|
|
||||||
#
|
|
||||||
|
|
||||||
alias portc='sudo port clean --all installed'
|
|
||||||
alias porti='sudo port install'
|
|
||||||
alias ports='port search'
|
|
||||||
alias portU='sudo port selfupdate && sudo port upgrade outdated'
|
|
||||||
alias portu='sudo port upgrade'
|
|
||||||
alias portX='sudo port -u uninstall'
|
|
||||||
alias portx='sudo port uninstall'
|
|
|
@ -1,56 +0,0 @@
|
||||||
Node.js
|
|
||||||
=======
|
|
||||||
|
|
||||||
Provides utility functions for [Node.js][1], loads the Node Version Manager, and
|
|
||||||
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
|
|
||||||
---------
|
|
||||||
|
|
||||||
- `node-doc` opens the Node.js online [API documentation][3] in the default
|
|
||||||
browser.
|
|
||||||
- `node-info` exposes information about the Node.js environment via the
|
|
||||||
`$node_info` associative array.
|
|
||||||
|
|
||||||
Theming
|
|
||||||
-------
|
|
||||||
|
|
||||||
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
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][4].*
|
|
||||||
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
- [Zeh Rizzatti](https://github.com/zehrizzatti)
|
|
||||||
|
|
||||||
[1]: http://nodejs.org
|
|
||||||
[2]: http://npmjs.org
|
|
||||||
[3]: http://nodejs.org/api
|
|
||||||
[4]: https://github.com/sorin-ionescu/prezto/issues
|
|
||||||
[5]: https://github.com/creationix/nvm
|
|
||||||
[6]: https://github.com/nodenv/nodenv
|
|
||||||
[7]: https://github.com/sstephenson/rbenv
|
|
|
@ -1,18 +0,0 @@
|
||||||
#
|
|
||||||
# Opens the Node.js online API documentation in the default browser.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function node-doc {
|
|
||||||
|
|
||||||
if [[ -z "$BROWSER" ]]; then
|
|
||||||
print "$0: no web browser defined" >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# TODO: Make the sections easier to use.
|
|
||||||
"$BROWSER" "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}"
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,32 +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]}"
|
|
||||||
elif (( $+commands[node] )) ; then
|
|
||||||
version="${$(node -v)#v}"
|
|
||||||
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
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,57 +0,0 @@
|
||||||
#
|
|
||||||
# Loads the Node Version Manager and enables npm completion.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# 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 "${nvm_prefix::="$(brew --prefix 2> /dev/null)"/opt/nvm}" ]]; then
|
|
||||||
source "$(brew --prefix nvm)/nvm.sh"
|
|
||||||
unset nvm_prefix
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
elif (( ! $+commands[node] )); then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Load NPM and known helper completions.
|
|
||||||
typeset -A compl_commands=(
|
|
||||||
npm 'npm completion'
|
|
||||||
grunt 'grunt --completion=zsh'
|
|
||||||
gulp 'gulp --completion=zsh'
|
|
||||||
)
|
|
||||||
|
|
||||||
for compl_command in "${(k)compl_commands[@]}"; do
|
|
||||||
if (( $+commands[$compl_command] )); then
|
|
||||||
cache_file="${TMPDIR:-/tmp}/prezto-$compl_command-cache.$UID.zsh"
|
|
||||||
|
|
||||||
# Completion commands are slow; cache their output if old or missing.
|
|
||||||
if [[ "$commands[$compl_command]" -nt "$cache_file" \
|
|
||||||
|| "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
|
|
||||||
|| ! -s "$cache_file" ]]; then
|
|
||||||
command ${=compl_commands[$compl_command]} >! "$cache_file" 2> /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
source "$cache_file"
|
|
||||||
|
|
||||||
unset cache_file
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
unset compl_command{s,}
|
|
|
@ -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
|
|
|
@ -1,14 +0,0 @@
|
||||||
#
|
|
||||||
# Initializes OCaml package management.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sebastian Wiesner <lunaryorn@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if [[ ! -f "$HOME/.opam/opam-init/init.zsh" ]]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Initialize OPAM.
|
|
||||||
source "$HOME/.opam/opam-init/init.zsh"
|
|
|
@ -1,50 +0,0 @@
|
||||||
OSX
|
|
||||||
===
|
|
||||||
|
|
||||||
Defines [macOS][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
|
|
||||||
-------
|
|
||||||
|
|
||||||
- `cdf` changes the current working director to the current _Finder_
|
|
||||||
directory.
|
|
||||||
- `pushdf` pushes the current working directory onto the directory queue and
|
|
||||||
changes the current working director to the current _Finder_ directory.
|
|
||||||
|
|
||||||
Functions
|
|
||||||
---------
|
|
||||||
|
|
||||||
- `mand` opens _man_ pages in [_Dash.app_][2].
|
|
||||||
- `manp` opens _man_ pages in _Preview.app_.
|
|
||||||
- `pfd` prints the current _Finder_ directory.
|
|
||||||
- `pfs` prints the current _Finder_ selection.
|
|
||||||
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]).
|
|
||||||
- `ql` previews files in Quick Look.
|
|
||||||
- `osx-rm-dir-metadata` deletes .DS\_Store, \_\_MACOSX cruft.
|
|
||||||
- `osx-ls-download-history` displays the macOS download history.
|
|
||||||
- `osx-rm-download-history` deletes the macOS download history.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][4].*
|
|
||||||
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: http://www.apple.com/macosx/
|
|
||||||
[2]: http://kapeli.com/dash
|
|
||||||
[3]: http://www.iterm2.com/
|
|
||||||
[4]: https://github.com/sorin-ionescu/prezto/issues
|
|
|
@ -1,11 +0,0 @@
|
||||||
#compdef mand manp
|
|
||||||
#autoload
|
|
||||||
|
|
||||||
#
|
|
||||||
# Completes mand and manp.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
_man
|
|
|
@ -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 "$@"
|
|
|
@ -1,19 +0,0 @@
|
||||||
#
|
|
||||||
# Opens man pages in Preview.app.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
function manp {
|
|
||||||
local page
|
|
||||||
if (( $# > 0 )); then
|
|
||||||
for page in "$@"; do
|
|
||||||
man -t "$page" | open -f -a Preview
|
|
||||||
done
|
|
||||||
else
|
|
||||||
print 'What manual page do you want?' >&2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
manp "$@"
|
|
|
@ -1,17 +0,0 @@
|
||||||
#
|
|
||||||
# Displays the macOS 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
|
|
||||||
|
|
||||||
# }
|
|
|
@ -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
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,17 +0,0 @@
|
||||||
#
|
|
||||||
# Deletes the macOS 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
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,16 +0,0 @@
|
||||||
#
|
|
||||||
# Displays the current Finder.app directory.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function pfd {
|
|
||||||
|
|
||||||
osascript 2> /dev/null <<EOF
|
|
||||||
tell application "Finder"
|
|
||||||
return POSIX path of (target of first window as text)
|
|
||||||
end tell
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,19 +0,0 @@
|
||||||
#
|
|
||||||
# Displays the current Finder.app selection.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function pfs {
|
|
||||||
|
|
||||||
osascript 2>&1 <<EOF
|
|
||||||
tell application "Finder" to set the_selection to selection
|
|
||||||
if the_selection is not {}
|
|
||||||
repeat with an_item in the_selection
|
|
||||||
log POSIX path of (an_item as text)
|
|
||||||
end repeat
|
|
||||||
end if
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,14 +0,0 @@
|
||||||
#
|
|
||||||
# Previews files in Quick Look.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function ql {
|
|
||||||
|
|
||||||
if (( $# > 0 )); then
|
|
||||||
qlmanage -p "$@" &> /dev/null
|
|
||||||
fi
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,56 +0,0 @@
|
||||||
#
|
|
||||||
# Opens a new Terminal.app/iTerm.app tab in the current directory.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# function tab {
|
|
||||||
|
|
||||||
local command="cd \\\"$PWD\\\""
|
|
||||||
(( $# > 0 )) && command="${command}; $*"
|
|
||||||
|
|
||||||
the_app=$(
|
|
||||||
osascript 2> /dev/null <<EOF
|
|
||||||
tell application "System Events"
|
|
||||||
name of first item of (every process whose frontmost is true)
|
|
||||||
end tell
|
|
||||||
EOF
|
|
||||||
)
|
|
||||||
|
|
||||||
[[ "$the_app" == 'Terminal' ]] && {
|
|
||||||
osascript 2> /dev/null <<EOF
|
|
||||||
tell application "System Events"
|
|
||||||
tell process "Terminal" to keystroke "t" using command down
|
|
||||||
tell application "Terminal" to do script "${command}" in front window
|
|
||||||
end tell
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
[[ "$the_app" == 'iTerm' ]] && {
|
|
||||||
osascript 2> /dev/null <<EOF
|
|
||||||
tell application "iTerm"
|
|
||||||
set current_terminal to current terminal
|
|
||||||
tell current_terminal
|
|
||||||
launch session "Default Session"
|
|
||||||
set current_session to current session
|
|
||||||
tell current_session
|
|
||||||
write text "${command}"
|
|
||||||
end tell
|
|
||||||
end tell
|
|
||||||
end tell
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
[[ "$the_app" == 'iTerm2' ]] && {
|
|
||||||
osascript 2> /dev/null <<EOF
|
|
||||||
tell application "iTerm2"
|
|
||||||
tell current window
|
|
||||||
create tab with default profile
|
|
||||||
tell current session to write text "${command}"
|
|
||||||
end tell
|
|
||||||
end tell
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
# }
|
|
|
@ -1,21 +0,0 @@
|
||||||
#
|
|
||||||
# Defines macOS aliases and functions.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Sorin Ionescu <sorin.ionescu@gmail.com>
|
|
||||||
#
|
|
||||||
|
|
||||||
# Return if requirements are not found.
|
|
||||||
if [[ "$OSTYPE" != darwin* ]]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Aliases
|
|
||||||
#
|
|
||||||
|
|
||||||
# Changes directory to the current Finder directory.
|
|
||||||
alias cdf='cd "$(pfd)"'
|
|
||||||
|
|
||||||
# Pushes directory to the current Finder directory.
|
|
||||||
alias pushdf='pushd "$(pfd)"'
|
|
|
@ -1,69 +0,0 @@
|
||||||
Pacman
|
|
||||||
======
|
|
||||||
|
|
||||||
Provides aliases and functions for the [Pacman][1] package manager and
|
|
||||||
frontends.
|
|
||||||
|
|
||||||
Settings
|
|
||||||
--------
|
|
||||||
|
|
||||||
It is possible to use a Pacman frontend with the pacman aliases provided by this
|
|
||||||
package as long as that frontend supports the same command line options (The
|
|
||||||
[AUR Helpers][2] page has a good comparison which lists if the command line
|
|
||||||
options are pacman compatible).
|
|
||||||
|
|
||||||
Please note that installing packages with an AUR Helper is not officially
|
|
||||||
supported by Archlinux. It is currently recommended to manually build AUR
|
|
||||||
packages using the [provided instructions][3]. The [aurutils][4] project has a
|
|
||||||
set of small utilities to make this easier.
|
|
||||||
|
|
||||||
To enable a Pacman frontend, add the following line to *zpreztorc*, substituting
|
|
||||||
`pacman_frontend` with the name of the frontent:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
zstyle ':prezto:module:pacman' frontend 'pacman_frontend'
|
|
||||||
```
|
|
||||||
|
|
||||||
Aliases
|
|
||||||
-------
|
|
||||||
|
|
||||||
### Pacman
|
|
||||||
|
|
||||||
- `pac` is short for `pacman`.
|
|
||||||
- `paci` installs packages from repositories.
|
|
||||||
- `pacI` installs packages from files.
|
|
||||||
- `pacx` removes packages and unneeded dependencies.
|
|
||||||
- `pacX` removes packages, their configuration, and unneeded dependencies.
|
|
||||||
- `pacq` displays information about a package from the repositories.
|
|
||||||
- `pacQ` displays information about a package from the local database.
|
|
||||||
- `pacs` searches for packages in the repositories.
|
|
||||||
- `pacS` searches for packages in the local database.
|
|
||||||
- `pacu` synchronizes the local package and Arch Build System (requires `abs`)
|
|
||||||
databases against the repositories.
|
|
||||||
- `pacU` synchronizes the local package database against the repositories then
|
|
||||||
upgrades outdated packages.
|
|
||||||
- `pacman-list-orphans` lists orphan packages.
|
|
||||||
- `pacman-remove-orphans` removes orphan packages.
|
|
||||||
|
|
||||||
### Frontends
|
|
||||||
|
|
||||||
Functions
|
|
||||||
---------
|
|
||||||
|
|
||||||
- `aurget` clone an aur package
|
|
||||||
- `pacman-list-explicit` lists explicitly installed pacman packages.
|
|
||||||
- `pacman-list-disowned` lists pacman disowned files.
|
|
||||||
|
|
||||||
Authors
|
|
||||||
-------
|
|
||||||
|
|
||||||
*The authors of this module should be contacted via the [issue tracker][5].*
|
|
||||||
|
|
||||||
- [Benjamin Boudreau](https://github.com/dreur)
|
|
||||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
|
|
||||||
|
|
||||||
[1]: http://www.archlinux.org/pacman/
|
|
||||||
[2]: https://wiki.archlinux.org/index.php/AUR_helpers#Comparison_table
|
|
||||||
[3]: https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages
|
|
||||||
[4]: https://github.com/AladW/aurutils
|
|
||||||
[5]: https://github.com/sorin-ionescu/prezto/issues
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue