1
0
mirror of https://github.com/dcarrillo/prezto.git synced 2024-11-13 06:31:12 +00:00

Compare commits

..

71 Commits

Author SHA1 Message Date
dc66c17728 Merge upstream/master 2021-06-17 13:12:16 +02:00
Roman Perepelitsa
061a7b961c prompt: update powerlevel10k submodule to v1.15.0
Release notes:

  - https://github.com/romkatv/powerlevel10k/releases/tag/v1.15.0
2021-06-10 09:32:20 -05:00
Indrajit Raychaudhuri
6833fcd2f2 node: Cleanup and optimize 'node' module
Changes:
- Simplify nodenv and nvm initialization
- Check for availability of `nodenv` or `nvm` function instead of command
- Unset local variables outside condition block
2021-06-01 21:43:11 -05:00
Indrajit Raychaudhuri
f1e24d3fd8 completion: Unset local variable outside condition block
Unset `curl_prefix` outside condition block so that it is always
cleared. Also, avoid `brew --prefix <foo>` since it is triggering ruby
in fallback flow when `<foo>` is not present.

Also, apply minor formatting tweaks.
2021-06-01 14:48:30 -05:00
Indrajit Raychaudhuri
37443368c1 ruby: Cleanup and optimize 'ruby' module
Changes:
- Honor `$RBENV_ROOT` or `RVM_DIR` if set but, no need to set it
  explicitly if not set. Instead, let the respective initialization
  scripts take care of that.
- Reverse `rbenv` vs `rvm` selection order, preferring `rbenv` instead.
- Check for availability of `rbenv` or `rvm` function instead of command
  to validate requirements. In a properly configured and initialized
  shell, `rbenv` or `rvm` will be available as function.
- Adhere to more idiomatic Zsh operation and minimize redundant syntaxes.

For additional rationale, see: https://github.com/rbenv/rbenv/wiki/Why-rbenv%3F
2021-06-01 14:31:26 -05:00
Indrajit Raychaudhuri
afe59b293b python: Update pyenv initialization flow per pyenv 2.0
In pyenv 2.0 onwards, it is not enough anymore to initialize pyenv in
shell by just calling `pyenv init -`. We also need to update `path` to
include pyenv shims by calling `pyenv init --path`.

Also, honor `$PYENV_ROOT` if set but, no need to set it explicitly if
not set. Instead, let the initialization script take care of that.
2021-06-01 14:29:39 -05:00
Indrajit Raychaudhuri
f0942e6dda python: Optimize completion for loading lazily on demand
Move `pip` to separate completion definition delegating to pip to do
all the completion work.

Since the completion is loaded lazily on-demand, it avoids the
performance overhead during Zsh initialization.

Implementation note:
The helper function `_pip_completion` implementation is based on the
official pip completion function (which can be generated with
`pip completion --zsh`) adhering to the newer compsys style.

See: 'man zshcompsys' for more details.
2021-06-01 14:29:39 -05:00
Indrajit Raychaudhuri
d686da3c03 python: Reformat and apply visual cleanup
Changes:
- Fallback to `virtualenvwrapper` without `pyenv` wrapper if `python` is
  available in path, regardless of whether `brew` is available.
- Look up for availability of `python2` and `python3`, not just `python`.
- Check for existence of path before adding to global `$path` array.
- Adhere to more idiomatic Zsh operation and minimize redundant syntaxes.
- Prefer looking up `$functions` for fully initialized `pyenv`.
2021-06-01 14:29:39 -05:00
Indrajit Raychaudhuri
9037fda36d completion: Avoid double-quoting LS_COLORS for completion
Double-quoting `LS_COLORS` prevents it from loading in environment,
which isn't what we want.
2021-05-25 18:12:45 -05:00
Ehren Kret
53033bc5d9 Fix broken source commands in node module
Placing `--no-use` inside the quoted string results in source
attempting to load a file which literally ends with ` --no-use`
instead of passing --no-use as an argument.
2021-05-24 11:33:49 -05:00
Indrajit Raychaudhuri
7052e2a002 completion: Skip completion lookup for key-only brewed curl
Skip lookup for `_curl` completion function to avoid fallback
completion having higher priority.
2021-05-23 19:40:32 -05:00
Indrajit Raychaudhuri
979144d0e4 git: Update minimum required git version to 2.11
Git 2.11+ has more versatile `submodule`, `fetch`, `rebase` options for
common use-cases.
2021-05-21 13:40:49 -05:00
hidekuro
c4a8f446c6 git: Use update instead of foreach in alias 'gSu'
Modern `git` can use `submodule` option `update` instead of `foreach`
to achieve approximately similar outcome.

To allows call without assuming that all submodules will have default
branch as `master`, the preferred approach would be to call
`git submodule update --remote --recursive` after registering the
correct branch for submodule in `.gitmodules`:

```
git config -f .gitmodules submodule.<path>.branch <branch>
```

For more discussion, see: https://stackoverflow.com/a/33835815

Signed-off-by: Indrajit Raychaudhuri <irc@indrajit.com>
2021-05-21 13:40:49 -05:00
Indrajit Raychaudhuri
a3643f124e git: Optimize scripts for git helper functions
Optimize git internal calls and adjustment git helper functions to use
more idiomatic Zsh conventions avoiding external calls.
2021-05-21 13:40:49 -05:00
Indrajit Raychaudhuri
efebe3efec git: Alias and function cleanup and formatting for clarity
Changes:
- Prefer longer form of git switch for better clarity.
- Move `-S` (`--gpg-sign`) in all the alias definitions to  the end to
  allow custom keyid.
- Simplify operations in helper functions git native calls.
- Apply minor reformatting and rearranging.
2021-05-21 13:40:49 -05:00
Indrajit Raychaudhuri
9459a716bf node: Add handy aliases for 'npm'
Add standard `npm` aliases that are used frequently.
2021-05-21 13:39:23 -05:00
Indrajit Raychaudhuri
28ec39d9b2 node: Add environment variable to store 'n' cache
See: https://github.com/tj/n#installation for details.
2021-05-21 13:39:23 -05:00
Indrajit Raychaudhuri
9f37fc9841 node: Optimize completions for loading lazily on demand
Move `grunt` and `gulp` to separate completion definitions wrapping
`grunt --completion=zsh` and `gulp --completion=zsh` respectively.

Since the completions are loaded lazily on demand, they avoid the
performance overhead during Zsh initialization.

Additionally, remove `npm` completion since it is already bundled with
Zsh for quite a while.
2021-05-21 13:39:23 -05:00
Indrajit Raychaudhuri
f84075b8d4 node: Prefer nodenv over nvm when available
Reverse `nodenv` vs `nvm` selection order, preferring `nodenv` instead.

For additional rationale, see: https://github.com/nodenv/nodenv/wiki/Why-nodenv%3F
2021-05-21 13:39:23 -05:00
Indrajit Raychaudhuri
af46875c5e node: Revamp and optimize 'node' module
Changes:
- nodenv and nvm now honors (and prioritizes) `$XDG_CONFIG_HOME` over
  `$HOME` to lookup local nodenv/nvm installation.
- Make `nvm` loading lazy (via `--no-use` argument).
- Remove redundant NODENV_ROOT or NVM_DIR, respective script already
  set them up.
- Adhere to more idiomatic Zsh operation and minimize external command
  usage (like `sed`).
2021-05-21 13:39:23 -05:00
Indrajit Raychaudhuri
c6b59f8bb1 completion: Set standard style used by 'list-colors'
Set `LS_COLORS` if not already available so that it is available as
standard style `list-colors`.

This needs to be explicitly set in completion module to ensure that the
variable is available even if 'utility' module is not loaded earlier.
2021-05-21 13:37:40 -05:00
Indrajit Raychaudhuri
515d70f639 utility: Add support for 'aria2c' in 'get' alias
`get` alias now supports `aria2c` via optional `zstyle`.

To configure `aria2c` to be used for `get`, use:
zstyle -s ':prezto:module:utility:download' helper 'aria2c'

Note that we still fall back to `curl` when the desired download helper
isn't available.
2021-05-21 13:35:51 -05:00
Indrajit Raychaudhuri
7980dd91c9 gnu-utility: Add more utility commands and rearrange
Add missing `basenc`, `egrep`, `fgrep` etc. and reformat a bit.
2021-05-21 13:33:58 -05:00
Indrajit Raychaudhuri
e07fd052d7 utility: Simplify conditional block for 'make' helper
Further, remove redundant `function` clause as per Prezto convention.
2021-05-21 13:33:07 -05:00
Indrajit Raychaudhuri
d3d79bbe74 utility: Use Zsh native mechanism to detect GNU 'du'
Skip additional call to `grep` and use Zsh native mechanism to detect
GNU version of `du`.

Further, Remove redundant `function` clause as per Prezto convention.
2021-05-21 13:33:07 -05:00
Indrajit Raychaudhuri
6eb4021556 utility: Remove redundant function clause in 'diff'
We don't use `function` clause in Prezto by convention.
2021-05-21 13:33:07 -05:00
Indrajit Raychaudhuri
d51e5ce40f utility: Always use 'git' fallback for 'wdiff' wrapper
Use `git` fallback (if present) even when color is off and `wdiff` is
not present.

Further, remove redundant `function` clause as per Prezto convention.
2021-05-21 13:33:07 -05:00
Indrajit Raychaudhuri
6c5657be8e zprofile: Don't exit 'less' when everything fits the screen
This aligns better with default `less` behavior and allows for
'growable content' when `less` is used as a substitute for `tail`.
2021-05-21 13:31:43 -05:00
Indrajit Raychaudhuri
fae5e493ec utility: Check best-fit Python version for 'http-serve'
When creating `http-serve` alias, first check if Python is actually
available. And, if available, apply the most specific version.
2021-05-21 13:30:36 -05:00
Indrajit Raychaudhuri
2368c9142b utility: Honor pre-defined COLOR settings for grep
Honor `GREP_COLOR` or `GREP_COLORS` if already defined for coloring
`grep` output.
2021-05-21 13:27:52 -05:00
Indrajit Raychaudhuri
1ff9421f7b general: Update documentation better qualifying runcom paths
Zsh and Prezto files don't always reside in `~/`. Instead, they have
a more spec compliant location (`${ZDOTDIR:-$HOME}/`). Make them
unambiguous in the documentation. Likewise, for `$GNUPGHOME`.

Further, add instruction for optionally setting up Prezto in
`$XDG_CONFIG_HOME`.

While at this, also add clarification on relative ordering of some of
the modules, apply more formatting tweaks and doc improvements.
2021-05-21 12:31:02 -05:00
Indrajit Raychaudhuri
424d4cb779 utility: Detect GNU 'ls' before applying the relevant tweaks
Detect `ls` provided by GNU Core Utilities upfront before applying
the relevant settings and aliases.

The revised logic takes the following aspects into consideration:
- `is-callable 'dircolors'` is not a sufficient test for verifying if
  the `ls` in scope is _also_ provided by GNU Core Utilities. `ls` can
  continue to be the one provided by BSD Core Utilities because of its
  precedence in `$path`.
- The `ls` in scope anyway can be either GNU Utils provided or BSD Utils
  provided depending on either `$path` precedence, soft link (via
  `ln -s`), or wrapper function (via 'gnu-utility' module).
- So instead of '_guessing_' the possible one, just detect if it is from
  GNU Utils and apply the relevant settings and aliases.
- Note that GNU prefixed `ls` (`gls`) is intentionally not honored in
  this case to avoid possible conflict/shadowing with other `gls`
  callable (can happen if 'git' module is used, for example).
  Besides, honoring `gls` would imply we honor other commands (like
  `mv`, `rm` etc.) to be consistent. We have a module 'gnu-utils'
  dedicated for that after all.
2021-05-21 11:50:18 -05:00
Indrajit Raychaudhuri
b14aca307d prompt: Update async helper to 1.8.5 2021-05-12 01:32:54 -05:00
Indrajit Raychaudhuri
0628b91028 completion: Update zsh-completions submodule to 0.33.0 2021-05-06 21:23:20 -05:00
Indrajit Raychaudhuri
be61026920 general: Apply submodules' path change in doc and zprezto-update
We need to accommodate cases where a submodule local path (or remote)
URL can change. Accordingly, update instruction and `zprezto-update`
function to synchronizes submodules' remote URL configuration setting
to the updated value automatically.
2021-05-05 14:13:01 -05:00
bXV0ZQ
95d223aa8a prompt: Fix git submodule path for 'pure' with actual path
WARNING: This will require synchronizing submodules' remote URL
configuration setting to the value specified in `.gitmodules` by doing:
`git submodule sync --recursive` in your Prezto location.

Signed-off-by: Indrajit Raychaudhuri <irc@indrajit.com>
2021-05-05 14:13:01 -05:00
Indrajit Raychaudhuri
742c1ea26f history: use external mv command for HISTFILE migration
This will make sure the actual external command `mv` is used instead of
wrapper function.
2021-05-05 12:21:42 -05:00
Indrajit Raychaudhuri
d80e393f78 general: Reformat documentation with better formatting and wording
General purpose reformating and rewording in (a few places). This should
also make markdown linting happier.

Prefer back-ticks wherever useful and use `console` for code blocks to
be executed on terminal.

Also, update references links wherever possible (including update from
'http://' to 'https://').
2021-05-05 12:21:04 -05:00
Indrajit Raychaudhuri
8edc5e9323 environment: Simplify nested conditional block
Avoid unnecessary nesting for conditional block.
2021-05-05 12:13:02 -05:00
Indrajit Raychaudhuri
d04a6ef459 rsync: Recommend Homebrew or MacPorts rsync for macOS
Bundled `rsync` is 2.6.x which is too old. Prefer 3.2.x from Homebrew
or MacPorts instead.
2021-05-05 12:03:48 -05:00
Indrajit Raychaudhuri
788aa3d158 rsync: Check for new rsync before applying newer options
The newer options for extended attributes or file-flags got reliable
only after rsync v3.1.
2021-05-05 12:03:48 -05:00
Indrajit Raychaudhuri
261d3b8224 rsync: Remove broken HFS+ specific compression flag
Remove `--protect-decmpfs` by default since hfs-compression specific
changes have been marked by upstream as broken since 3.1.3 and there is
little likelihood of that changing.
2021-05-05 11:51:25 -05:00
Indrajit Raychaudhuri
68300e6de4 node: Fixup nvm path detection for Homebrew based nvm
Prefer using `brew --prefix nvm` instead of just `brew --prefix` and
actually use the variable `nvm_prefix` once detected and set up.
2021-05-05 11:50:59 -05:00
Indrajit Raychaudhuri
e87a9b0a93 completion: Add completion for keg-only brewed curl when available
As curl bundled with macOS does not include `_curl` definitions, one
way to make `_curl` available is to install curl from Homebrew.

However, since curl from Hombrew is _keg-only_, its function path needs
to be explicitly included.
2021-05-05 11:49:57 -05:00
Indrajit Raychaudhuri
509c5ca80f history: Move HISTFILE path to more conventional one
Change default `HISTFILE` path from `~/.zhistory` to more conventional
`~/.zsh_history`. This aligns better with Debian variants, macOS and
Oh My Zsh.

This would provide an easier onboarding experience to users coming to
Prezto from standard (framework free) zsh or from Oh My Zsh.

For existing Prezto users, we attempt to automatically rename old
`HISTFILE` to new one iff the old one exists and the new one doesn't.
However, if both old and new `HISTFILE` exist and the old one is more
recent, we just alert the user about what changed with a suggested way
to accommodate the change.
2021-05-02 03:35:12 -05:00
Indrajit Raychaudhuri
1d1ae0a661 homebrew: Update documentation 2021-05-02 03:34:45 -05:00
Indrajit Raychaudhuri
f830065347 homebrew: Add 'brew upgrade' alias for cask
This adds alias for 'brew upgrade --cask' specifically for casks
via alias 'casku' (analogous to 'brewu').
2021-05-02 03:34:45 -05:00
Indrajit Raychaudhuri
3285b33f0c homebrew: Remove wrapper function for deprecation warning 2021-05-02 03:34:45 -05:00
Roman Omarov
9d42feac16 homebrew: cask aliases update 2021-05-02 03:34:45 -05:00
Indrajit Raychaudhuri
93556a7d5f archive: Remove unnecessary interpreter directive
These files are expected to be `source`d in and not executed standalone.
2021-05-02 03:01:32 -05:00
Indrajit Raychaudhuri
5a8bfd5bf5 helper: Update docs for OS detection helpers 2021-05-02 01:15:19 -05:00
Indrajit Raychaudhuri
8a967fc108
base: Check for 'run-help' in aliases hash before evicting
Add guard to check for presence of 'run-help' in `aliases` hash before evicting.
In some systems (like Debian) '/etc/zshrc' might have already done it.
2021-05-01 03:05:19 -05:00
Jeff Widman
63bc5061a7 Delete prompt_powerlevel9k_setup
I think this should have been removed as part of 0a07ba27a2.

Currently I'm seeing this warning after updating to `master`:
```
Couldn't read file /Users/jeffwidman/.zprezto/modules/prompt/functions/prompt_powerlevel9k_setup containing theme powerlevel9k.
```
2021-04-30 16:16:11 -07:00
Indrajit Raychaudhuri
f651140f2c completion: Add note about keep zcompdump younger than cache time 2021-04-30 17:52:43 -05:00
mattmc3
6a70bdfff2 Ensure compinit updates its modified date
`compinit -i` doesn't always change zcompdump, which means that the
`compinit -C` condition fails to run until the completions change.
When we `compinit -i`, we should touch the file too to solve this.
2021-04-30 17:52:43 -05:00
Indrajit Raychaudhuri
c5175145d4
prompt: Fixup ~/.zpreztorc in p9k removal warning 2021-04-30 15:24:00 -05:00
Indrajit Raychaudhuri
16ddedd1f3 command-not-found: Update docs for Homebrew
Update documentation for Homebrew to indicate that a recent version of 
Homebrew does not need to tap `command-not-found` Homebrew repository.
2021-04-30 15:19:22 -05:00
Indrajit Raychaudhuri
db6cd0d668 prompt: Update 'powerlevel9k' removal warning with instruction 2021-04-30 10:54:29 -07:00
Indrajit Raychaudhuri
40cc9f52f9 command-not-found: Simplify Homebrew on macOS setup
Now that 'command-not-found' helper loading has been significantly
simplified and the startup time improved in the official Homebrew tap,
the workaround for script detection (and caching) can be removed.
2021-04-30 03:10:33 -05:00
Indrajit Raychaudhuri
8003d0c6d8 git: Autoload helper functions for 'run-help'
Now that, prezto is configured to lookup more specific 'run-help'
function, autoload the known one for git.
2021-04-30 03:09:07 -05:00
Indrajit Raychaudhuri
7222fe5fd6 utility: Autoload helper functions for 'run-help'
Now that, prezto is configured to lookup more specific 'run-help'
function, autoload the known ones for utility.
2021-04-30 03:09:07 -05:00
Indrajit Raychaudhuri
095f44796b base: Allow loading more specific 'run-help' function
Allow loading more specific 'run-help' function from $fpath. This
allows automatically looking up specific sub-command helper if
available instead of the static default ('man').

See: ccc9cff9e2/Functions/Misc/run-help (L3-L8)
2021-04-30 03:09:07 -05:00
Poscat
4de0377106 Add support for zstd compressed tarballs to module 'archive' 2021-04-29 21:20:25 -07:00
Indrajit Raychaudhuri
a2f3f419f6 prompt: Make 'powerlevel9k' removal warning message friendlier 2021-04-29 17:53:46 -05:00
Indrajit Raychaudhuri
0a07ba27a2 prompt: Remove Powerlevel9k
Powerlevel9k has been marked deprecated and unmaintained by the author.
Powerlevel10k is now the recommended replacement.

See: https://github.com/Powerlevel9k/powerlevel9k#powerlevel9k-is-deprecated-and-now-unmaintained-please-use-powerlevel10k
2021-04-29 14:21:55 -05:00
Indrajit Raychaudhuri
ce937020ce history: Update doc to accommodate recent macOS
In recent versions of macOS (Catalina and above), `HISTFILE` is set
via system `/etc/zshrc`.
2021-04-26 18:05:37 -05:00
Indrajit Raychaudhuri
428632ac07
history: Minor formatting update 2021-04-26 17:53:52 -05:00
Herobs
76b8c810aa osx module mand fix
> The {query} has to be percent-escaped in macOS 11.

Just replace `:` to `%3A` work fine.

But add function like this one I find on stackoverflow to encode the entire query string would be more robust.
```bash
urldecode() {
    # urldecode <string>

    local url_encoded="${1//+/ }"
    printf '%b' "${url_encoded//%/\\x}"
}
```
2021-04-26 15:37:01 -05:00
Kenichi Kamiya
a7f223d959 Enable history-substring-search as a default module
Resolves #1868
2021-04-17 20:24:13 -05:00
Yang Tang
d66041cdb7 Update history-substring-search submodule to v1.0.2 2021-04-08 21:22:06 -07:00
Kenichi Kamiya
b8a3d90a13 Fix a typo s/eigth/eighth/ 2021-04-08 21:12:29 -07:00
93 changed files with 2034 additions and 1977 deletions

6
.gitmodules vendored
View File

@ -16,7 +16,7 @@
[submodule "modules/prompt/external/agnoster"] [submodule "modules/prompt/external/agnoster"]
path = modules/prompt/external/agnoster path = modules/prompt/external/agnoster
url = https://github.com/agnoster/agnoster-zsh-theme.git url = https://github.com/agnoster/agnoster-zsh-theme.git
[submodule "modules/prompt/functions/pure"] [submodule "modules/prompt/external/pure"]
path = modules/prompt/external/pure path = modules/prompt/external/pure
url = https://github.com/sindresorhus/pure.git url = https://github.com/sindresorhus/pure.git
[submodule "modules/fasd/external"] [submodule "modules/fasd/external"]
@ -25,10 +25,6 @@
[submodule "modules/prompt/external/async"] [submodule "modules/prompt/external/async"]
path = modules/prompt/external/async path = modules/prompt/external/async
url = https://github.com/mafredri/zsh-async.git url = https://github.com/mafredri/zsh-async.git
[submodule "modules/prompt/external/powerlevel9k"]
path = modules/prompt/external/powerlevel9k
url = https://github.com/bhilburn/powerlevel9k.git
shallow = true
[submodule "modules/prompt/external/powerlevel10k"] [submodule "modules/prompt/external/powerlevel10k"]
path = modules/prompt/external/powerlevel10k path = modules/prompt/external/powerlevel10k
url = https://github.com/romkatv/powerlevel10k.git url = https://github.com/romkatv/powerlevel10k.git

View File

@ -1,42 +1,41 @@
Contributing # Contributing
------------
This project would not exist without all of its users and [contributors][1]. 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 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. improve its performance, do not hesitate to fork and send pull requests.
### Issue Reporting ## Issue Reporting
- Check that the issue has not already been reported. - Check that the issue has not already been reported.
- Check that the issue has not already been fixed in the latest code. - 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, - Open an issue with a clear title and description in grammatically correct,
complete sentences. complete sentences.
### Pull Request ## Pull Request
- Read [how to properly contribute to open source projects on GitHub][2]. - 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. - Use a topic branch to easily amend a pull request later, if necessary.
- Write [good commit messages][3]. - Write [good commit messages][3].
- Squash commits on the topic branch before opening a pull request. - Squash commits on the topic branch before opening a pull request.
- Use the same coding style and spacing. - Use the same coding style and spacing.
- Open a [pull request][4] that relates to but one subject with a clear - Open a [pull request][4] that relates to but one subject with a clear title
title and description in grammatically correct, complete sentences. and description in grammatically correct, complete sentences.
#### Code Style ### Code Style
This project follows the [Google Shell Style Guide][5] when possible. However, This project follows the [Google Shell Style Guide][5] when possible. However,
there are a number of additional things to keep in mind. there are a number of additional things to keep in mind.
- Local variables should be used whenever possible. - Local variables should be used whenever possible.
- Prefer `zstyle` over environment variables for configuration. - Prefer `zstyle` over environment variables for configuration.
- Prefer (( ... )) over [[ ... ]] for arithmetic expression. - Prefer (( ... )) over [[ ... ]] for arithmetic expression.
- Use the function keyword to define functions. - Use the function keyword to define functions.
- The 80 character hard limit can be waived for readability. - The 80 character hard limit can be waived for readability.
#### Using an Alternative zprezto Directory ### Using an Alternative *zprezto* Directory
To work on zprezto without messing with your current configuration: To work on Prezto without affecting your current configuration:
```sh ```sh
mkdir devel-zprezto mkdir devel-zprezto
@ -52,24 +51,24 @@ done
Then to start zsh in this development environment you will run: Then to start zsh in this development environment you will run:
```sh ```console
ZDOTDIR=/path/to/devel-zprezto zsh ZDOTDIR=/path/to/devel-zprezto zsh
``` ```
#### Modules ### Modules
- A *README.md* must be present. - A *README.md* must be present.
- Large functions must be placed in a *functions* directory. - Large functions must be placed in a *functions* directory.
- Functions that take arguments must have completion. - Functions that take arguments must have completion.
#### Themes ### Themes
- A screenshots section must be present in the file header. - A screenshots section must be present in the file header.
- The pull request description must have [embedded screenshots][6]. - The pull request description must have [embedded screenshots][6].
[1]: https://github.com/sorin-ionescu/prezto/contributors [1]: https://github.com/sorin-ionescu/prezto/contributors
[2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request [2]: https://gun.io/blog/how-to-github-fork-branch-and-pull-request
[3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html [3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[4]: https://help.github.com/articles/using-pull-requests [4]: https://help.github.com/articles/using-pull-requests
[5]: https://google.github.io/styleguide/shell.xml [5]: https://google.github.io/styleguide/shell.xml
[6]: http://daringfireball.net/projects/markdown/syntax#img [6]: https://github.github.com/gfm/#images

182
README.md
View File

@ -1,136 +1,158 @@
Prezto — Instantly Awesome Zsh # Prezto — Instantly Awesome Zsh
==============================
Prezto is the configuration framework for [Zsh][1]; it enriches the command line Prezto is the configuration framework for [Zsh][1]; it enriches the command line
interface environment with sane defaults, aliases, functions, auto completion, interface environment with sane defaults, aliases, functions, auto completion,
and prompt themes. and prompt themes.
Installation ## Installation
------------
Prezto will work with any recent release of Zsh, but the minimum required Prezto will work with any recent release of Zsh, but the minimum required
version is 4.3.11. version is **4.3.11**.
1. Launch Zsh: 01. Launch Zsh:
```console ```console
zsh zsh
``` ```
2. Clone the repository: 02. Clone the repository:
```console ```console
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
``` ```
3. Create a new Zsh configuration by copying the Zsh configuration files <details>
provided: <summary><em>Optional: Installing in <code>$XDG_CONFIG_HOME</code></em></summary>
```sh Optionally, if you already have `$XDG_CONFIG_HOME` configured (usually as
setopt EXTENDED_GLOB _`$HOME/.config`_ by default) and intend to install Prezto under
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do _`$XDG_CONFIG_HOME/zsh`_ instead, you can clone the repository there and
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" configure `$ZDOTDIR` separately if not already configured.
done
```
Note: If you already have any of the given configuration files, `ln` will - Clone the repository:
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
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}/.zprezto"
```
```console - Configure `$XDG_CONFIG_HOME` and `$ZDOTDIR` in _`${$HOME}/.zshenv`_:
chsh -s /bin/zsh
```
5. Open a new Zsh terminal window or tab. ```sh
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:=$HOME/.config}"
export ZDOTDIR="${ZDOTDIR:=$XDG_CONFIG_HOME/zsh}"
source "$ZDOTDIR/.zshenv"
```
</details>
03. Create a new Zsh configuration by copying/linking the Zsh configuration
files provided:
```console
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
```
**Note:** If you already have any of the given configuration files, `ln` in
the above operation will cause an error. In simple cases, you can load
Prezto by adding the line `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to
the bottom of your _`${ZDOTDIR:-$HOME}/.zshrc`_ and keep the rest of your
Zsh configuration intact. For more complicated setups, we recommend that you
back up your original configs and replace them with the provided Prezto
[_`runcoms`_][10].
04. Set Zsh as your default shell:
```console
chsh -s /bin/zsh
```
05. Open a new Zsh terminal window or tab.
### Troubleshooting ### Troubleshooting
If you are not able to find certain commands after switching to *Prezto*, If you are not able to find certain commands after switching to Prezto, modify
modify the `PATH` variable in *~/.zprofile* then open a new Zsh terminal the `PATH` variable in _`${ZDOTDIR:-$HOME}/.zprofile`_ then open a new Zsh
window or tab. terminal window or tab.
Updating ## Updating
--------
Run `zprezto-update` to automatically check if there is an update to zprezto. Run `zprezto-update` to automatically check if there is an update to Prezto.
If there are no file conflicts, zprezto and its submodules will be If there are no file conflicts, Prezto and its submodules will be automatically
automatically updated. If there are conflicts you will be instructed to go into updated. If there are conflicts you will be instructed to go into the
the `$ZPREZTODIR` directory and resolve them yourself. `$ZPREZTODIR` directory and resolve them yourself.
To pull the latest changes and update submodules manually: To pull the latest changes and update submodules manually:
```console ```console
cd $ZPREZTODIR cd $ZPREZTODIR
git pull git pull
git submodule sync --recursive
git submodule update --init --recursive git submodule update --init --recursive
``` ```
Usage ## Usage
-----
Prezto has many features disabled by default. Read the source code and Prezto has many features disabled by default. Read the source code and the
accompanying README files to learn of what is available. accompanying README files to learn about what is available.
### Modules ### Modules
1. Browse */modules* to see what is available. 01. Browse [_`modules`_][9] to see what is available.
2. Load the modules you need in *~/.zpreztorc* then open a new Zsh terminal 02. Load the modules you need in _`${ZDOTDIR:-$HOME}/.zpreztorc`_ and then open
window or tab. a new Zsh terminal window or tab.
### Themes ### Themes
1. For a list of themes, type `prompt -l`. 01. For a list of themes, type `prompt -l`.
2. To preview a theme, type `prompt -p name`. 02. To preview a theme, type `prompt -p name`.
3. Load the theme you like in *~/.zpreztorc* then open a new Zsh terminal 03. Load the theme you like in _`${ZDOTDIR:-$HOME}/.zpreztorc`_ and then
window or tab. open a new Zsh terminal window or tab.
![sorin theme][2] ![sorin theme][2]
Note that the 'git' module may be required for special symbols to appear, Note that the [_`git`_][11] module may be required for special symbols to
such as those on the right of the above image. Add `'git'` to the `pmodule` appear, such as those on the right of the above image. Add `'git'` to the
list (under `zstyle ':prezto:load' pmodule \` in your *~/.zpreztorc*) to `pmodule` list (under `zstyle ':prezto:load' pmodule \` in your
enable this module. _`${ZDOTDIR:-$HOME}/.zpreztorc`_) to enable this module.
### External Modules ### External Modules
1. By default modules will be loaded from */modules* and */contrib*. 01. By default modules will be loaded from [_`/modules`_][9] and _`/contrib`_.
2. Additional module directories can be added to the 02. Additional module directories can be added to the
`:prezto:load:pmodule-dirs` setting in *~/.zpreztorc*. `:prezto:load:pmodule-dirs` setting in _`${ZDOTDIR:-$HOME}/.zpreztorc`_.
Note that module names need to be unique or they will cause an error when Note that module names need to be unique or they will cause an error when
loading. loading.
```sh ```sh
zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib
``` ```
Customization ## Customization
-------------
The project is managed via [Git][3]. It is highly recommended that you fork this The project is managed via [Git][3]. We highly recommend that you fork this
project; so, that you can commit your changes and push them to [GitHub][4] to project so that you can commit your changes and push them to your fork on
not lose them. If you do not know how to use Git, follow this [tutorial][5] and [GitHub][4] to preserve them. If you do not know how to use Git, follow this
bookmark this [reference][6]. [tutorial][5] and bookmark this [reference][6].
Resources ## Resources
---------
The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable. The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable.
License ## License
-------
This project is licensed under the MIT License. This project is licensed under the MIT License.
[1]: http://www.zsh.org [1]: https://www.zsh.org
[2]: http://i.imgur.com/nrGV6pg.png "sorin theme" [2]: https://i.imgur.com/nrGV6pg.png "sorin theme"
[3]: http://git-scm.com [3]: https://git-scm.com
[4]: https://github.com [4]: https://github.com
[5]: http://gitimmersion.com [5]: https://gitimmersion.com
[6]: https://git.github.io/git-reference/ [6]: https://git.github.io/git-reference/
[7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf [7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf
[8]: http://grml.org/zsh/zsh-lovers.html [8]: https://grml.org/zsh/zsh-lovers.html
[9]: modules#readme
[10]: runcoms#readme
[11]: modules/git#readme

View File

@ -44,6 +44,7 @@ function zprezto-update {
printf "There is an update available. Trying to pull.\n\n" printf "There is an update available. Trying to pull.\n\n"
if git pull --ff-only; then if git pull --ff-only; then
printf "Syncing submodules\n" printf "Syncing submodules\n"
git submodule sync --recursive
git submodule update --init --recursive git submodule update --init --recursive
return $? return $?
else else
@ -182,6 +183,9 @@ zstyle -a ':prezto:load' zmodule 'zmodules'
for zmodule ("$zmodules[@]") zmodload "zsh/${(z)zmodule}" for zmodule ("$zmodules[@]") zmodload "zsh/${(z)zmodule}"
unset zmodule{s,} unset zmodule{s,}
# Load more specific 'run-help' function from $fpath.
(( $+aliases[run-help] )) && unalias run-help && autoload -Uz run-help
# Autoload Zsh functions. # Autoload Zsh functions.
zstyle -a ':prezto:load' zfunction 'zfunctions' zstyle -a ':prezto:load' zfunction 'zfunctions'
for zfunction ("$zfunctions[@]") autoload -Uz "$zfunction" for zfunction ("$zfunctions[@]") autoload -Uz "$zfunction"

View File

@ -1,206 +1,166 @@
Modules # Modules
=======
Load modules in *zpreztorc*. The order matters. Load modules in _`${ZDOTDIR:-$HOME}/.zpreztorc`_. The order matters.
```sh ```sh
zstyle ':prezto:load' pmodule 'environment' 'terminal' zstyle ':prezto:load' pmodule 'environment' 'terminal'
``` ```
Archive ## Archive
-------
Provides functions to list and extract archives. Provides functions to list and extract archives.
Autosuggestions ## Autosuggestions
---------------
Integrates zsh-autosuggestions into Prezto. Integrates zsh-autosuggestions into Prezto.
Command-Not-Found ## Command-Not-Found
-----------------
Loads the command-not-found tool on macOS or Debian-based distributions. Loads the command-not-found tool on macOS or Debian-based distributions.
Completion ## Completion
----------
Loads and configures tab completion and provides additional completions from Loads and configures <kbd>TAB</kbd> completion and provides additional
the zsh-completions project. completions from the zsh-completions project.
Directory ## Directory
---------
Sets directory options and defines directory aliases. Sets directory options and defines directory aliases.
DNF ## DNF
---
Defines dnf aliases. Defines _dnf_ aliases.
Dpkg ## Dpkg
----
Defines dpkg aliases and functions. Defines _dpkg_ aliases and functions.
Editor ## Editor
------
Sets key bindings. Sets key bindings.
Emacs ## Emacs
-----
Enables Emacs dependency management. Enables Emacs dependency management.
Environment ## Environment
-----------
Sets general shell options and defines environment variables. Sets general shell options and defines environment variables.
Fasd ## Fasd
----
Maintains a frequently used file and directory list for fast access. Maintains a frequently used file and directory list for fast access.
Git ## Git
---
Enhances the Git distributed version control system by providing aliases, Enhances the Git distributed version control system by providing aliases,
functions and by exposing repository status information to prompts. functions and by exposing repository status information to prompts.
GNU Utility ## GNU Utility
-----------
Provides for the interactive use of GNU utilities on non-GNU systems. Provides for the interactive use of GNU utilities on non-GNU systems.
GPG ## GPG
---
Provides for an easier use of GPG by setting up gpg-agent. Provides for an easier use of GPG by setting up gpg-agent.
Haskell ## Haskell
-------
Enables local Haskell package installation. Enables local Haskell package installation.
Helper ## Helper
------
Provides helper functions for developing modules. Provides helper functions for developing modules.
History ## History
-------
Sets history options and defines history aliases. Sets history options and defines history aliases.
History Substring Search ## History Substring Search
------------------------
Integrates zsh-history-substring-search into Prezto. Integrates zsh-history-substring-search into Prezto.
Homebrew ## Homebrew
--------
Defines Homebrew aliases. Defines Homebrew aliases.
MacPorts ## MacPorts
--------
Defines MacPorts aliases and adds MacPorts directories to path variables. Defines MacPorts aliases and adds MacPorts directories to path variables.
Node.js ## Node.js
-------
Provides utility functions for Node.js and loads npm completion. Provides utility functions for Node.js and loads npm completion.
OCaml ## OCaml
-----
Initializes OCaml package management. Initializes OCaml package management.
OSX ## OSX
---
Defines macOS aliases and functions. Defines macOS aliases and functions.
Pacman ## Pacman
------
Provides aliases and functions for the Pacman package manager and frontends. Provides aliases and functions for the Pacman package manager and frontends.
Perl ## Perl
----
Enables local Perl module installation on macOS and defines alises. Enables local Perl module installation on macOS and defines alises.
Prompt ## Prompt
------
Loads prompt themes. Loads prompt themes.
Python ## Python
------
Enables local Python and local Python package installation. Enables local Python and local Python package installation.
Ruby on Rails ## Ruby on Rails
-------------
Defines Ruby on Rails aliases. Defines Ruby on Rails aliases.
Rsync ## Rsync
-----
Defines rsync aliases. Defines rsync aliases.
Ruby ## Ruby
----
Configures Ruby local gem installation, loads version managers, and defines Configures Ruby local gem installation, loads version managers, and defines
aliases. aliases.
GNU Screen ## GNU Screen
----------
Defines GNU Screen aliases and provides for auto launching it at start-up. Defines GNU Screen aliases and provides for auto launching it at start-up.
Spectrum ## Spectrum
--------
Provides for easier use of 256 colors and effects. Provides for easier use of 256 colors and effects.
SSH ## SSH
---
Provides for an easier use of SSH by setting up ssh-agent. Provides for an easier use of SSH by setting up ssh-agent.
Syntax Highlighting ## Syntax Highlighting
-------------------
Integrates zsh-syntax-highlighting into Prezto. Integrates zsh-syntax-highlighting into Prezto.
Terminal ## Terminal
--------
Sets terminal window and tab titles. Sets terminal window and tab titles.
Tmux ## Tmux
----
Defines tmux aliases and provides for auto launching it at start-up. Defines tmux aliases and provides for auto launching it at start-up.
Utility ## Utility
-------
Defines general aliases and functions. Defines general aliases and functions.
Wake-on-LAN ## Wake-on-LAN
-----------
This module provides a wrapper around the wakeonlan tool. This module provides a wrapper around the wakeonlan tool.
Yum ## Yum
---
Defines yum aliases. Defines yum aliases.

View File

@ -1,52 +1,53 @@
Archive # Archive
=======
Provides functions to create, list, and extract archives. Provides functions to create, list, and extract archives.
Functions This module must be loaded _before_ the [_`completion`_][1] module so that the
--------- provided completion definitions are loaded automatically by _`completion`_
module.
- `archive` creates an archive based on the provided archive name. ## Functions
- `lsarchive` lists the contents of one or more archives.
- `unarchive` extracts the contents of one or more archives.
Supported Formats - `archive` creates an archive based on the provided archive name.
----------------- - `lsarchive` lists the contents of one or more archives.
- `unarchive` extracts the contents of one or more archives.
## Supported Formats
The following archive formats are supported when the required utilities are The following archive formats are supported when the required utilities are
installed: installed:
- *.tar.gz*, *.tgz* require `tar` (optionally `pigz`). - _.tar.gz_, _.tgz_ require `tar` (optionally `pigz`).
- *.tar.bz2*, *.tbz* require `tar` (optionally `pbzip2`). - _.tar.bz2_, _.tbz_ require `tar` (optionally `pbzip2`).
- *.tar.xz*, *.txz* require `tar` with *xz* support. - _.tar.xz_, _.txz_ require `tar` with _xz_ support.
- *.tar.zma*, *.tlz* require `tar` with *lzma* support. - _.tar.zma_, _.tlz_ require `tar` with _lzma_ support.
- *.tar* requires `tar`. - _.tar_ requires `tar`.
- *.gz* requires `gunzip`. - _.gz_ requires `gunzip`.
- *.bz2* requires `bunzip2`. - _.bz2_ requires `bunzip2`.
- *.xz* requires `unxz`. - _.xz_ requires `unxz`.
- *.lzma* requires `unlzma`. - _.lzma_ requires `unlzma`.
- *.Z* requires `uncompress`. - _.Z_ requires `uncompress`.
- *.zip*, *.jar* requires `unzip`. - _.zip_, _.jar_ requires `unzip`.
- *.rar* requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`. - _.rar_ requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`.
- *.7z* requires `7za`. - _.7z_ requires `7za`.
- *.deb* requires `ar`, `tar`. - _.deb_ requires `ar`, `tar`.
Additionally, if `pigz` and/or `pbzip2` are installed, `archive` will use them Additionally, if `pigz` and/or `pbzip2` are installed, `archive` will use them
over their traditional counterparts, `gzip` and `bzip2` respectively, to take over their traditional counterparts, `gzip` and `bzip2` respectively, to take
full advantage of all available CPU cores for compression. full advantage of all available CPU cores for compression.
Alternatives ## Alternatives
------------
Specifically on macOS, [The Unarchiver][1] provides a similar command line tool Specifically on macOS, [The Unarchiver][2] provides a similar command line tool
which doesn't depend on a number of other programs being installed. which doesn't depend on a number of other programs being installed.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].* _The authors of this module should be contacted via the [issue tracker][3]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Matt Hamilton](https://github.com/Eriner) - [Matt Hamilton](https://github.com/Eriner)
[1]: https://theunarchiver.com/command-line [1]: ../completion#readme
[2]: https://theunarchiver.com/command-line
[3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -10,4 +10,4 @@
_arguments \ _arguments \
'(-v --verbose)'{-v,--remove}'[verbose archive listing]' \ '(-v --verbose)'{-v,--remove}'[verbose archive listing]' \
"*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z)(-.)'" && return 0 "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|zst|jar|rar|7z)(-.)'" && return 0

View File

@ -10,4 +10,4 @@
_arguments \ _arguments \
'(-r --remove)'{-r,--remove}'[remove archive]' \ '(-r --remove)'{-r,--remove}'[remove archive]' \
"*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z|deb)(-.)'" && return 0 "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|zst|jar|rar|7z|deb)(-.)'" && return 0

View File

@ -1,4 +1,3 @@
#!/usr/bin/env zsh
# #
# Creates archive file # Creates archive file
# #
@ -8,7 +7,7 @@
# function archive { # function archive {
local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin _zstd_bin
if (( $# < 2 )); then if (( $# < 2 )); then
cat >&2 <<EOF cat >&2 <<EOF
@ -16,7 +15,7 @@ usage: $0 [archive_name.zip] [/path/to/include/into/archive ...]
Where 'archive.zip' uses any of the following extensions: Where 'archive.zip' uses any of the following extensions:
.tar.gz, .tar.bz2, .tar.xz, .tar.lzma, .tar, .zip, .rar, .7z .tar.gz, .tar.bz2, .tar.xz, .tar.lzma, .tar.zst, .tar, .zip, .rar, .7z
There is no '-v' switch; all operations are verbose. There is no '-v' switch; all operations are verbose.
EOF EOF
@ -54,11 +53,14 @@ else
_bzip2_bin='bzip2' _bzip2_bin='bzip2'
fi fi
_zstd_bin='zstd'
case "${archive_name}" in case "${archive_name}" in
(*.tar.gz|*.tgz) tar -cvf "${archive_name}" --use-compress-program="${_gzip_bin}" "${=path_to_archive}" ;; (*.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.bz2|*.tbz|*.tbz2) tar -cvf "${archive_name}" --use-compress-program="${_bzip2_bin}" "${=path_to_archive}" ;;
(*.tar.xz|*.txz) tar -cvf "${archive_name}" --use-compress-program="${_xz_bin}" "${=path_to_archive}" ;; (*.tar.xz|*.txz) tar -cvf "${archive_name}" --use-compress-program="${_xz_bin}" "${=path_to_archive}" ;;
(*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${=path_to_archive}" ;; (*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${=path_to_archive}" ;;
(*.tar.zst|*.tzst) tar -cvf "${archive_name}" --use-compress-program="${_zstd_bin}" "${=path_to_archive}" ;;
(*.tar) tar -cvf "${archive_name}" "${=path_to_archive}" ;; (*.tar) tar -cvf "${archive_name}" "${=path_to_archive}" ;;
(*.zip|*.jar) zip -r "${archive_name}" "${=path_to_archive}" ;; (*.zip|*.jar) zip -r "${archive_name}" "${=path_to_archive}" ;;
(*.rar) rar a "${archive_name}" "${=path_to_archive}" ;; (*.rar) rar a "${archive_name}" "${=path_to_archive}" ;;

View File

@ -41,6 +41,7 @@ while (( $# > 0 )); do
(*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \
&& tar --lzma -t${verbose:+v}f "$1" \ && tar --lzma -t${verbose:+v}f "$1" \
|| lzcat "$1" | tar x${verbose:+v}f - ;; || lzcat "$1" | tar x${verbose:+v}f - ;;
(*.tar.zst|*.tzst) tar -I zstd -t${verbose:+v}f "$1" ;;
(*.tar) tar t${verbose:+v}f "$1" ;; (*.tar) tar t${verbose:+v}f "$1" ;;
(*.zip|*.jar) unzip -l${verbose:+v} "$1" ;; (*.zip|*.jar) unzip -l${verbose:+v} "$1" ;;
(*.rar) ( (( $+commands[unrar] )) \ (*.rar) ( (( $+commands[unrar] )) \

View File

@ -12,7 +12,7 @@ local success
local file_name local file_name
local file_path local file_path
local extract_dir local extract_dir
local _gzip_bin _bzip2_bin _xz_bin local _gzip_bin _bzip2_bin _xz_bin _zstd_bin
if (( $# == 0 )); then if (( $# == 0 )); then
cat >&2 <<EOF cat >&2 <<EOF
@ -54,6 +54,8 @@ else
_bzip2_bin='bzip2' _bzip2_bin='bzip2'
fi fi
_zstd_bin='zstd'
while (( $# > 0 )); do while (( $# > 0 )); do
if [[ ! -s "$1" ]]; then if [[ ! -s "$1" ]]; then
print "$0: file not valid: $1" >&2 print "$0: file not valid: $1" >&2
@ -72,6 +74,7 @@ while (( $# > 0 )); do
(*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \
&& tar --lzma -xvf "$1" \ && tar --lzma -xvf "$1" \
|| lzcat "$1" | tar -xvf - ;; || lzcat "$1" | tar -xvf - ;;
(*.tar.zst|*.tzst) tar -xvf "$1" --use-compress-program="${_zstd_bin}" ;;
(*.tar) tar -xvf "$1" ;; (*.tar) tar -xvf "$1" ;;
(*.gz) gunzip "$1" ;; (*.gz) gunzip "$1" ;;
(*.bz2) bunzip2 "$1" ;; (*.bz2) bunzip2 "$1" ;;

View File

@ -1,61 +1,62 @@
Autosuggestions # Autosuggestions
===============
Integrates [zsh-autosuggestions][1] into Prezto, which implements the Integrates [zsh-autosuggestions][1] into Prezto, which implements the
[Fish shell][2]'s autosuggestions feature, where the user can type in any part [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 of a previously entered command and Zsh suggests commands as you type based on
history and completions. history and completions.
If this module is used in conjunction with the *syntax-highlighting* module, If this module is used in conjunction with the [_`syntax-highlighting`_][3]
this module must be loaded **after** the *syntax-highlighting* module. module, this module must be loaded _after_ the _`syntax-highlighting`_ module.
If this module is used in conjunction with the *history-substring-search* If this module is used in conjunction with the [_`history-substring-search`_][4]
module, this module must be loaded **after** the *history-substring-search* module, this module must be loaded _after_ the _`history-substring-search`_
module. module.
Contributors To elaborate, the relative order of loading the modules would be
------------ _`autosuggestions`_, _`syntax-highlighting`_ and _`history-substring-search`_.
## Contributors
New features and bug fixes should be submitted to the [zsh-autosuggestions][1] 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 project according to its rules and regulations. This module will be synchronized
against it. against it.
Settings ## Settings
--------
### Highlighting ### Highlighting
If colors are enabled, *autosuggestions* will automatically highlight If colors are enabled, _autosuggestions_ will automatically highlight
positive results. positive results.
To enable highlighting for this module only, add the following line to To enable highlighting for this module only, add the following line to
*zpreztorc*: _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:autosuggestions' color 'yes' zstyle ':prezto:module:autosuggestions' color 'yes'
``` ```
To set the query found color, add the following line to *zpreztorc*: To set the query found color, add the following line to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:autosuggestions:color' found '' zstyle ':prezto:module:autosuggestions:color' found ''
``` ```
Troubleshooting ## Troubleshooting
---------------
### Autosuggestions from previous sessions don't show up ### Autosuggestions from previous sessions don't show up
For autosuggestions from previous shell sessions to work, please make sure you For autosuggestions from previous shell sessions to work, please make sure you
also have the `history` module enabled. also have the `history` module enabled.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].* _The authors of this module should be contacted via the [issue tracker][5]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/tarruda/zsh-autosuggestions [1]: https://github.com/tarruda/zsh-autosuggestions
[2]: http://fishshell.com [2]: https://fishshell.com
[3]: https://github.com/sorin-ionescu/prezto/issues [3]: ../syntax-highlighting#readme
[4]: ../history-substring-search#readme
[5]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,22 +1,21 @@
Command-Not-Found # Command-Not-Found
=================
When you try to use a command that is not available locally, searches When you try to use a command that is not available locally, searches the
the package manager for a package offering that command and suggests package manager for a package offering that command and suggests the proper
the proper install command. install command.
Debian and Arch Linux based distributions use the [`command-not-found`][1] tool. 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 macOS uses Homebrew's [`command-not-found` clone][2]. Note that unless you have
[follow the instructions][3] to tap the `command-not-found` homebrew repository. a recent version of Homebrew installed, you might also need to tap the
`command-not-found` Homebrew repository [following the instructions][3].
## Authors
Authors _The authors of this module should be contacted via the [issue tracker][4]._
-------
*The authors of this module should be contacted via the [issue tracker][4].* - [Joseph Booker](https://github.com/sargas)
- [Indrajit Raychaudhuri](https://github.com/indrajitr)
- [Joseph Booker](https://github.com/sargas)
[1]: https://code.launchpad.net/command-not-found [1]: https://code.launchpad.net/command-not-found
[2]: https://github.com/Homebrew/homebrew-command-not-found [2]: https://github.com/Homebrew/homebrew-command-not-found

View File

@ -13,30 +13,10 @@ if [[ -s '/etc/zsh_command_not_found' ]]; then
elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then
source '/usr/share/doc/pkgfile/command-not-found.zsh' source '/usr/share/doc/pkgfile/command-not-found.zsh'
# Load command-not-found on macOS when Homebrew tap is configured. # Load command-not-found on macOS when Homebrew tap is configured.
# To avoid performance penalty, we do not use Homebrew's ruby based command elif (( $+commands[brew] )) \
# lookup mechanism (viz., `brew command command-not-found-init`) and instead && [[ -s "${hb_cnf_handler::="$(brew --repository 2> /dev/null)"/Library/Taps/homebrew/homebrew-command-not-found/handler.sh}" ]]; then
# `find` it ourselves from `TAP_DIRECTORY` defined internally in Homebrew. source "$hb_cnf_handler"
elif (( $+commands[brew] )); then unset hb_cnf_handler
cnf_command=(
"$(brew --repository 2> /dev/null)"/Library/Taps/*/*/cmd/brew-command-not-found-init(|.rb)(.N)
)
if (( $#cnf_command )); then
cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/brew-command-not-found-cache.zsh"
if [[ "${${(@o)cnf_command}[1]}" -nt "$cache_file" \
|| "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
|| ! -s "$cache_file" ]]; then
mkdir -p "$cache_file:h"
# brew command-not-found-init is slow; cache its output.
brew command-not-found-init >! "$cache_file" 2> /dev/null
fi
source "$cache_file"
unset cache_file
fi
unset cnf_command
# Return if requirements are not found. # Return if requirements are not found.
else else
return 1 return 1

View File

@ -1,53 +1,55 @@
Completion # Completion
==========
Loads and configures tab completion and provides additional completions from Loads and configures <kbd>TAB</kbd> completion and provides additional
the [zsh-completions][1] project. completions from the [zsh-completions][1] project.
This module must be loaded **after** the *utility* module. This module must be loaded late _after_ the _`utility`_ module and all other
modules that provide completion definitions.
Options ## Options
-------
- `COMPLETE_IN_WORD` complete from both ends of a word. - `COMPLETE_IN_WORD` complete from both ends of a word.
- `ALWAYS_TO_END` move cursor to the end of a completed word. - `ALWAYS_TO_END` move cursor to the end of a completed word.
- `PATH_DIRS` perform path search even on command names with slashes. - `PATH_DIRS` perform path search even on command names with slashes.
- `AUTO_MENU` show completion menu on a successive tab press. - `AUTO_MENU` show completion menu on a successive <kbd>TAB</kbd> press.
- `AUTO_LIST` automatically list choices on ambiguous completion. - `AUTO_LIST` automatically list choices on ambiguous completion.
- `AUTO_PARAM_SLASH` if completed parameter is a directory, add a trailing slash. - `AUTO_PARAM_SLASH` if completed parameter is a directory, add a trailing
- `EXTENDED_GLOB` needed for file modification glob modifiers with compinit. slash (`/`).
- `MENU_COMPLETE` do not autoselect the first completion entry. - `EXTENDED_GLOB` needed for file modification glob modifiers with _compinit_.
- `FLOW_CONTROL` disable start/stop characters in shell editor. - `MENU_COMPLETE` do not autoselect the first completion entry.
- `FLOW_CONTROL` disable start/stop characters in shell editor.
Settings ## Variables
--------
### Ignore */etc/hosts* Entries - `LS_COLORS` used by default for Zsh [standard style][2] 'list-colors'.
To ignore certain entries from static */etc/hosts* for host completion, add the ## Settings
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 ### Ignore _`/etc/hosts`_ Entries
ignored during host completion. However, some of the entries ignored from
*/etc/hosts* still might appear during completion because of their presence in To ignore certain entries from static _`/etc/hosts`_ for host completion, add
*ssh* configuration or history). the following lines in _`${ZDOTDIR:-$HOME}/.zpreztorc`_ with the IP addresses of
the hosts as they appear in _`/etc/hosts`_. Both IP address and the associated
hostname(s) will be ignored during host completion. However, some of the entries
ignored from _`/etc/hosts`_ still might appear during completion because of
their presence in _ssh_ configuration or history).
```sh ```sh
zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \ zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \
'0.0.0.0' '127.0.0.1' '0.0.0.0' '127.0.0.1'
``` ```
Contributors ## Contributors
------------
Completions should be submitted to the [zsh-completions][1] project according Completions should be submitted to the [zsh-completions][1] project according to
to its rules and regulations. This module will be synchronized against it. its rules and regulations. This module will be synchronized against it.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].* _The authors of this module should be contacted via the [issue tracker][3]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/zsh-users/zsh-completions [1]: https://github.com/zsh-users/zsh-completions
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://zsh.sourceforge.net/Doc/Release/Completion-System.html#Standard-Styles
[3]: https://github.com/sorin-ionescu/prezto/issues

@ -1 +1 @@
Subproject commit ed4ff5384b03aa775a57d4c9588c88850026b0b3 Subproject commit 11ad0a45ff1695cac00e86c687cce6fa1fd1cdbd

View File

@ -7,26 +7,44 @@
# #
# Return if requirements are not found. # Return if requirements are not found.
if [[ "$TERM" == 'dumb' ]]; then if [[ $TERM == 'dumb' ]]; then
return 1 return 1
fi fi
# Add zsh-completions to $fpath. # Add zsh-completions to $fpath.
fpath=("${0:h}/external/src" $fpath) fpath=(${0:h}/external/src $fpath)
# Add completion for keg-only brewed curl when available.
if (( $+commands[brew] )) \
&& [[ -d "${curl_prefix::="$(brew --prefix 2> /dev/null)"/opt/curl}" ]]; then
fpath=($curl_prefix/share/zsh/site-functions $fpath)
fi
unset curl_prefix
# #
# Options # Options
# #
setopt COMPLETE_IN_WORD # Complete from both ends of a word. setopt COMPLETE_IN_WORD # Complete from both ends of a word.
setopt ALWAYS_TO_END # Move cursor to the end of a completed word. setopt ALWAYS_TO_END # Move cursor to the end of a completed word.
setopt PATH_DIRS # Perform path search even on command names with slashes. setopt PATH_DIRS # Perform path search even on command names with slashes.
setopt AUTO_MENU # Show completion menu on a successive tab press. setopt AUTO_MENU # Show completion menu on a successive tab press.
setopt AUTO_LIST # Automatically list choices on ambiguous completion. setopt AUTO_LIST # Automatically list choices on ambiguous completion.
setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash. setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit.
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry. unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor. unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
#
# Variables
#
# Standard style used by default for 'list-colors'
LS_COLORS=${LS_COLORS:-'di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'}
#
# Initialization
#
# Load and initialize the completion system ignoring insecure directories with a # 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 # cache time of 20 hours, so it should almost always regenerate the first time a
@ -40,6 +58,8 @@ if [[ $_comp_path(#qNmh-20) ]]; then
else else
mkdir -p "$_comp_path:h" mkdir -p "$_comp_path:h"
compinit -i -d "$_comp_path" compinit -i -d "$_comp_path"
# Keep $_comp_path younger than cache time even if it isn't regenerated.
touch "$_comp_path"
fi fi
unset _comp_path unset _comp_path
@ -47,6 +67,10 @@ unset _comp_path
# Styles # Styles
# #
# Defaults.
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
# Use caching to make completion for commands such as dpkg and apt usable. # Use caching to make completion for commands such as dpkg and apt usable.
zstyle ':completion::complete:*' use-cache on zstyle ':completion::complete:*' use-cache on
zstyle ':completion::complete:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompcache" zstyle ':completion::complete:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompcache"
@ -69,7 +93,6 @@ zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f'
zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f' zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f'
zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f' zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f'
zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%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:*' format ' %F{yellow}-- %d --%f'
zstyle ':completion:*' group-name '' zstyle ':completion:*' group-name ''
zstyle ':completion:*' verbose yes zstyle ':completion:*' verbose yes
@ -90,7 +113,6 @@ zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
# Directories # Directories
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
zstyle ':completion:*:*:cd:*:directory-stack' menu yes select zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand' zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'

View File

@ -1,34 +1,30 @@
Directory # Directory
=========
Sets directory options and defines directory aliases. Sets directory options and defines directory aliases.
Options ## Options
-------
- `AUTO_CD` auto changes to a directory without typing `cd`. - `AUTO_CD` auto changes to a directory without typing `cd`.
- `AUTO_PUSHD` pushes the old directory onto the stack on `cd`. - `AUTO_PUSHD` pushes the old directory onto the stack on `cd`.
- `PUSHD_IGNORE_DUPS` does not store duplicates in the stack. - `PUSHD_IGNORE_DUPS` does not store duplicates in the stack.
- `PUSHD_SILENT` does not print the directory stack after `pushd` or `popd`. - `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. - `PUSHD_TO_HOME` pushes to the home directory when no argument is given.
- `CDABLE_VARS` changes directory to a path stored in a variable. - `CDABLE_VARS` changes directory to a path stored in a variable.
- `MULTIOS` writes to multiple descriptors. - `MULTIOS` writes to multiple descriptors.
- `EXTENDED_GLOB` uses extended globbing syntax. - `EXTENDED_GLOB` uses extended globbing syntax.
- `CLOBBER` does not overwrite existing files with `>` and `>>`. Use `>!` and - `CLOBBER` does not overwrite existing files with `>` and `>>`. Use `>!` and
`>>!` to bypass. `>>!` to bypass.
Aliases ## Aliases
-------
- `d` prints the contents of the directory stack. - `d` prints the contents of the directory stack.
- `1 ... 9` changes the directory to the **n** previous one. - `1 ... 9` changes the directory to the **n** previous one.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].* _The authors of this module should be contacted via the [issue tracker][1]._
- [James Cox](https://github.com/imajes) - [James Cox](https://github.com/imajes)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,29 +1,25 @@
DNF # DNF
===
Defines [dnf][1] aliases. Defines [dnf][1] aliases.
Aliases ## Aliases
-------
- `dnfc` removes package(s) and leaves. - `dnfc` removes package(s) and leaves.
- `dnfi` installs package(s). - `dnfi` installs package(s).
- `dnfh` displays history. - `dnfh` displays history.
- `dnfl` lists packages. - `dnfl` lists packages.
- `dnfL` lists installed packages. - `dnfL` lists installed packages.
- `dnfq` displays package information. - `dnfq` displays package information.
- `dnfr` removes package(s). - `dnfr` removes package(s).
- `dnfs` searches for a package. - `dnfs` searches for a package.
- `dnfu` updates packages. - `dnfu` updates packages.
- `dnfU` upgrades packages. - `dnfU` upgrades packages.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].* _The authors of this module should be contacted via the [issue tracker][2]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://fedoraproject.org/wiki/Features/DNF [1]: https://fedoraproject.org/wiki/Features/DNF
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,4 +1,4 @@
# ZSH Docker Aliases # Docker
Defines [Docker][1] aliases and functions. Defines [Docker][1] aliases and functions.
@ -21,14 +21,15 @@ Defines [Docker][1] aliases and functions.
- `dkli` Log in to a Docker registry - `dkli` Log in to a Docker registry
- `dklo` Log out from a Docker registry - `dklo` Log out from a Docker registry
- `dkls` is alias for `dkps` - `dkls` is alias for `dkps`
- `dkp` Pause all processes within one or more containers<Paste> - `dkp` Pause all processes within one or more containers
- `dkP` Unpause all processes within one or more containers - `dkP` Unpause all processes within one or more containers
- `dkpl` Pull an image or a repository from a registry - `dkpl` Pull an image or a repository from a registry
- `dkph` Push an image or a repository to a registry - `dkph` Push an image or a repository to a registry
- `dkps` List containers - `dkps` List containers
- `dkpsa` List all containers (default lists just running) - `dkpsa` List all containers (default lists just running)
- `dkr` Run a command in a new container - `dkr` Run a command in a new container
- `dkR` Run an interactive command in a new container and automatically remove the container when it exits - `dkR` Run an interactive command in a new container and automatically remove
the container when it exits
- `dkRe` like `dkR` and set entry point to `/bin/bash` - `dkRe` like `dkR` and set entry point to `/bin/bash`
- `dkrm` Remove one or more containers - `dkrm` Remove one or more containers
- `dkrmi` Remove one or more images - `dkrmi` Remove one or more images
@ -39,13 +40,14 @@ Defines [Docker][1] aliases and functions.
- `dks` Start one or more stopped containers - `dks` Start one or more stopped containers
- `dkS` Restart a container - `dkS` Restart a container
- `dkss` Display a live stream of container(s) resource usage statistics - `dkss` Display a live stream of container(s) resource usage statistics
- `dksv` Save one or more images to a tar archive (streamed to STDOUT by default) - `dksv` Save one or more images to a tar archive (streamed to STDOUT by
default)
- `dkt` Tag an image into a repository - `dkt` Tag an image into a repository
- `dktop` Display the running processes of a container - `dktop` Display the running processes of a container
- `dkup` Update configuration of one or more containers - `dkup` Update configuration of one or more containers
- `dkV` Manage Docker volumes - `dkV` Manage Docker volumes
- `dkv` Show the Docker version information - `dkv` Show the Docker version information
- `dkw` Block until a container stops, then print its exit code<Paste> - `dkw` Block until a container stops, then print its exit code
- `dkx` Stop a running container - `dkx` Stop a running container
#### container (C) #### container (C)
@ -65,7 +67,8 @@ Defines [Docker][1] aliases and functions.
- `dkCS` Restart one or more containers - `dkCS` Restart one or more containers
- `dkCrm` Remove one or more containers - `dkCrm` Remove one or more containers
- `dkCr` Run a command in a new container - `dkCr` Run a command in a new container
- `dkCR` Run an interactive command in a new container and automatically remove the container when it exits - `dkCR` Run an interactive command in a new container and automatically remove
the container when it exits
- `dkCRe` like `dkCR` and set entry point to `/bin/bash` - `dkCRe` like `dkCR` and set entry point to `/bin/bash`
- `dkCs` Start one or more stopped containers - `dkCs` Start one or more stopped containers
- `dkCss` Display a live stream of container(s) resource usage statistics - `dkCss` Display a live stream of container(s) resource usage statistics
@ -87,7 +90,8 @@ Defines [Docker][1] aliases and functions.
- `dkIpl` Pull an image or a repository from a registry - `dkIpl` Pull an image or a repository from a registry
- `dkIph` Push an image or a repository to a registry - `dkIph` Push an image or a repository to a registry
- `dkIrm` Remove one or more images - `dkIrm` Remove one or more images
- `dkIsv` Save one or more images to a tar archive (streamed to STDOUT by default) - `dkIsv` Save one or more images to a tar archive (streamed to STDOUT by
default)
- `dkIt` Tag an image into a repository - `dkIt` Tag an image into a repository
#### volume (V) #### volume (V)
@ -130,8 +134,10 @@ Defines [Docker][1] aliases and functions.
- `dkm` is short for `docker-machine` - `dkm` is short for `docker-machine`
- `dkma` Get or set the active machine - `dkma` Get or set the active machine
- `dkmcp` Copy files between machines - `dkmcp` Copy files between machines
- `dkmd` Set up the default machine ; alowing you to use `dkme` without arguments - `dkmd` Set up the default machine ; alowing you to use `dkme` without
- `dkme` Set up the environment for the Docker client (eg: `dkme staging` to toggle to staging) arguments
- `dkme` Set up the environment for the Docker client (eg: `dkme staging` to
toggle to staging)
- `dkmin` Inspect information about a machine - `dkmin` Inspect information about a machine
- `dkmip` Get the IP address of a machine - `dkmip` Get the IP address of a machine
- `dkmk` Kill a machine - `dkmk` Kill a machine
@ -171,8 +177,8 @@ Defines [Docker][1] aliases and functions.
- `dkcsc` Set number of containers for a service - `dkcsc` Set number of containers for a service
- `dkcS` Restart services - `dkcS` Restart services
- `dkcu` Create and start containers - `dkcu` Create and start containers
- `dkcU` Create and start containers in detached mode: - `dkcU` Create and start containers in detached mode: Run containers in the
Run containers in the background, print new container names background, print new container names
- `dkcV` Show the Docker-Compose version information - `dkcV` Show the Docker-Compose version information
- `dkcx` Stop services - `dkcx` Stop services

View File

@ -1,10 +1,8 @@
Dpkg # Dpkg
====
Defines [dpkg][1] aliases and functions. Defines [_dpkg_][1] aliases and functions.
Aliases ## Aliases
-------
- `debc` cleans the cache. - `debc` cleans the cache.
- `debf` displays a file's package. - `debf` displays a file's package.
@ -20,22 +18,20 @@ Aliases
- `deb-kclean` removes all kernel images and headers, except for the ones in - `deb-kclean` removes all kernel images and headers, except for the ones in
use. use.
Functions ## Functions
---------
- `deb-clone` generates a script that can be used to duplicate a dpkg-based - `deb-clone` generates a script that can be used to duplicate a `dpkg`-based
system. system.
- `deb-history` displays dpkg history. - `deb-history` displays `dpkg` history.
- `deb-kbuild` makes a dpkg Linux kernel package. - `deb-kbuild` makes a `dpkg` Linux kernel package.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].* _The authors of this module should be contacted via the [issue tracker][2]._
- [Daniel Bolton](https://github.com/dbb) - [Daniel Bolton](https://github.com/dbb)
- [Benjamin Boudreau](https://github.com/dreur) - [Benjamin Boudreau](https://github.com/dreur)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://wiki.debian.org/Teams/Dpkg [1]: https://wiki.debian.org/Teams/Dpkg
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,34 +1,30 @@
Editor # Editor
======
Sets editor specific key bindings options and variables. Sets editor specific key bindings options and variables.
Options ## Options
-------
- `BEEP` beep on error in line editor. - `BEEP` beep on error in line editor.
Variables ## Variables
---------
- `WORDCHARS` treat a given set of characters as part of a word. - `WORDCHARS` treat a given set of characters as part of a word.
Settings ## Settings
--------
### Key bindings ### Key bindings
To enable key bindings, add the following to *zpreztorc*, and replace 'bindings' To enable key bindings, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_,
with 'emacs' or 'vi'. and replace `'<bindings>'` with `'emacs'` or `'vi'`.
```sh ```sh
zstyle ':prezto:module:editor' key-bindings 'bindings' zstyle ':prezto:module:editor' key-bindings '<bindings>'
``` ```
### Dot Expansion ### Dot Expansion
To enable the auto conversion of .... to ../.., add the following to To enable the auto conversion of .... to ../.., add the following to
*zpreztorc*. _`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh ```sh
zstyle ':prezto:module:editor' dot-expansion 'yes' zstyle ':prezto:module:editor' dot-expansion 'yes'
@ -36,15 +32,14 @@ zstyle ':prezto:module:editor' dot-expansion 'yes'
### PS Context ### PS Context
To enable the prompt context to be set, add the following to your To enable the prompt context to be set, add the following to
*zpreztorc*. _`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh ```sh
zstyle ':prezto:module:editor' ps-context 'yes' zstyle ':prezto:module:editor' ps-context 'yes'
``` ```
Theming ## Theming
-------
To indicate when the editor is in the primary keymap (emacs or viins), add To indicate when the editor is in the primary keymap (emacs or viins), add
the following to your `theme_prompt_setup` function. the following to your `theme_prompt_setup` function.
@ -81,29 +76,27 @@ To indicate when the editor is completing, add the following to your
zstyle ':prezto:module:editor:info:completing' format '...' zstyle ':prezto:module:editor:info:completing' format '...'
``` ```
Then add `$editor_info[context]`, where context is *keymap*, *insert*, or Then add `$editor_info[context]`, where context is _keymap_, _insert_, or
*overwrite*, to `$PROMPT` or `$RPROMPT`. _overwrite_, to `$PROMPT` or `$RPROMPT`.
Convenience Functions ## Convenience Functions
---------------------
### bindkey-all ### bindkey-all
Provides a function `bindkey-all` which can be useful for checking how all of the Provides a function `bindkey-all` which can be useful for checking how all of
keys are bound. Normal `bindkey` command will only list the keys bound for one the keys are bound. Normal `bindkey` command will only list the keys bound for
keymap, which is not as useful if you want to grep through the output. The 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 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. 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 It will also pass through arguments so you can use bindkey-all to set bindings
for all keymaps at once. If provided arguments it will *not* print out the for all keymaps at once. If provided arguments it will _not_ print out the
names of each of the keymaps, and just run the command for each keymap. names of each of the keymaps, and just run the command for each keymap.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].* _The authors of this module should be contacted via the [issue tracker][1]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: https://github.com/sorin-ionescu/prezto/issues

View File

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

View File

@ -1,56 +1,52 @@
Environment # Environment
===========
Sets general shell options and defines environment variables. Sets general shell options and defines environment variables.
This module must be loaded first. This module must be loaded first.
Contributors ## Contributors
------------
This module **MUST NOT** rely on any command not built in Zsh. This module **MUST NOT** rely on any command that is not built in Zsh.
Non-interactive environment variables should be defined in [`zshenv`][1]. Non-interactive environment variables should be defined in
[_`${ZDOTDIR:-$HOME}/.zshenv`_][1].
Options ## Options
-------
### General ### General
- `COMBINING_CHARS` combine zero-length punctuation characters (accents) with - `COMBINING_CHARS` combine zero-length punctuation characters (accents) with
the base character. the base character.
- `INTERACTIVE_COMMENTS` enable comments in interactive shell. - `INTERACTIVE_COMMENTS` enable comments in interactive shell.
- `RC_QUOTES` allow 'Henry''s Garage' instead of 'Henry'\''s Garage'. - `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. - `MAIL_WARNING` don't print a warning message if a mail file has been accessed.
### Jobs ### Jobs
- `LONG_LIST_JOBS` list jobs in the long format by default. - `LONG_LIST_JOBS` list jobs in the long format by default.
- `AUTO_RESUME` attempt to resume existing job before creating a new process. - `AUTO_RESUME` attempt to resume existing job before creating a new process.
- `NOTIFY` report status of background jobs immediately. - `NOTIFY` report status of background jobs immediately.
- `BG_NICE` don't run all background jobs at a lower priority. - `BG_NICE` don't run all background jobs at a lower priority.
- `HUP` don't kill jobs on shell exit. - `HUP` don't kill jobs on shell exit.
- `CHECK_JOBS` don't report on jobs when shell exit. - `CHECK_JOBS` don't report on jobs when shell exit.
Variables ## Variables
---------
### Termcap ### Termcap
- `LESS_TERMCAP_mb` begins blinking. - `LESS_TERMCAP_mb` begins blinking.
- `LESS_TERMCAP_md` begins bold. - `LESS_TERMCAP_md` begins bold.
- `LESS_TERMCAP_me` ends mode. - `LESS_TERMCAP_me` ends mode.
- `LESS_TERMCAP_se` ends standout-mode. - `LESS_TERMCAP_se` ends standout-mode.
- `LESS_TERMCAP_so` begins standout-mode. - `LESS_TERMCAP_so` begins standout-mode.
- `LESS_TERMCAP_ue` ends underline. - `LESS_TERMCAP_ue` ends underline.
- `LESS_TERMCAP_us` begins underline. - `LESS_TERMCAP_us` begins underline.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].* _The authors of this module should be contacted via the [issue tracker][2]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zshenv [1]: ../../runcoms#zshenv
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -18,11 +18,9 @@ if [[ ${ZSH_VERSION} != 5.1.1 && ${TERM} != "dumb" ]]; then
if is-at-least 5.2; then if is-at-least 5.2; then
autoload -Uz bracketed-paste-url-magic autoload -Uz bracketed-paste-url-magic
zle -N bracketed-paste bracketed-paste-url-magic zle -N bracketed-paste bracketed-paste-url-magic
else elif is-at-least 5.1; then
if is-at-least 5.1; then autoload -Uz bracketed-paste-magic
autoload -Uz bracketed-paste-magic zle -N bracketed-paste bracketed-paste-magic
zle -N bracketed-paste bracketed-paste-magic
fi
fi fi
autoload -Uz url-quote-magic autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic zle -N self-insert url-quote-magic

View File

@ -1,44 +1,41 @@
Fasd # Fasd
====
[Fasd][1] is a command-line productivity booster, inspired by tools like [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 [autojump][2], [z][3] and [v][4], it offers quick access to files and
directories by keeping track of files and directories that were previously directories by keeping track of files and directories that were previously
accessed. accessed.
For completion to work, this module must be loaded **after** the *completion* For shell completion to work, this module must be loaded _after_ the
module. [_`completion`_][5] module.
The Prezto Fasd configuration differs from the default. The default aliases have The Prezto Fasd configuration differs from the default. The default aliases have
been disabled. been disabled.
Installation ## Installation
------------
`fasd` is bundled with prezto as a git submodule. Alternatively, you can manually install `fasd`. `fasd` is bundled with prezto as a git submodule. Alternatively, you can
If a manual install is found, it will be used instead of the bundled version. manually install `fasd`. If a manual installation is found, it will be used
instead of the bundled version.
Aliases ## Aliases
-------
- `j` changes the current working directory interactively. - `j` changes the current working directory interactively.
Completion ## Completion
----------
Type `,`, `f,`, `d,` in front of a comma-separated query or type `,,`, `,,f`, 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>. `,,d` at the end of a comma-separated query then hit <kbd>TAB</kbd>.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][5].* _The authors of this module should be contacted via the [issue tracker][6]._
- [Wei Dai](https://github.com/clvv) - [Wei Dai](https://github.com/clvv)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/clvv/fasd [1]: https://github.com/clvv/fasd
[2]: https://github.com/joelthelion/autojump [2]: https://github.com/joelthelion/autojump
[3]: https://github.com/rupa/z [3]: https://github.com/rupa/z
[4]: https://github.com/rupa/v [4]: https://github.com/rupa/v
[5]: https://github.com/sorin-ionescu/prezto/issues [5]: ../completion#readme
[6]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,39 +1,45 @@
Git # Git
===
Enhances the [Git][1] distributed version control system by providing aliases, Enhances the [Git][1] distributed version control system by providing aliases,
functions and by exposing repository status information to prompts. functions and by exposing repository status information to prompts.
Git **1.7.2** is the [minimum required version][7]. This module must be loaded _before_ the [_`completion`_][13] module so that the
provided completion definitions are loaded automatically by _`completion`_
module.
Settings **Note:** Git **2.11** is the minimum required version for better
-------- [git-rev-list][7] and [git-submodule][14] support.
## Settings
### Log ### Log
The format of the [git-log][8] output is configurable via the following style, To configure the format of the [git-log][8] output, add the following to
where context is *brief*, *oneline*, and *medium*, which will be passed to the _`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'<context>'` with `'brief'`,
`--pretty=format:` switch. `'oneline'`, and `'medium'`. This will be passed to the `--pretty=format:`
switch.
```sh ```sh
zstyle ':prezto:module:git:log:context' format '' zstyle ':prezto:module:git:log:context' format '<context>'
``` ```
### Status ### Status
Retrieving the status of a repository with submodules can take a long time. Retrieving the status of a repository with [git-submodule][9] can take a long
Submodules may be ignored when they are *dirty*, *untracked*, *all*, or *none*. time. To configure the submodules to ignore, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'<state>'` with `'dirty'`,
`'untracked'`, `'all'`, or `'none'`.
```sh ```sh
zstyle ':prezto:module:git:status:ignore' submodules 'all' zstyle ':prezto:module:git:status:ignore' submodules '<state>'
``` ```
This setting affects all aliases and functions that call `git-status`. This setting affects all aliases and functions that call `git-status`.
Aliases ## Aliases
-------
Aliases are enabled by default. You can disable them with: Aliases are enabled by default. To disable them, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh ```sh
zstyle ':prezto:module:git:alias' skip 'yes' zstyle ':prezto:module:git:alias' skip 'yes'
@ -41,288 +47,290 @@ zstyle ':prezto:module:git:alias' skip 'yes'
### Git ### Git
- `g` is short for `git`. - `g` is short for `git`.
### Branch ### Branch (b)
- `gb` lists, creates, renames, and deletes branches. - `gb` lists, creates, renames, and deletes branches.
- `gbc` creates a new branch. - `gbc` creates a new branch.
- `gbl` lists branches and their commits. (also `gbv`) - `gbl` lists branches and their commits. (also `gbv`)
- `gbL` lists all local and remote branches and their commits. - `gbL` lists all local and remote branches and their commits.
- `gbr` renames a branch. (also `gbm`) - `gbr` renames a branch. (also `gbm`)
- `gbR` renames a branch even if the new branch name already exists. (also - `gbR` renames a branch even if the new branch name already exists. (also
`gbM`) `gbM`)
- `gbs` lists branches and their commits with ancestry graphs. - `gbs` lists branches and their commits with ancestry graphs.
- `gbS` lists local and remote branches and their commits with ancestry - `gbS` lists local and remote branches and their commits with ancestry graphs.
graphs. - `gbV` lists branches with more verbose information about their commits.
- `gbV` lists branches with more verbose information about their commits. - `gbx` deletes a branch. (also `gbd`)
- `gbx` deletes a branch. (also `gbd`) - `gbX` deletes a branch irrespective of its merged status. (also `gbD`)
- `gbX` deletes a branch irrespective of its merged status. (also `gbD`)
### Commit (c)
### Commit - `gc` records changes to the repository.
- `gcS` records changes to the repository. (Signed)
- `gca` stages all modified and deleted files.
- `gcaS` stages all modified and deleted files. (Signed)
- `gcm` records changes to the repository with the given message.
- `gcmS` records changes to the repository with the given message. (Signed)
- `gcam` stages all modified and deleted files, and records changes to the
repository with the given message.
- `gco` checks out a branch or paths to work tree.
- `gcO` checks out hunks from the index or the tree interactively.
- `gcf` amends the tip of the current branch using the same log message as
_HEAD_.
- `gcfS` amends the tip of the current branch using the same log message as
_HEAD_. (Signed)
- `gcF` amends the tip of the current branch.
- `gcFS` amends the tip of the current branch. (Signed)
- `gcp` applies changes introduced by existing commits.
- `gcP` applies changes introduced by existing commits without committing.
- `gcr` reverts existing commits by reverting patches and recording new commits.
- `gcR` removes the _HEAD_ commit.
- `gcs` displays commits with various objects.
- `gcsS` displays commits with GPG signature.
- `gcl` lists lost commits.
- `gcy` displays commits yet to be applied to upstream in the short format.
- `gcY` displays commits yet to be applied to upstream.
- `gc` records changes to the repository. ### Conflict (C)
- `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.
- `gCl` lists unmerged files. ### Data (d)
- `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.
- `gd` displays information about files in the index and the work tree. ### Fetch (f)
- `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.
- `gf` downloads objects and references from another repository. ### Flow (F)
- `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`
- `gFi` is short for `git flow init` #### Feature (Ff)
#### Feature - `gFf` is short for `git flow feature`
- `gFfl` is short for `git flow feature list`
- `gFfs` is short for `git flow feature start`
- `gFff` is short for `git flow feature finish`
- `gFfp` is short for `git flow feature publish`
- `gFft` is short for `git flow feature track`
- `gFfd` is short for `git flow feature diff`
- `gFfr` is short for `git flow feature rebase`
- `gFfc` is short for `git flow feature checkout`
- `gFfm` is short for `git flow feature pull`
- `gFfx` is short for `git flow feature delete`
- `gFf` is short for `git flow feature` #### Bugfix (Fb)
- `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`
- `gFb` is short for `git flow bugfix` #### Release (Fl)
- `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`
- `gFl` is short for `git flow release` #### Hotfix (Fh)
- `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`
- `gFh` is short for `git flow hotfix` #### Support (Fs)
- `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`
- `gFs` is short for `git flow support` ### Grep (g)
- `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.
- `gg` displays lines matching a pattern. ### Index (i)
- `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).
- `gia` adds file contents to the index. ### Log (l)
- `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.
- `gl` displays the log. ### Merge (m)
- `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.
- `gm` joins two or more development histories together. ### Push (p)
- `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.
- `gp` updates remote refs along with associated objects. ### Rebase (r)
- `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.
- `gr` forward-ports local commits to the updated upstream head. ### Remote (R)
- `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.
- `gR` manages tracked repositories. ### Stash (s)
- `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.
- `gs` stashes the changes of the dirty working directory. ### Submodule (S)
- `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.
- `gS` initializes, updates, or inspects submodules. ### Tag (t)
- `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.
- `gt` lists tags or creates tag. ### Working directory (w)
- `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.
- `gws` displays working-tree status in the short format. - `gwd` displays changes between the working tree and the index (diff).
- `gwS` displays working-tree status. - `gwD` displays changes between the working tree and the index (word diff).
- `gwd` displays changes between the working tree and the index (diff). - `gwr` resets the current HEAD to the specified state, does not touch the
- `gwD` displays changes between the working tree and the index (word diff). index nor the working tree.
- `gwr` resets the current HEAD to the specified state, does not touch the - `gwR` resets the current HEAD, index and working tree to the specified state.
index nor the working tree. - `gwc` removes untracked files from the working tree (dry-run).
- `gwR` resets the current HEAD, index and working tree to the specified state. - `gwC` removes untracked files from the working tree.
- `gwc` removes untracked files from the working tree (dry-run). - `gwx` removes files from the working tree and from the index recursively.
- `gwC` removes untracked files from the working tree. - `gwX` removes files from the working tree and from the index recursively and
- `gwx` removes files from the working tree and from the index recursively. forcefully.
- `gwX` removes files from the working tree and from the index recursively and
forcefully.
### Shadows ### Shadows
The following aliases may shadow system commands: The following aliases may shadow system commands:
- `gb` shadows the [GB][9]. - `gb` shadows the [GB][10].
- `gm` shadows the [Graphics Magick image processor][11]. - `gm` shadows the [GraphicsMagick image processor][11].
- `gpt` shadows the [GUID partition table maintenance utility][4]. - `gpt` shadows the [GUID partition table maintenance utility][4].
- `gs` shadows the [Ghostscript interpreter and previewer][5]. - `gs` shadows the [Ghostscript interpreter and previewer][5].
If you frequently use the above commands, you may wish to remove said aliases If you frequently use the above commands, you may wish to remove said aliases
from this module or to disable them at the bottom of the zshrc with `unalias`. from this module or to disable them at the bottom of the zshrc with `unalias`.
@ -330,25 +338,23 @@ from this module or to disable them at the bottom of the zshrc with `unalias`.
You can temporarily bypass an alias by prefixing it with a backward slash: You can temporarily bypass an alias by prefixing it with a backward slash:
`\gpt`. `\gpt`.
Functions ## Functions
---------
- `git-branch-current` displays the current branch. - `git-branch-current` displays the current branch.
- `git-commit-lost` lists lost commits. - `git-commit-lost` lists lost commits.
- `git-dir` displays the path to the Git directory. - `git-dir` displays the path to the Git directory.
- `git-hub-browse` opens the [GitHub][3] repository in the default browser. - `git-hub-browse` opens the [GitHub][3] repository in the default browser.
- `git-hub-shorten-url` shortens [GitHub URLs][10]. - `git-hub-shorten-url` shortens [GitHub URLs][12].
- `git-info` exposes repository information via the `$git_info` associative - `git-info` exposes repository information via the `$git_info` associative
array. array.
- `git-root` displays the path to the working tree root. - `git-root` displays the path to the working tree root.
- `git-stash-clear-interactive` asks for confirmation before clearing the stash. - `git-stash-clear-interactive` asks for confirmation before clearing the stash.
- `git-stash-dropped` lists dropped stashed states. - `git-stash-dropped` lists dropped stashed states.
- `git-stash-recover` recovers given dropped stashed states. - `git-stash-recover` recovers given dropped stashed states.
- `git-submodule-move` moves a submodule. - `git-submodule-move` moves a submodule.
- `git-submodule-remove` removes a submodule. - `git-submodule-remove` removes a submodule.
Theming ## Theming
-------
To display information about the current repository in a prompt, define the To display information about the current repository in a prompt, define the
following styles in the `prompt_name_setup` function, where the syntax for following styles in the `prompt_name_setup` function, where the syntax for
@ -360,26 +366,26 @@ zstyle ':prezto:module:git:info:context:subcontext' format 'string'
### Main Contexts ### Main Contexts
| Name | Format Code | Description | Name | Format Code | Description |
| --------- | :---------: | --------------------------------------------------- | -------- | :---------: | ---------------------------------- |
| action | %s | Special action name | action | %s | Special action name |
| ahead | %A | Commits ahead of remote count | ahead | %A | Commits ahead of remote count |
| behind | %B | Commits behind of remote count | behind | %B | Commits behind of remote count |
| branch | %b | Branch name | branch | %b | Branch name |
| commit | %c | Commit hash | commit | %c | Commit hash |
| position | %p | Commits from the nearest tag count | position | %p | Commits from the nearest tag count |
| remote | %R | Remote name | remote | %R | Remote name |
| stashed | %S | Stashed states count | stashed | %S | Stashed states count |
### Concise Contexts ### Concise Contexts
| Name | Format Code | Description | Name | Format Code | Description |
| --------- | :---------: | --------------------------------------------------- | --------- | :---------: | --------------------- |
| clean | %C | Clean state | clean | %C | Clean state |
| dirty | %D | Dirty files count | dirty | %D | Dirty files count |
| indexed | %i | Indexed files count | indexed | %i | Indexed files count |
| unindexed | %I | Unindexed files count | unindexed | %I | Unindexed files count |
| untracked | %u | Untracked files count | untracked | %u | Untracked files count |
The following contexts must be enabled with the following zstyle: The following contexts must be enabled with the following zstyle:
@ -389,31 +395,31 @@ zstyle ':prezto:module:git:info' verbose 'yes'
### Verbose Contexts ### Verbose Contexts
| Name | Format Code | Description | Name | Format Code | Description |
| --------- | :---------: | --------------------------------------------------- | --------- | :---------: | --------------------- |
| added | %a | Added files count | added | %a | Added files count |
| clean | %C | Clean state | clean | %C | Clean state |
| deleted | %d | Deleted files count | deleted | %d | Deleted files count |
| dirty | %D | Dirty files count | dirty | %D | Dirty files count |
| modified | %m | Modified files count | modified | %m | Modified files count |
| renamed | %r | Renamed files count | renamed | %r | Renamed files count |
| unmerged | %U | Unmerged files count | unmerged | %U | Unmerged files count |
| untracked | %u | Untracked files count | untracked | %u | Untracked files count |
### Special Action Contexts ### Special Action Contexts
| Name | Format | Description | Name | Format | Description |
| -------------------- | :---------: | ----------------------------------------- | -------------------- | :----: | ---------------------------- |
| apply | value | Applying patches | apply | value | Applying patches |
| bisect | value | Binary searching for changes | bisect | value | Binary searching for changes |
| cherry-pick | value | Cherry picking | cherry-pick | value | Cherry picking |
| cherry-pick-sequence | value | Cherry picking sequence | cherry-pick-sequence | value | Cherry picking sequence |
| merge | value | Merging | merge | value | Merging |
| rebase | value | Rebasing | rebase | value | Rebasing |
| rebase-interactive | value | Rebasing interactively | rebase-interactive | value | Rebasing interactively |
| rebase-merge | value | Rebasing merge | rebase-merge | value | Rebasing merge |
| revert | value | Reverting | revert | value | Reverting |
| revert-sequence | value | Reverting sequence | revert-sequence | value | Reverting sequence |
First, format the repository state attributes. For example, to format the branch First, format the repository state attributes. For example, to format the branch
and remote names, define the following styles. and remote names, define the following styles.
@ -435,22 +441,24 @@ Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to
`$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook `$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook
function. function.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][6].* _The authors of this module should be contacted via the [issue tracker][6]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Colin Hebert](https://github.com/ColinHebert) - [Colin Hebert](https://github.com/ColinHebert)
[1]: http://www.git-scm.com [1]: https://www.git-scm.com
[2]: https://github.com/defunkt/hub [2]: https://hub.github.com
[3]: https://www.github.com [3]: https://www.github.com
[4]: http://www.manpagez.com/man/8/gpt/ [4]: https://www.manpagez.com/man/8/gpt/
[5]: http://www.manpagez.com/man/1/gs/ [5]: https://www.manpagez.com/man/1/gs/
[6]: https://github.com/sorin-ionescu/prezto/issues [6]: https://github.com/sorin-ionescu/prezto/issues
[7]: https://github.com/sorin-ionescu/prezto/issues/219 [7]: https://github.com/sorin-ionescu/prezto/issues/219
[8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html [8]: https://git-scm.com/docs/git-log
[9]: https://getgb.io/ [9]: https://git-scm.com/docs/git-submodule
[10]: https://github.com/blog/985-git-io-github-url-shortener [10]: https://getgb.io/
[11]: http://www.manpagez.com/man/1/gm/ [11]: https://www.manpagez.com/man/1/gm/
[12]: https://github.blog/2011-11-10-git-io-github-url-shortener
[13]: ../completion#readme
[14]: https://github.com/sorin-ionescu/prezto/pull/1929

View File

@ -8,25 +8,24 @@
# #
# Settings # Settings
# #
#
# Log # Log
zstyle -s ':prezto:module:git:log:medium' format '_git_log_medium_format' \ zstyle -s ':prezto:module:git:log:medium' format '_git_log_medium_format' \
|| _git_log_medium_format='%C(bold)Commit:%C(reset) %C(green)%H%C(red)%d%n%C(bold)Author:%C(reset) %C(cyan)%an <%ae>%n%C(bold)Date:%C(reset) %C(blue)%ai (%ar)%C(reset)%n%+B' || _git_log_medium_format='%C(bold)Commit:%C(reset) %C(green)%H%C(red)%d%n%C(bold)Author:%C(reset) %C(cyan)%an <%ae>%n%C(bold)Date:%C(reset) %C(blue)%ai (%ar)%C(reset)%n%+B'
zstyle -s ':prezto:module:git:log:oneline' format '_git_log_oneline_format' \ zstyle -s ':prezto:module:git:log:oneline' format '_git_log_oneline_format' \
|| _git_log_oneline_format='%C(green)%h%C(reset) %s%C(red)%d%C(reset)%n' || _git_log_oneline_format='%C(green)%h%C(reset) %s%C(red)%d%C(reset)%n'
zstyle -s ':prezto:module:git:log:brief' format '_git_log_brief_format' \ zstyle -s ':prezto:module:git:log:brief' format '_git_log_brief_format' \
|| _git_log_brief_format='%C(green)%h%C(reset) %s%n%C(blue)(%ar by %an)%C(red)%d%C(reset)%n' || _git_log_brief_format='%C(green)%h%C(reset) %s%n%C(blue)(%ar by %an)%C(red)%d%C(reset)%n'
# Status # Status
zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_submodules' \ zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_submodules' \
|| _git_status_ignore_submodules='none' || _git_status_ignore_submodules='none'
# #
# Aliases # Aliases
# #
if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then if ! zstyle -t ':prezto:module:git:alias' skip; then
# Git # Git
alias g='git' alias g='git'
@ -51,18 +50,18 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
# Commit (c) # Commit (c)
alias gc='git commit --verbose' alias gc='git commit --verbose'
alias gcS='git commit --verbose --gpg-sign'
alias gca='git commit --verbose --all' alias gca='git commit --verbose --all'
alias gcaS='git commit --verbose --all --gpg-sign'
alias gcm='git commit --message' alias gcm='git commit --message'
alias gcS='git commit -S --verbose' alias gcmS='git commit --message --gpg-sign'
alias gcSa='git commit -S --verbose --all'
alias gcSm='git commit -S --message'
alias gcam='git commit --all --message' alias gcam='git commit --all --message'
alias gco='git checkout' alias gco='git checkout'
alias gcO='git checkout --patch' alias gcO='git checkout --patch'
alias gcf='git commit --amend --reuse-message HEAD' alias gcf='git commit --amend --reuse-message HEAD'
alias gcSf='git commit -S --amend --reuse-message HEAD' alias gcfS='git commit --amend --reuse-message HEAD --gpg-sign'
alias gcF='git commit --verbose --amend' alias gcF='git commit --verbose --amend'
alias gcSF='git commit -S --verbose --amend' alias gcFS='git commit --verbose --amend --gpg-sign'
alias gcp='git cherry-pick --ff' alias gcp='git cherry-pick --ff'
alias gcP='git cherry-pick --no-commit' alias gcP='git cherry-pick --no-commit'
alias gcr='git revert' alias gcr='git revert'
@ -70,8 +69,8 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
alias gcs='git show' alias gcs='git show'
alias gcsS='git show --pretty=short --show-signature' alias gcsS='git show --pretty=short --show-signature'
alias gcl='git-commit-lost' alias gcl='git-commit-lost'
alias gcy='git cherry -v --abbrev' alias gcy='git cherry --verbose --abbrev'
alias gcY='git cherry -v' alias gcY='git cherry --verbose'
# Conflict (C) # Conflict (C)
alias gCl='git --no-pager diff --name-only --diff-filter=U' alias gCl='git --no-pager diff --name-only --diff-filter=U'
@ -183,15 +182,15 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
alias gir='git reset' alias gir='git reset'
alias giR='git reset --patch' alias giR='git reset --patch'
alias gix='git rm -r --cached' alias gix='git rm -r --cached'
alias giX='git rm -rf --cached' alias giX='git rm -r --force --cached'
# Log (l) # Log (l)
alias gl='git log --topo-order --pretty=format:"${_git_log_medium_format}"' alias gl='git log --topo-order --pretty=format:"$_git_log_medium_format"'
alias gls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"' alias 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 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 glo='git log --topo-order --pretty=format:"$_git_log_oneline_format"'
alias glg='git log --topo-order --graph --pretty=format:"${_git_log_oneline_format}"' alias glg='git log --topo-order --graph --pretty=format:"$_git_log_oneline_format"'
alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"' alias glb='git log --topo-order --pretty=format:"$_git_log_brief_format"'
alias glc='git shortlog --summary --numbered' alias glc='git shortlog --summary --numbered'
alias glS='git log --show-signature' alias glS='git log --show-signature'
@ -253,24 +252,24 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
alias gSl='git submodule status' alias gSl='git submodule status'
alias gSm='git-submodule-move' alias gSm='git-submodule-move'
alias gSs='git submodule sync' alias gSs='git submodule sync'
alias gSu='git submodule foreach git pull origin master' alias gSu='git submodule update --remote --recursive'
alias gSx='git-submodule-remove' alias gSx='git-submodule-remove'
# Tag (t) # Tag (t)
alias gt='git tag' alias gt='git tag'
alias gtl='git tag -l' alias gtl='git tag --list'
alias gts='git tag -s' alias gts='git tag --sign'
alias gtv='git verify-tag' alias gtv='git verify-tag'
# Working Copy (w) # Working Copy (w)
alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short' alias gws='git status --ignore-submodules=$_git_status_ignore_submodules --short'
alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}' alias gwS='git status --ignore-submodules=$_git_status_ignore_submodules'
alias gwd='git diff --no-ext-diff' alias gwd='git diff --no-ext-diff'
alias gwD='git diff --no-ext-diff --word-diff' alias gwD='git diff --no-ext-diff --word-diff'
alias gwr='git reset --soft' alias gwr='git reset --soft'
alias gwR='git reset --hard' alias gwR='git reset --hard'
alias gwc='git clean -n' alias gwc='git clean --dry-run'
alias gwC='git clean -f' alias gwC='git clean --force'
alias gwx='git rm -r' alias gwx='git rm -r'
alias gwX='git rm -rf' alias gwX='git rm -r --force'
fi fi

View File

@ -15,7 +15,7 @@ fi
local remotes remote references reference file url local remotes remote references reference file url
remote="${1:-origin}" remote="${1:-origin}"
remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2)) remotes=($(command git remote show))
if (( $remotes[(i)$remote] == $#remotes + 1 )); then if (( $remotes[(i)$remote] == $#remotes + 1 )); then
print "$0: remote not found: $remote" >&2 print "$0: remote not found: $remote" >&2
@ -23,14 +23,14 @@ if (( $remotes[(i)$remote] == $#remotes + 1 )); then
fi fi
url=$( url=$(
command git config --get "remote.${remote}.url" \ command git remote get-url "$remote" \
| sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p" | sed -En "s#(git@|https?://)(github.com)(:|/)(.+)/(.+)\.git#https://\2/\4/\5#p"
) )
reference="${${2:-$(git-branch-current)}:-HEAD}" reference="${${2:-$(git-branch-current)}:-HEAD}"
references=( references=(
HEAD HEAD
${$(command git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/} ${${(f)"$(command git ls-remote --heads --tags "$remote")"}##*refs/(heads|tags)/}
) )
if (( $references[(i)$reference] == $#references + 1 )); then if (( $references[(i)$reference] == $#references + 1 )); then
@ -45,9 +45,9 @@ fi
file="$3" file="$3"
if [[ -n "$url" ]]; then if [[ -n "$url" ]]; then
url="${url}/tree/${reference}/${file}" url="$url/tree/$reference/$file"
if (( $+commands[$BROWSER] )); then if [[ -z "$BROWSER" ]]; then
"$BROWSER" "$url" "$BROWSER" "$url"
return 0 return 0
else else

View File

@ -19,7 +19,7 @@ if [[ -z "$url" || ! "$url" =~ ^https?:\/\/.*github.com\/ ]]; then
fi fi
if (( $+commands[curl] )); then if (( $+commands[curl] )); then
curl -s -i 'https://git.io' -F "url=$url" ${(s: :)code:+ -F "code=$code"} | sed -n 's/^Location: //p' print "${${(@M)${(f)"$(curl -s -i 'https://git.io' -F "url=$url" ${(z)code:+ -F "code=$code"})"}:#Location: *}#Location: }"
else else
print "$0: command not found: curl" >&2 print "$0: command not found: curl" >&2
return 1 return 1

View File

@ -22,20 +22,22 @@ function _git-action {
local revert_sequence_formatted local revert_sequence_formatted
for action_dir in \ for action_dir in \
"${git_dir}/rebase-apply" \ "$git_dir/rebase-apply" \
"${git_dir}/rebase" \ "$git_dir/rebase" \
"${git_dir}/../.dotest" "$git_dir/../.dotest"
do do
if [[ -d "$action_dir" ]] ; then 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:apply' format 'apply_formatted' \
zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' || rebase_formatted='rebase' || apply_formatted='apply'
zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' \
|| rebase_formatted='rebase'
if [[ -f "${action_dir}/rebasing" ]] ; then if [[ -f "$action_dir/rebasing" ]] ; then
print "$rebase_formatted" print "$rebase_formatted"
elif [[ -f "${action_dir}/applying" ]] ; then elif [[ -f "$action_dir/applying" ]] ; then
print "$apply_formatted" print "$apply_formatted"
else else
print "${rebase_formatted}/${apply_formatted}" print "$rebase_formatted/$apply_formatted"
fi fi
return 0 return 0
@ -43,59 +45,67 @@ function _git-action {
done done
for action_dir in \ for action_dir in \
"${git_dir}/rebase-merge/interactive" \ "$git_dir/rebase-merge/interactive" \
"${git_dir}/.dotest-merge/interactive" "$git_dir/.dotest-merge/interactive"
do do
if [[ -f "$action_dir" ]]; then if [[ -f "$action_dir" ]]; then
zstyle -s ':prezto:module:git:info:action:rebase-interactive' format 'rebase_interactive_formatted' || rebase_interactive_formatted='rebase-interactive' zstyle -s ':prezto:module:git:info:action:rebase-interactive' format 'rebase_interactive_formatted' \
|| rebase_interactive_formatted='rebase-interactive'
print "$rebase_interactive_formatted" print "$rebase_interactive_formatted"
return 0 return 0
fi fi
done done
for action_dir in \ for action_dir in \
"${git_dir}/rebase-merge" \ "$git_dir/rebase-merge" \
"${git_dir}/.dotest-merge" "$git_dir/.dotest-merge"
do do
if [[ -d "$action_dir" ]]; then if [[ -d "$action_dir" ]]; then
zstyle -s ':prezto:module:git:info:action:rebase-merge' format 'rebase_merge_formatted' || rebase_merge_formatted='rebase-merge' zstyle -s ':prezto:module:git:info:action:rebase-merge' format 'rebase_merge_formatted' \
|| rebase_merge_formatted='rebase-merge'
print "$rebase_merge_formatted" print "$rebase_merge_formatted"
return 0 return 0
fi fi
done done
if [[ -f "${git_dir}/MERGE_HEAD" ]]; then if [[ -f "$git_dir/MERGE_HEAD" ]]; then
zstyle -s ':prezto:module:git:info:action:merge' format 'merge_formatted' || merge_formatted='merge' zstyle -s ':prezto:module:git:info:action:merge' format 'merge_formatted' \
|| merge_formatted='merge'
print "$merge_formatted" print "$merge_formatted"
return 0 return 0
fi fi
if [[ -f "${git_dir}/CHERRY_PICK_HEAD" ]]; then if [[ -f "$git_dir/CHERRY_PICK_HEAD" ]]; then
if [[ -d "${git_dir}/sequencer" ]] ; 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' 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" print "$cherry_pick_sequence_formatted"
else else
zstyle -s ':prezto:module:git:info:action:cherry-pick' format 'cherry_pick_formatted' || cherry_pick_formatted='cherry-pick' zstyle -s ':prezto:module:git:info:action:cherry-pick' format 'cherry_pick_formatted' \
|| cherry_pick_formatted='cherry-pick'
print "$cherry_pick_formatted" print "$cherry_pick_formatted"
fi fi
return 0 return 0
fi fi
if [[ -f "${git_dir}/REVERT_HEAD" ]]; then if [[ -f "$git_dir/REVERT_HEAD" ]]; then
if [[ -d "${git_dir}/sequencer" ]] ; 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' zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' \
|| revert_sequence_formatted='revert-sequence'
print "$revert_sequence_formatted" print "$revert_sequence_formatted"
else else
zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' || revert_formatted='revert' zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' \
|| revert_formatted='revert'
print "$revert_formatted" print "$revert_formatted"
fi fi
return 0 return 0
fi fi
if [[ -f "${git_dir}/BISECT_LOG" ]]; then if [[ -f "$git_dir/BISECT_LOG" ]]; then
zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect' zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' \
|| bisect_formatted='bisect'
print "$bisect_formatted" print "$bisect_formatted"
return 0 return 0
fi fi
@ -219,8 +229,8 @@ function git-info {
[[ "$commondir" =~ ^/ ]] || commondir="$(git-dir)/$commondir" [[ "$commondir" =~ ^/ ]] || commondir="$(git-dir)/$commondir"
fi fi
if [[ -f "$(git-dir)/refs/stash" || ( -n "$commondir" && -f "$commondir/refs/stash" ) ]]; then 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}')" stashed=${#${(f)"$(command git stash list 2> /dev/null)"}}
if [[ -n "$stashed" ]]; then if (( $stashed > 0 )); then
zformat -f stashed_formatted "$stashed_format" "S:$stashed" zformat -f stashed_formatted "$stashed_format" "S:$stashed"
fi fi
fi fi

View File

@ -15,7 +15,7 @@ fi
local stashed local stashed
if [[ -f "$(git-dir)/refs/stash" ]]; then if [[ -f "$(git-dir)/refs/stash" ]]; then
stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')" stashed=${#${(f)"$(command git stash list 2> /dev/null)"}}
if (( $stashed > 0 )); then if (( $stashed > 0 )); then
if read -q "?Clear $stashed stashed state(s) [y/N]? "; then if read -q "?Clear $stashed stashed state(s) [y/N]? "; then
command git stash clear command git stash clear

View File

@ -16,7 +16,7 @@ command git fsck --unreachable 2> /dev/null \
| grep 'commit' \ | grep 'commit' \
| awk '{print $3}' \ | awk '{print $3}' \
| command git log \ | command git log \
--pretty=format:${_git_log_oneline_format} \ --pretty=format:$_git_log_oneline_format \
--extended-regexp \ --extended-regexp \
--grep="${1:-(WIP )?[Oo]n [^:]+:}" \ --grep="${1:-(WIP )?[Oo]n [^:]+:}" \
--merges \ --merges \

View File

@ -26,7 +26,7 @@ if [[ -z "$url" ]]; then
return 1 return 1
fi fi
mkdir -p "${dst:h}" mkdir -p "$dst:h"
git-submodule-remove "$src" git-submodule-remove "$src"
command git submodule add "$url" "$dst" command git submodule add "$url" "$dst"

View File

@ -22,9 +22,9 @@ command git config --file "$(git-dir)/config" --remove-section "submodule.${1}"
command git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &> /dev/null command git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &> /dev/null
command git add .gitmodules command git add .gitmodules
command git rm --cached -rf "${1}" command git rm --cached -rf "$1"
rm -rf "${1}" rm -rf "$1"
rm -rf "$(git-dir)/modules/${1}" rm -rf "$(git-dir)/modules/$1"
return 0 return 0

View File

@ -13,5 +13,8 @@ fi
# Load dependencies. # Load dependencies.
pmodload 'helper' pmodload 'helper'
# Load 'run-help' function.
autoload -Uz run-help-git
# Source module files. # Source module files.
source "${0:h}/alias.zsh" source "${0:h}/alias.zsh"

View File

@ -1,34 +1,34 @@
GNU Utility # GNU Utility
===========
Provides for the interactive use of GNU utilities on BSD systems. Provides for the interactive use of GNU utilities on BSD systems.
Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e. Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e.,
`ls` instead of `gls`, is not recommended since scripts that target other `ls` instead of `gls`, is not recommended since scripts that target other
utilities will be broken. utilities will be broken.
This module wraps GNU utilities in functions without a prefix for interactive This module wraps GNU utilities in functions without a prefix for interactive
use. use.
This module must be loaded **before** the *utility* module. This module must be loaded _before_ the [_`utility`_][1] module so that GNU
utilities enabled in this module are available for configuration in _`utility`_
module.
Settings ## Settings
--------
### Prefix ### Prefix
To use a different prefix, add the following to *zpreztorc*, and replace 'g' with To use a different prefix, add the following to
the desired prefix: _`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'g'` with the desired prefix.
```sh ```sh
zstyle ':prezto:module:gnu-utility' prefix 'g' zstyle ':prezto:module:gnu-utility' prefix 'g'
``` ```
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].* _The authors of this module should be contacted via the [issue tracker][2]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: ../utility#readme
[2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -6,34 +6,36 @@
# #
# Get the prefix or use the default. # Get the prefix or use the default.
zstyle -s ':prezto:module:gnu-utility' prefix '_gnu_utility_p' || _gnu_utility_p='g' zstyle -s ':prezto:module:gnu-utility' prefix '_gnu_utility_p' \
|| _gnu_utility_p='g'
# Return if requirements are not found. # Return if requirements are not found.
if (( ! ${+commands[${_gnu_utility_p}whoami]} )); then if (( ! $+commands[${_gnu_utility_p}whoami] )); then
return 1 return 1
fi fi
_gnu_utility_cmds=( _gnu_utility_cmds=(
# Coreutils # Coreutils
'[' 'b2sum' 'base32' 'base64' 'basename' 'cat' 'chcon' 'chgrp' 'chmod' 'chown' '[' 'b2sum' 'base32' 'base64' 'basename' 'basenc' 'cat' 'chcon' 'chgrp'
'chroot' 'cksum' 'comm' 'cp' 'csplit' 'cut' 'date' 'dd' 'df' 'chmod' 'chown' 'chroot' 'cksum' 'comm' 'cp' 'csplit' 'cut'
'dir' 'dircolors' 'dirname' 'du' 'echo' 'env' 'expand' 'expr' 'date' 'dd' 'df' 'dir' 'dircolors' 'dirname' 'du' 'echo' 'env' 'expand' 'expr'
'factor' 'false' 'fmt' 'fold' 'groups' 'head' 'hostid' 'id' 'factor' 'false' 'fmt' 'fold' 'groups' 'head' 'hostid' 'id' 'install' 'join'
'install' 'join' 'kill' 'link' 'ln' 'logname' 'ls' 'md5sum' 'mkdir' 'kill' 'link' 'ln' 'logname' 'ls' 'md5sum' 'mkdir' 'mkfifo'
'mkfifo' 'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc' 'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc' 'numfmt' 'od'
'numfmt' 'od' 'paste' 'pathchk' 'pinky' 'pr' 'printenv' 'printf' 'ptx' 'paste' 'pathchk' 'pinky' 'pr' 'printenv' 'printf' 'ptx' 'pwd'
'pwd' 'readlink' 'realpath' 'rm' 'rmdir' 'runcon' 'seq' 'sha1sum' 'readlink' 'realpath' 'rm' 'rmdir' 'runcon'
'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf' 'seq' 'sha1sum' 'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf'
'sleep' 'sort' 'split' 'stat' 'stdbuf' 'stty' 'sum' 'sync' 'tac' 'tail' 'sleep' 'sort' 'split' 'stat' 'stdbuf' 'stty' 'sum' 'sync' 'tac' 'tail'
'tee' 'test' 'timeout' 'touch' 'tr' 'true' 'truncate' 'tsort' 'tee' 'test' 'timeout' 'touch' 'tr' 'true' 'truncate' 'tsort' 'tty'
'tty' 'uname' 'unexpand' 'uniq' 'unlink' 'uptime' 'users' 'vdir' 'uname' 'unexpand' 'uniq' 'unlink' 'uptime' 'users' 'vdir'
'wc' 'who' 'whoami' 'yes' 'wc' 'who' 'whoami' 'yes'
# The following utilities are not part of Coreutils but installed separately. # The following utilities are not part of Coreutils but installed separately.
# Binutils # Binutils
'addr2line' 'ar' 'c++filt' 'elfedit' 'nm' 'objcopy' 'objdump' 'addr2line' 'ar' 'c++filt' 'coffdump' 'dlltool' 'dllwrap' 'elfedit' 'nm'
'ranlib' 'readelf' 'size' 'strings' 'strip' 'objcopy' 'objdump' 'ranlib' 'readelf'
'size' 'srconv' 'strings' 'strip' 'sysdump' 'windmc' 'windres'
# Findutils # Findutils
'find' 'locate' 'oldfind' 'updatedb' 'xargs' 'find' 'locate' 'oldfind' 'updatedb' 'xargs'
@ -42,16 +44,18 @@ _gnu_utility_cmds=(
'libtool' 'libtoolize' 'libtool' 'libtoolize'
# Miscellaneous # Miscellaneous
'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units' 'which' 'egrep' 'fgrep' 'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units'
'which'
) )
# Wrap GNU utilities in functions. # Wrap GNU utilities in functions.
for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do
_gnu_utility_pcmd="${_gnu_utility_p}${_gnu_utility_cmd}" _gnu_utility_pcmd="${_gnu_utility_p}${_gnu_utility_cmd}"
if (( ${+commands[${_gnu_utility_pcmd}]} && ! ${+builtins[${_gnu_utility_cmd}]} )); then if (( $+commands[$_gnu_utility_pcmd] \
&& ! $+builtins[$_gnu_utility_cmd] )); then
eval " eval "
function ${_gnu_utility_cmd} { function $_gnu_utility_cmd {
'${commands[${_gnu_utility_pcmd}]}' \"\$@\" '$commands[$_gnu_utility_pcmd]' \"\$@\"
} }
" "
fi fi

View File

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

View File

@ -1,10 +1,8 @@
Haskell # Haskell
=======
Enables local Haskell package installation. Enables local Haskell package installation.
Per-user Package Installation ## Per-user Package Installation
-----------------------------
[Cabal][1], the Haskell package manager, can install packages into per user [Cabal][1], the Haskell package manager, can install packages into per user
directories. directories.
@ -17,12 +15,11 @@ documentation.
Install packages into per user directories with `cabal install --user`. Install packages into per user directories with `cabal install --user`.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].* _The authors of this module should be contacted via the [issue tracker][2]._
- [Sebastian Wiesner](https://github.com/lunaryorn) - [Sebastian Wiesner](https://github.com/lunaryorn)
[1]: http://www.haskell.org/cabal/ [1]: https://www.haskell.org/cabal/
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,24 +1,26 @@
Helper # Helper
======
Provides helper functions for developing modules. Provides helper functions for developing modules.
Functions ## Functions
---------
- `add-zsh-trap` adds a function name to a list to be called when a trap is - `add-zsh-trap` adds a function name to a list to be called when a trap is
triggered. triggered.
- `is-autoloadable` checks if a file can be autoloaded by trying to load it - `is-autoloadable` checks if a file can be autoloaded by trying to load it in
in a subshell. a subshell.
- `is-callable` checks if a name is a command, function, or alias. - `is-callable` checks if a name is a command, function, or alias.
- `is-true` checks a boolean variable for "true". - `is-true` checks a boolean variable for "true".
- `coalesce` prints the first non-empty string in the arguments array. - `coalesce` prints the first non-empty string in the arguments array.
- `is-darwin` checks if running on macOS Darwin.
- `is-linux` checks if running on Linux.
- `is-bsd` checks if running on BSD.
- `is-cygwin` checks if running on Cygwin (Windows).
- `is-termux` checks if running on Termux (Android).
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].* _The authors of this module should be contacted via the [issue tracker][1]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -30,27 +30,27 @@ function coalesce {
return 1 return 1
} }
# is true on MacOS Darwin # Checks if running on macOS Darwin.
function is-darwin { function is-darwin {
[[ "$OSTYPE" == darwin* ]] [[ "$OSTYPE" == darwin* ]]
} }
# is true on Linux's # Checks if running on Linux.
function is-linux { function is-linux {
[[ "$OSTYPE" == linux* ]] [[ "$OSTYPE" == linux* ]]
} }
# is true on BSD's # Checks if running on BSD.
function is-bsd { function is-bsd {
[[ "$OSTYPE" == *bsd* ]] [[ "$OSTYPE" == *bsd* ]]
} }
# is true on Cygwin (Windows) # Checks if running on Cygwin (Windows).
function is-cygwin { function is-cygwin {
[[ "$OSTYPE" == cygwin* ]] [[ "$OSTYPE" == cygwin* ]]
} }
# is true on termux (Android) # Checks if running on termux (Android).
function is-termux { function is-termux {
[[ "$OSTYPE" == linux-android ]] [[ "$OSTYPE" == linux-android ]]
} }

View File

@ -1,28 +1,25 @@
History Substring Search # History Substring Search
========================
Integrates [zsh-history-substring-search][1] into Prezto, which implements Integrates [`zsh-history-substring-search`][1] into Prezto, which implements the
the [Fish shell][2]'s history search feature, where the user can type in any [Fish shell][2]'s history search feature, where the user can type in any part of
part of a previously entered command and press up and down to cycle through a previously entered command and press up and down to cycle through matching
matching commands. commands.
If this module is used in conjunction with the *syntax-highlighting* module, If this module is used in conjunction with the [_`syntax-highlighting`_][3]
this module must be loaded **after** the *syntax-highlighting* module. module, this module must be loaded _after_ the _`syntax-highlighting`_ module.
Contributors ## Contributors
------------
New features and bug fixes should be submitted to the New features and bug fixes should be submitted to the
[zsh-history-substring-search][1] project according to its rules and [`zsh-history-substring-search`][1] project according to its rules and
regulations. This module will be synchronized against it. regulations. This module will be synchronized against it.
Settings ## Settings
--------
### Case Sensitivity ### Case Sensitivity
To enable case-sensitivity for this module only, add the following line to To enable case-sensitivity for this module only, add the following line to
*zpreztorc*: _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:history-substring-search' case-sensitive 'yes' zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
@ -30,42 +27,45 @@ zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
### Highlighting ### Highlighting
If colors are enabled, *history-substring-search* will automatically highlight If colors are enabled, _history-substring-search_ will automatically highlight
positive results. positive results.
To enable highlighting for this module only, add the following line to To disable highlighting for this module only, add the following line to
*zpreztorc*: _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:history-substring-search' color 'yes' zstyle ':prezto:module:history-substring-search' color 'no'
``` ```
To set the query found color, add the following line to *zpreztorc*: To set the query found color, add the following line to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:history-substring-search:color' found '' zstyle ':prezto:module:history-substring-search:color' found ''
``` ```
To set the query not found color, add the following line to *zpreztorc*: To set the query not found color, add the following line to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:history-substring-search:color' not-found '' zstyle ':prezto:module:history-substring-search:color' not-found ''
``` ```
To set the search globbing flags, add the following line to *zpreztorc*: To set the search globbing flags, add the following line to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:history-substring-search' globbing-flags '' zstyle ':prezto:module:history-substring-search' globbing-flags ''
``` ```
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].* _The authors of this module should be contacted via the [issue tracker][4]._
- [Suraj N. Kurapati](https://github.com/sunaku) - [Suraj N. Kurapati](https://github.com/sunaku)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/zsh-users/zsh-history-substring-search [1]: https://github.com/zsh-users/zsh-history-substring-search
[2]: http://fishshell.com [2]: https://fishshell.com
[3]: https://github.com/sorin-ionescu/prezto/issues [3]: ../syntax-highlighting#readme
[4]: https://github.com/sorin-ionescu/prezto/issues

@ -1 +1 @@
Subproject commit aae3388491c2312c4efb2e86bcb999927bb2900e Subproject commit 0f80b8eb3368b46e5e573c1d91ae69eb095db3fb

View File

@ -1,48 +1,50 @@
History # History
=======
Sets [history][1] options and defines history aliases. Sets [history][1] options and defines history aliases.
**Note:** If you are migrating from oh-my-zsh and want to keep your history, you **Note:** Default path of `HISTFILE` has changed from
will either need to set HISTFILE manually to `$HOME/.zsh_history` or rename _`${ZDOTDIR:-$HOME}/.zhistory`_ to _`${ZDOTDIR:-$HOME}/.zsh_history`_. The file
`~/.zsh_history` to ~/.zhistory`. will be automatically renamed if possible (when the new one doesn't exist).
Otherwise, if you want to preserve previous history, you will need to move them
from _`${ZDOTDIR:-$HOME}/.zhistory`_ to _`${ZDOTDIR:-$HOME}/.zsh_history`_.
Options Alternately, you can set `HISTFILE` manually to _`${ZDOTDIR:-$HOME}/.zhistory`_.
-------
- `BANG_HIST` treats the **!** character specially during expansion. ## Options
- `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 - `BANG_HIST` treats the **!** character specially during expansion.
--------- - `EXTENDED_HISTORY` writes the history file in the _:start:elapsed;command_
format.
- `SHARE_HISTORY` shares history between all sessions. Note that
`SHARE_HISTORY`, `INC_APPEND_HISTORY`, and `INC_APPEND_HISTORY_TIME` are
mutually exclusive.
- `HIST_EXPIRE_DUPS_FIRST` expires a duplicate event first when trimming history.
- `HIST_IGNORE_DUPS` does not record an event that was just recorded again.
- `HIST_IGNORE_ALL_DUPS` deletes an old recorded event if a new event is a
duplicate.
- `HIST_FIND_NO_DUPS` does not display a previously found event.
- `HIST_IGNORE_SPACE` does not record an event starting with a space.
- `HIST_SAVE_NO_DUPS` does not write a duplicate event to the history file.
- `HIST_VERIFY` does not execute immediately upon history expansion.
- `HIST_BEEP` beeps when accessing non-existent history.
- `HISTFILE` stores the path to the history file. ## Variables
- `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 - `HISTFILE` stores the path to the history file.
------- - `HISTSIZE` stores the maximum number of events to save in the internal history.
- `SAVEHIST` stores the maximum number of events to save in the history file.
- `history-stat` lists the ten most used commands ## Aliases
Authors - `history-stat` lists the ten most used commands
-------
*The authors of this module should be contacted via the [issue tracker][2].* ## Authors
- [Robby Russell](https://github.com/robbyrussell) _The authors of this module should be contacted via the [issue tracker][2]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://zsh.sourceforge.net/Guide/zshguide02.html#l16 - [Robby Russell](https://github.com/robbyrussell)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Indrajit Raychaudhuri](https://github.com/indrajitr)
[1]: https://zsh.sourceforge.net/Guide/zshguide02.html#l16
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -26,7 +26,7 @@ setopt HIST_BEEP # Beep when accessing non-existent history.
# Variables # Variables
# #
HISTFILE="${HISTFILE:-${ZDOTDIR:-$HOME}/.zhistory}" # The path to the history file. HISTFILE="${HISTFILE:-${ZDOTDIR:-$HOME}/.zsh_history}" # The path to the history file.
HISTSIZE=10000 # The maximum number of events to save in the internal history. 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. SAVEHIST=10000 # The maximum number of events to save in the history file.
@ -36,3 +36,28 @@ SAVEHIST=10000 # The maximum number of events to save in the h
# Lists the ten most used commands. # Lists the ten most used commands.
alias history-stat="history 0 | awk '{print \$2}' | sort | uniq -c | sort -n -r | head" alias history-stat="history 0 | awk '{print \$2}' | sort | uniq -c | sort -n -r | head"
if [[ -s "${OLD_HISTFILE::=${HISTFILE:h}/.zhistory}" ]]; then
# New 'HISTFILE' doesn't exist yet, rename legacy one if available and notify.
if [[ ! -s "$HISTFILE" ]]; then
<<EON
NOTICE: Default path of 'HISTFILE' has changed from '${OLD_HISTFILE/#$HOME/~}'
to '${HISTFILE/#$HOME/~}'.
Attempting to rename the existing 'HISTFILE' ...
EON
command mv -v "$OLD_HISTFILE" "$HISTFILE"
# New 'HISTFILE' does exist and is older than legacy one, just warn.
elif [[ "$OLD_HISTFILE" -nt "$HISTFILE" ]]; then
<<EOW
WARNING: Default path of 'HISTFILE' has changed from '${OLD_HISTFILE/#$HOME/~}'
to '${HISTFILE/#$HOME/~}'.
Either set 'HISTFILE' in '${${0:h}/#$HOME/~}'
or move previous history from '${OLD_HISTFILE/#$HOME/~}' to
'${HISTFILE/#$HOME/~}'.
EOW
fi
unset OLD_HISTFILE
fi

View File

@ -1,10 +1,8 @@
Homebrew # Homebrew
========
Defines Homebrew specific environment variables and aliases. Defines Homebrew specific environment variables and aliases.
Variables ## Variables
---------
Execute the following to list the environment variables loaded in the shell: Execute the following to list the environment variables loaded in the shell:
@ -12,34 +10,34 @@ Execute the following to list the environment variables loaded in the shell:
brew shellenv brew shellenv
``` ```
Aliases ## Aliases
-------
### Homebrew ### Homebrew Core
- `brewc` cleans outdated brews and their cached archives. - `brewc` cleans outdated brews and their cached archives.
- `brewi` installs a formula. - `brewi` installs a formula.
- `brewL` lists installed formulae that are not dependencies of another installed formula. - `brewL` lists installed formulae that are not dependencies of another
- `brewl` lists installed formulae. installed formula.
- `brewo` lists brews which have an update available. - `brewl` lists installed formulae.
- `brews` searches for a formula. - `brewo` lists brews which have an update available.
- `brewu` updates and upgrades Homebrew packages and formulae. - `brews` searches for a formula.
- `brewx` uninstalls a formula. - `brewu` upgrades outdated formulae.
- `brewx` uninstalls a formula.
### Homebrew Cask ### Homebrew Cask
- `cask` is aliased to `brew cask`. - `caski` installs a cask.
- `caski` installs a cask. - `caskl` lists installed casks.
- `caskl` lists installed casks. - `casko` lists casks which have an update available.
- `casko` lists casks which have an update available. - `casks` searches for a cask.
- `caskx` uninstalls a cask. - `casku` upgrades outdated casks.
- `caskx` uninstalls a cask.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].* _The authors of this module should be contacted via the [issue tracker][1]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Griffin Yourick](https://github.com/tough-griff) - [Griffin Yourick](https://github.com/tough-griff)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -39,21 +39,9 @@ alias brewu='brew upgrade'
alias brewx='brew uninstall' alias brewx='brew uninstall'
# Homebrew Cask # Homebrew Cask
alias cask='brew cask' alias caski='brew install --cask'
alias caskc='hb_deprecated brew cask cleanup' alias caskl='brew list --cask'
alias caskC='hb_deprecated brew cask cleanup' alias casko='brew outdated --cask'
alias caski='brew cask install' alias casks='brew search --cask'
alias caskl='brew cask list' alias casku='brew upgrade --cask'
alias casko='brew cask outdated' alias caskx='brew uninstall --cask'
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}"
}

View File

@ -1,25 +1,22 @@
MacPorts # MacPorts
========
Defines MacPorts aliases and adds MacPorts directories to path variables. Defines MacPorts aliases and adds MacPorts directories to path variables.
Aliases ## Aliases
-------
- `portc` cleans the files used to build ports. - `portc` cleans the files used to build ports.
- `porti` installs a port. - `porti` installs a port.
- `ports` searches for a port. - `ports` searches for a port.
- `portu` upgrades a port. - `portu` upgrades a port.
- `portU` upgrades MacPorts, the ports collection, and outdated ports. - `portU` upgrades MacPorts, the ports collection, and outdated ports.
- `portx` uninstalls a port. - `portx` uninstalls a port.
- `portX` uninstalls inactive ports. - `portX` uninstalls inactive ports.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].* _The authors of this module should be contacted via the [issue tracker][1]._
- [Matt Cable](https://github.com/curiousstranger) - [Matt Cable](https://github.com/curiousstranger)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,38 +1,59 @@
Node.js # Node.js
=======
Provides utility functions for [Node.js][1], loads the Node Version Manager, and Provides utility functions for [Node.js][1], loads the Node Version Manager, and
enables [npm][2] completion. enables [_npm_][2] completion.
nvm This module must be loaded _before_ the _`completion`_ module so that the
--- provided completion definitions are loaded.
[nvm][5] allows for managing multiple, isolated Node.js installations in the ## nodenv
[_nodenv_][5] does one thing well - it is concerned solely with switching
Node versions. It is simple and predictable, Just Works, and is rock solid in
production. nodenv is forked from the popular [_rbenv_][6].
This will be loaded automatically if nodenv is installed in `$NODENV_ROOT`,
_`$XDG_CONFIG_HOME/nodenv`_, _`~/.nodenv`_, or `nodenv` is on the path.
## nvm
[_nvm_][7] allows for managing multiple, isolated Node.js installations in the
home directory. home directory.
This will be loaded automatically if nvm is installed in `$NVM_DIR`, This will be loaded automatically if nvm is installed in `$NVM_DIR`,
`~/.nvm`, or nvm is installed with homebrew. _`$XDG_CONFIG_HOME/nvm`_, _`~/.nvm`_, or is installed with homebrew.
nodenv ## Variables
------
[nodenv][6] does one thing well. nodenv is concerned solely with switching - `N_PREFIX` stores the path to [_n_][8] cache.
Node versions. It's simple and predictable, Just Works, and is rock solid in
production. nodenv is forked from the popular [rbenv][7].
This will be loaded automatically if nodenv is installed in `$NODENV_ROOT`, ## Aliases
`~/.nodenv`, or `nodenv` is on the path.
Functions ### npm
---------
- `node-doc` opens the Node.js online [API documentation][3] in the default - `npmi` install a package.
browser. - `npml` list installed packages.
- `node-info` exposes information about the Node.js environment via the - `npmo` check for outdated packages.
`$node_info` associative array. - `npmp` publish a package.
- `npmP` remove extraneous packages.
- `npmr` run arbitrary package scripts.
- `npms` search for packages.
- `npmt` test a package.
- `npmu` update packages.
- `npmx` uninstalls a package.
Theming - `npmci` install a project with a clean slate.
------- - `npmcit` install a project with a clean slate and run tests.
- `npmit` install package(s) and run tests.
## Functions
- `node-doc` opens the Node.js online [API documentation][3] in the default
browser.
- `node-info` exposes information about the Node.js environment via the
`$node_info` associative array.
## Theming
To display the version number of the current Node.js version, define the To display the version number of the current Node.js version, define the
following style inside the `prompt_name_setup` function. following style inside the `prompt_name_setup` function.
@ -45,18 +66,19 @@ zstyle ':prezto:module:node:info:version' format 'version:%v'
Then add `$node_info[version]` to either `$PROMPT` or `$RPROMPT` and call Then add `$node_info[version]` to either `$PROMPT` or `$RPROMPT` and call
`node-info` in `prompt_name_preexec` hook function. `node-info` in `prompt_name_preexec` hook function.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][4].* _The authors of this module should be contacted via the [issue tracker][4]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Zeh Rizzatti](https://github.com/zehrizzatti) - [Zeh Rizzatti](https://github.com/zehrizzatti)
- [Indrajit Raychaudhuri](https://github.com/indrajitr)
[1]: http://nodejs.org [1]: http://nodejs.org
[2]: http://npmjs.org [2]: http://npmjs.org
[3]: http://nodejs.org/api [3]: http://nodejs.org/api
[4]: https://github.com/sorin-ionescu/prezto/issues [4]: https://github.com/sorin-ionescu/prezto/issues
[5]: https://github.com/creationix/nvm [5]: https://github.com/nodenv/nodenv
[6]: https://github.com/nodenv/nodenv [6]: https://github.com/sstephenson/rbenv
[7]: https://github.com/sstephenson/rbenv [7]: https://github.com/nvm-sh/nvm
[8]: https://github.com/tj/n

View File

@ -0,0 +1,15 @@
#compdef grunt
#autoload
#
# Grunt completion, delegating to grunt to do all the completion work.
#
# Authors:
# Indrajit Raychaudhuri <irc@indrajit.com>
#
if (( $+commands[grunt] )); then
eval "$(grunt --completion=zsh)"
_grunt_completion "$@"
fi

View File

@ -0,0 +1,15 @@
#compdef gulp
#autoload
#
# Gulp completion, delegating to gulp to do all the completion work.
#
# Authors:
# Indrajit Raychaudhuri <irc@indrajit.com>
#
if (( $+commands[gulp] )); then
eval "$(gulp --completion=zsh)"
_gulp_completion "$@"
fi

View File

@ -13,6 +13,6 @@ if [[ -z "$BROWSER" ]]; then
fi fi
# TODO: Make the sections easier to use. # TODO: Make the sections easier to use.
"$BROWSER" "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}" "$BROWSER" "https://nodejs.org/docs/${$(node --version 2> /dev/null)/%-*}/api/all.html#${1}"
# } # }

View File

@ -15,10 +15,10 @@ local version_formatted
unset node_info unset node_info
typeset -gA node_info typeset -gA node_info
if (( $+functions[nvm_version] )); then if (( $+commands[nodenv] )); then
version="${$(nvm_version)#v}"
elif (( $+commands[nodenv] )); then
version="${${$(nodenv version)#v}[(w)0]}" version="${${$(nodenv version)#v}[(w)0]}"
elif (( $+functions[nvm_version] )); then
version="${$(nvm_version)#v}"
elif (( $+commands[node] )) ; then elif (( $+commands[node] )) ; then
version="${$(node -v)#v}" version="${$(node -v)#v}"
fi fi

View File

@ -1,58 +1,65 @@
# #
# Loads the Node Version Manager and enables npm completion. # Configures Node local installation, loads version managers, and defines
# variables and aliases.
# #
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# Zeh Rizzatti <zehrizzatti@gmail.com> # Zeh Rizzatti <zehrizzatti@gmail.com>
# Indrajit Raychaudhuri <irc@indrajit.com>
# #
# Load manually installed NVM into the shell session. # Possible lookup locations for manually installed nodenv and nvm.
if [[ -s "${NVM_DIR:=$HOME/.nvm}/nvm.sh" ]]; then local_nodenv_paths=({$NODENV_ROOT,{$XDG_CONFIG_HOME/,$HOME/.}nodenv}/bin/nodenv(N))
source "${NVM_DIR}/nvm.sh" local_nvm_paths=({$NVM_DIR,{$XDG_CONFIG_HOME/,$HOME/.}nvm}/nvm.sh(N))
# Load package manager installed NVM into the shell session. # Load manually installed or package manager installed nodenv into the shell
elif (( $+commands[brew] )) && \ # session.
[[ -d "${nvm_prefix::="$(brew --prefix 2> /dev/null)"/opt/nvm}" ]]; then if (( $#local_nodenv_paths || $+commands[nodenv] )); then
source "$(brew --prefix nvm)/nvm.sh"
unset nvm_prefix
# Load manually installed nodenv into the shell session. # Ensure manually installed nodenv is added to path when present.
elif [[ -s "${NODENV_ROOT:=$HOME/.nodenv}/bin/nodenv" ]]; then [[ -s $local_nodenv_paths[1] ]] && path=($local_nodenv_paths[1]:h $path)
path=("${NODENV_ROOT}/bin" $path)
eval "$(nodenv init - --no-rehash zsh)"
# Load package manager installed nodenv into the shell session. eval "$(nodenv init - zsh)"
elif (( $+commands[nodenv] )); then
eval "$(nodenv init - --no-rehash zsh)" # Load manually installed nvm into the shell session.
elif (( $#local_nvm_paths )); then
source "$local_nvm_paths[1]" --no-use
# Load package manager installed nvm into the shell session.
elif (( $+commands[brew] )) \
&& [[ -d "${nvm_path::="$(brew --prefix 2> /dev/null)"/opt/nvm}" ]]; then
source "$nvm_path/nvm.sh" --no-use
fi
unset local_n{odenv,vm}_paths nvm_path
# Return if requirements are not found. # Return if requirements are not found.
elif (( ! $+commands[node] )); then if (( ! $+commands[node] && ! $#functions[(i)n(odenv|vm)] )); then
return 1 return 1
fi fi
# Load NPM and known helper completions. #
typeset -A compl_commands=( # Variables
npm 'npm completion' #
grunt 'grunt --completion=zsh'
gulp 'gulp --completion=zsh'
)
for compl_command in "${(k)compl_commands[@]}"; do N_PREFIX="${XDG_CONFIG_HOME:-$HOME/.config}/n" # The path to 'n' cache.
if (( $+commands[$compl_command] )); then
cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/$compl_command-cache.zsh"
# Completion commands are slow; cache their output if old or missing. #
if [[ "$commands[$compl_command]" -nt "$cache_file" \ # Aliases
|| "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ #
|| ! -s "$cache_file" ]]; then
mkdir -p "$cache_file:h"
command ${=compl_commands[$compl_command]} >! "$cache_file" 2> /dev/null
fi
source "$cache_file" # npm
alias npmi='npm install'
alias npml='npm list'
alias npmo='npm outdated'
alias npmp='npm publish'
alias npmP='npm prune'
alias npmr='npm run'
alias npms='npm search'
alias npmt='npm test'
alias npmu='npm update'
alias npmx='npm uninstall'
unset cache_file alias npmci='npm ci'
fi alias npmcit='npm cit'
done alias npmit='npm it'
unset compl_command{s,}

View File

@ -1,10 +1,8 @@
OCaml # OCaml
=====
Initializes [OCaml][1] package management. Initializes [OCaml][1] package management.
OPAM ## OPAM
----
[OPAM][2] is a package manager for OCaml. [OPAM][2] is a package manager for OCaml.
@ -15,13 +13,12 @@ relevant path and OCaml variables.
Install packages to your local package directory with `opam install`. Install packages to your local package directory with `opam install`.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].* _The authors of this module should be contacted via the [issue tracker][3]._
- [Sebastian Wiesner](https://github.com/lunaryorn) - [Sebastian Wiesner](https://github.com/lunaryorn)
[1]: http://ocaml.org/ [1]: https://ocaml.org/
[2]: http://opam.ocamlpro.com/ [2]: http://opam.ocamlpro.com/
[3]: https://github.com/sorin-ionescu/prezto/issues [3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,50 +1,50 @@
OSX # OSX
===
Defines [macOS][1] aliases and functions. Defines [macOS][1] aliases and functions.
Settings This module must be loaded _before_ the [_`completion`_][2] module so that the
-------- provided completion definitions are loaded automatically by _`completion`_
module.
## Settings
### Dash Keyword ### Dash Keyword
To change the keyword used by `mand` to open man pages in [_Dash.app_][2] from To change the keyword used by `mand` to open man pages in [_Dash.app_][3] from
its default value of 'manpages', add the following line in *zpreztorc* and its default value of 'manpages', add the following line in
replace the **keyword** with the one configured in [_Dash.app_][2]. _`${ZDOTDIR:-$HOME}/.zpreztorc`_ and replace the **keyword** with the one
configured in [_Dash.app_][3].
```sh ```sh
zstyle ':prezto:module:osx:man' dash-keyword 'keyword' zstyle ':prezto:module:osx:man' dash-keyword 'keyword'
``` ```
Aliases ## Aliases
-------
- `cdf` changes the current working director to the current _Finder_ - `cdf` changes the current working director to the current _Finder_ directory.
directory. - `pushdf` pushes the current working directory onto the directory queue and
- `pushdf` pushes the current working directory onto the directory queue and changes the current working director to the current _Finder_ directory.
changes the current working director to the current _Finder_ directory.
Functions ## Functions
---------
- `mand` opens _man_ pages in [_Dash.app_][2]. - `mand` opens _man_ pages in [_Dash.app_][3].
- `manp` opens _man_ pages in _Preview.app_. - `manp` opens _man_ pages in _Preview.app_.
- `pfd` prints the current _Finder_ directory. - `pfd` prints the current _Finder_ directory.
- `pfs` prints the current _Finder_ selection. - `pfs` prints the current _Finder_ selection.
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]). - `tab` creates a new tab (works in both _Terminal_ and [_iTerm.app_][4]).
- `ql` previews files in Quick Look. - `ql` previews files in Quick Look.
- `osx-rm-dir-metadata` deletes .DS\_Store, \_\_MACOSX cruft. - `osx-rm-dir-metadata` deletes _`.DS_Store`_, _`__MACOSX`_ cruft.
- `osx-ls-download-history` displays the macOS download history. - `osx-ls-download-history` displays the macOS download history.
- `osx-rm-download-history` deletes the macOS download history. - `osx-rm-download-history` deletes the macOS download history.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][4].* _The authors of this module should be contacted via the [issue tracker][5]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.apple.com/macosx/ [1]: https://www.apple.com/macos/
[2]: http://kapeli.com/dash [2]: ../completion#readme
[3]: http://www.iterm2.com/ [3]: https://kapeli.com/dash
[4]: https://github.com/sorin-ionescu/prezto/issues [4]: https://www.iterm2.com/
[5]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -8,7 +8,7 @@
function mand { function mand {
if (( $# > 0 )); then if (( $# > 0 )); then
zstyle -s ':prezto:module:osx:man' dash-keyword 'dashkw' || dashkw='manpages' zstyle -s ':prezto:module:osx:man' dash-keyword 'dashkw' || dashkw='manpages'
open "dash://$dashkw:$1" 2> /dev/null open "dash://$dashkw%3A$1" 2> /dev/null
if (( $? != 0 )); then if (( $? != 0 )); then
print "$0: Dash is not installed" >&2 print "$0: Dash is not installed" >&2
break break

View File

@ -1,11 +1,9 @@
Pacman # Pacman
======
Provides aliases and functions for the [Pacman][1] package manager and Provides aliases and functions for the [Pacman][1] package manager and
frontends. frontends.
Settings ## Settings
--------
It is possible to use a Pacman frontend with the pacman aliases provided by this 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 package as long as that frontend supports the same command line options (The
@ -17,53 +15,51 @@ supported by Archlinux. It is currently recommended to manually build AUR
packages using the [provided instructions][3]. The [aurutils][4] project has a packages using the [provided instructions][3]. The [aurutils][4] project has a
set of small utilities to make this easier. set of small utilities to make this easier.
To enable a Pacman frontend, add the following line to *zpreztorc*, substituting To enable a different Pacman frontend, add the following to
`pacman_frontend` with the name of the frontent: _`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'<frontend>'` with the name
of the preferred frontend.
```sh ```sh
zstyle ':prezto:module:pacman' frontend 'pacman_frontend' zstyle ':prezto:module:pacman' frontend '<frontend>'
``` ```
Aliases ## Aliases
-------
### Pacman ### Pacman
- `pac` is short for `pacman`. - `pac` is short for `pacman`.
- `paci` installs packages from repositories. - `paci` installs packages from repositories.
- `pacI` installs packages from files. - `pacI` installs packages from files.
- `pacx` removes packages and unneeded dependencies. - `pacx` removes packages and unneeded dependencies.
- `pacX` removes packages, their configuration, 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 repositories.
- `pacQ` displays information about a package from the local database. - `pacQ` displays information about a package from the local database.
- `pacs` searches for packages in the repositories. - `pacs` searches for packages in the repositories.
- `pacS` searches for packages in the local database. - `pacS` searches for packages in the local database.
- `pacu` synchronizes the local package and Arch Build System (requires `abs`) - `pacu` synchronizes the local package and Arch Build System (requires `abs`)
databases against the repositories. databases against the repositories.
- `pacU` synchronizes the local package database against the repositories then - `pacU` synchronizes the local package database against the repositories then
upgrades outdated packages. upgrades outdated packages.
- `pacman-list-orphans` lists orphan packages. - `pacman-list-orphans` lists orphan packages.
- `pacman-remove-orphans` removes orphan packages. - `pacman-remove-orphans` removes orphan packages.
### Frontends ### Frontends
Functions ## Functions
---------
- `aurget` clone an aur package - `aurget` clone an aur package.
- `pacman-list-explicit` lists explicitly installed pacman packages. - `pacman-list-explicit` lists explicitly installed pacman packages.
- `pacman-list-disowned` lists pacman disowned files. - `pacman-list-disowned` lists pacman disowned files.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][5].* _The authors of this module should be contacted via the [issue tracker][5]._
- [Benjamin Boudreau](https://github.com/dreur) - [Benjamin Boudreau](https://github.com/dreur)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.archlinux.org/pacman/ [1]: https://www.archlinux.org/pacman/
[2]: https://wiki.archlinux.org/index.php/AUR_helpers#Comparison_table [2]: https://wiki.archlinux.org/title/AUR_helpers#Comparison_tables
[3]: https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages [3]: https://wiki.archlinux.org/title/Arch_User_Repository#Installing_and_upgrading_packages
[4]: https://github.com/AladW/aurutils [4]: https://github.com/AladW/aurutils
[5]: https://github.com/sorin-ionescu/prezto/issues [5]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,18 +1,16 @@
Perl # Perl
====
Enables local [Perl][1] module installation on macOS and defines aliases. Enables local [Perl][1] module installation on macOS and defines aliases.
Local Module Installation ## Local Module Installation
-------------------------
Perl versions older than 5.14 do not support the local installation of Perl Perl versions older than 5.14 do not support the local installation of Perl
modules natively. This module allows for local installation of Perl modules on modules natively. This module allows for local installation of Perl modules on
macOS in *~/Library/Perl/5.12* by altering the environment. macOS in _`~/Library/Perl/5.12`_ by altering the environment.
### Usage ### Usage
For Perl versions older than 5.14, install *local::lib*. For Perl versions older than 5.14, install _`local::lib`_.
```console ```console
curl -L -C - -O http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz curl -L -C - -O http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz
@ -22,73 +20,68 @@ perl Makefile.PL --bootstrap=$HOME/Library/Perl/5.12
make && make test && make install make && make test && make install
``` ```
Install *cpanminus*: Install _cpanminus_:
```console ```console
curl -L http://cpanmin.us | perl - --self-upgrade curl -L http://cpanmin.us | perl - --self-upgrade
``` ```
Perlbrew ## Perlbrew
--------
An alternative to the above is to use [Perlbrew][2], which allows for the An alternative to the above is to use [Perlbrew][2], which allows for the
management of multiple, isolated Perl installations in the home directory. management of multiple, isolated Perl installations in the home directory.
plenv ## plenv
-----
Yet another alternative is [plenv][3]. This is inspired from rbenv and enables Yet another alternative is [_plenv_][3]. This is inspired from _rbenv_ and
switching between multiple binary installations. enables switching between multiple binary installations.
The subcommands of plenv is similar with rbenv. The subcommands of _plenv_ is similar with _rbenv_.
Aliases ## Aliases
-------
### General ### General
- `pl` is short for `perl`. - `pl` is short for `perl`.
- `pld` looks up Perl documentation (`perldoc`). - `pld` looks up Perl documentation (`perldoc`).
- `ple` executes a one line program in a loop (`perl -wlne`). - `ple` executes a one line program in a loop (`perl -wlne`).
### Perlbrew ### Perlbrew (plb)
- `plb` manages Perl environments. - `plb` manages Perl environments.
- `plba` lists available Perl versions. - `plba` lists available Perl versions.
- `plbi` installs a Perl version. - `plbi` installs a Perl version.
- `plbl` lists installed Perl versions. - `plbl` lists installed Perl versions.
- `plbo` temporarily turns off Perlbrew. - `plbo` temporarily turns off Perlbrew.
- `plbO` turns off Perlbrew. - `plbO` turns off Perlbrew.
- `plbs` switches to a Perl version. - `plbs` switches to a Perl version.
- `plbu` uninstalls a Perl version. - `plbu` uninstalls a Perl version.
- `plbx` temporarily sets the Perl version to use. - `plbx` temporarily sets the Perl version to use.
### plenv ### plenv (plv)
- `plv` manages Perl environments. - `plv` manages Perl environments.
- `plvc` List all available plenv commands. - `plvc` List all available plenv commands.
- `plvl` Set or show the local application-specific Perl version. - `plvl` Set or show the local application-specific Perl version.
- `plvg` Set or show the global Perl version. - `plvg` Set or show the global Perl version.
- `plvs` Set or show the shell-specific Perl version. - `plvs` Set or show the shell-specific Perl version.
- `plvi` Install a Perl version using the perl-build plugin. - `plvi` Install a Perl version using the perl-build plugin.
- `plvu` Uninstall a specific Perl version. - `plvu` Uninstall a specific Perl version.
- `plvr` Rehash plenv shims (run this after installing executables). - `plvr` Rehash plenv shims (run this after installing executables).
- `plvv` Show the current Perl version and its origin. - `plvv` Show the current Perl version and its origin.
- `plvV` List all Perl versions available to plenv. - `plvV` List all Perl versions available to plenv.
- `plvw` Display the full path to an executable. - `plvw` Display the full path to an executable.
- `plvW` List all Perl versions that contain the given executable. - `plvW` List all Perl versions that contain the given executable.
- `plvm` List cpan modules in current perl. - `plvm` List cpan modules in current perl.
- `plvM` Migrate cpan modules from other version. - `plvM` Migrate cpan modules from other version.
- `plvI` Install cpanm. - `plvI` Install cpanm.
Functions ## Functions
---------
- `perl-info` exposes information about the Perl environment via the - `perl-info` exposes information about the Perl environment via the
`$perl_info` associative array. `$perl_info` associative array.
Theming ## Theming
-------
To display the name of the current Perl version in a prompt, define the To display the name of the current Perl version in a prompt, define the
following style in the `prompt_name_setup` function. following style in the `prompt_name_setup` function.
@ -101,14 +94,13 @@ zstyle ':prezto:module:perl:info:version' format 'version:%v'
Then add `$perl_info[version]` to `$PROMPT` or `$RPROMPT` and call Then add `$perl_info[version]` to `$PROMPT` or `$RPROMPT` and call
`perl-info` in the `prompt_name_precmd` hook function. `perl-info` in the `prompt_name_precmd` hook function.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][4].* _The authors of this module should be contacted via the [issue tracker][4]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.perl.org [1]: https://www.perl.org
[2]: http://perlbrew.pl [2]: https://perlbrew.pl
[3]: https://github.com/tokuhirom/plenv [3]: https://github.com/tokuhirom/plenv
[4]: https://github.com/sorin-ionescu/prezto/issues [4]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,26 +1,24 @@
Prompt # Prompt
======
Loads prompt [themes][1]. Loads prompt [themes][1].
Settings ## Settings
--------
### Prompt Theme ### Prompt Theme
To select a prompt theme, add the following to *zpreztorc*, and replace **name** To select a prompt theme, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_,
with the name of the theme you wish to load. Setting it to **random** will load and replace `'<name>'` with the name of the theme you wish to load. Setting it
a random theme. to `'random'` will load a random theme every time.
```sh ```sh
zstyle ':prezto:module:prompt' theme 'name' zstyle ':prezto:module:prompt' theme '<name>'
``` ```
### Prompt Display Length ### Prompt Display Length
To change working directory prompt display length from 'short', set the To change working directory prompt display length from 'short', set the
following to 'long' (without `~` expansion) or 'full' (with `~` expansion) following to 'long' (without `~` expansion) or 'full' (with `~` expansion) in
in *zpreztorc*. _`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh ```sh
zstyle ':prezto:module:prompt' pwd-length 'short' zstyle ':prezto:module:prompt' pwd-length 'short'
@ -35,22 +33,21 @@ this can be disabled with the following snippet.
zstyle ':prezto:module:prompt' show-return-val 'no' zstyle ':prezto:module:prompt' show-return-val 'no'
``` ```
Theming ## Theming
-------
A prompt theme is an autoloadable function file with a special name, A prompt theme is an autoloadable function file with a special name,
`prompt_name_setup`, placed anywhere in `$fpath`, but for the purpose of this `prompt_name_setup`, placed anywhere in `$fpath`, but for the purpose of this
project, themes **should** be placed in the *modules/prompt/functions* project, themes **should** be placed in the _modules/prompt/functions_
directory. directory.
### Required Variables ### Required Variables
To ensure that your function works with the editor-info module you'll need to To ensure that your function works with the editor-info module you'll need to
set the following variable: set the following variable in _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
``` ```sh
# Tell prezto we can manage this prompt # Tell prezto we can manage this prompt
zstyle ':prezto:module:prompt' managed 'yes' zstyle ':prezto:module:prompt' managed 'yes'
``` ```
This is to ensure compatibility with outside prompts, while allowing prezto This is to ensure compatibility with outside prompts, while allowing prezto
@ -122,7 +119,7 @@ function prompt_name_preview {
### Hook Functions ### Hook Functions
There are many Zsh [hook][2] functions, but mostly the *precmd* hook will be There are many Zsh [hook][2] functions, but mostly the _precmd_ hook will be
used. used.
#### `prompt_name_precmd` #### `prompt_name_precmd`
@ -134,7 +131,8 @@ When calling functions to get information to display in a prompt, do not assume
that all the dependencies have been loaded. Always check for the availability of that all the dependencies have been loaded. Always check for the availability of
a function before you calling it. a function before you calling it.
**Do not register hook functions. They will be registered by the `prompt` function.** **Do not register hook functions. They will be automatically registered by the
`prompt` function.**
The most basic example of this function can be seen below. The most basic example of this function can be seen below.
@ -146,10 +144,9 @@ function prompt_name_precmd {
} }
``` ```
Troubleshooting ## Troubleshooting
---------------
### Fonts aren't displaying properly. ### Fonts aren't displaying properly
On most systems, themes which use special characters need to have a patched font On most systems, themes which use special characters need to have a patched font
installed and configured properly. installed and configured properly.
@ -157,16 +154,14 @@ installed and configured properly.
Powerline provides some information on [terminal support][4] and [how to install Powerline provides some information on [terminal support][4] and [how to install
patched fonts][5] which should fix most font issues. patched fonts][5] which should fix most font issues.
## Authors
Authors _The authors of this module should be contacted via the [issue tracker][3]._
-------
*The authors of this module should be contacted via the [issue tracker][3].* - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Sorin Ionescu](https://github.com/sorin-ionescu) [1]: https://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Prompt-Themes
[2]: https://zsh.sourceforge.net/Doc/Release/Functions.html#Hook-Functions
[1]: http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Prompt-Themes
[2]: http://zsh.sourceforge.net/Doc/Release/Functions.html#Hook-Functions
[3]: https://github.com/sorin-ionescu/prezto/issues [3]: https://github.com/sorin-ionescu/prezto/issues
[4]: http://powerline.readthedocs.io/en/master/usage.html#terminal-emulator-requirements [4]: https://powerline.readthedocs.io/en/master/usage.html#terminal-emulator-requirements
[5]: http://powerline.readthedocs.io/en/latest/installation.html#fonts-installation [5]: https://powerline.readthedocs.io/en/latest/installation.html#fonts-installation

@ -1 +1 @@
Subproject commit 95c2b1577f455728ec01cec001a86c216d0af2bd Subproject commit bbbc92bd01592513a6b7739a45b7911af18acaef

@ -1 +1 @@
Subproject commit d26bdcd6010cfe82bc7bab07e4363b40be834cc8 Subproject commit f5d61840ae3a4f8c2765e1a67d94d9a96de71601

@ -1 +0,0 @@
Subproject commit 2f4b15041fe31d85dc9ef705b818c3a0e6985da3

View File

@ -9,7 +9,7 @@
# - The prompt is prefixed by a character sequence of your choice. # - The prompt is prefixed by a character sequence of your choice.
# - Only displays the current directory instead of the full path. # - Only displays the current directory instead of the full path.
# - Displays the current branch when in a git project (this requires loading # - Displays the current branch when in a git project (this requires loading
# the git module before prompt in ~/.zpreztorc). # the git module before prompt in ${ZDOTDIR:-$HOME}/.zpreztorc).
# - Displays a character at the end of the prompt when in a git project with # - Displays a character at the end of the prompt when in a git project with
# "dirty" files. # "dirty" files.
# #
@ -17,7 +17,7 @@
# This prompt's prefix symbol and colors are customizable: # This prompt's prefix symbol and colors are customizable:
# prompt cloud [<symbol>] [<color1>] [<color2>] # prompt cloud [<symbol>] [<color1>] [<color2>]
# #
# In ~/.zpreztorc: # In ${ZDOTDIR:-$HOME}/.zpreztorc:
# zstyle ':prezto:module:prompt' theme 'cloud' \ # zstyle ':prezto:module:prompt' theme 'cloud' \
# ['<symbol>'] \ # ['<symbol>'] \
# ['<color1>'] \ # ['<color1>'] \
@ -53,7 +53,7 @@ This prompt's prefix symbol and colors are customizable:
prompt cloud [<symbol>] [<color1>] [<color2>] prompt cloud [<symbol>] [<color1>] [<color2>]
In ~/.zpreztorc: In ${ZDOTDIR:-$HOME}/.zpreztorc:
zstyle ':prezto:module:prompt' theme 'cloud' ['<symbol>'] ['<color1>'] ['<color2>'] zstyle ':prezto:module:prompt' theme 'cloud' ['<symbol>'] ['<color1>'] ['<color2>']
If these options are not provided, the symbol defaults to ☁ with colors cyan If these options are not provided, the symbol defaults to ☁ with colors cyan

View File

@ -1 +0,0 @@
../external/powerlevel9k/powerlevel9k.zsh-theme

View File

@ -12,6 +12,16 @@ autoload -Uz promptinit && promptinit
zstyle -a ':prezto:module:prompt' theme 'prompt_argv' zstyle -a ':prezto:module:prompt' theme 'prompt_argv'
if [[ "$TERM" == (dumb|linux|*bsd*) ]] || (( $#prompt_argv < 1 )); then if [[ "$TERM" == (dumb|linux|*bsd*) ]] || (( $#prompt_argv < 1 )); then
prompt 'off' prompt 'off'
elif [[ "$prompt_argv[1]" == 'powerlevel9k' ]] ; then
<<EOW
WARNING: Prezto does not support 'powerlevel9k' anymore as it has
been deprecated and is not supported by its author.
Consider migrating to 'powerlevel10k' instead by setting:
zstyle ':prezto:module:prompt' theme 'powerlevel10k'
in ${${ZDOTDIR:-$HOME}/#$HOME/~}/.zpreztorc.
Switching to prezto default prompt 'sorin'..."
EOW
prompt 'sorin'
else else
prompt "$prompt_argv[@]" prompt "$prompt_argv[@]"
fi fi

View File

@ -1,20 +1,23 @@
Python # Python
======
Enables local Python and local Python package installation. Enables local Python and local Python package installation.
Settings This module must be loaded _before_ the _`completion`_ module so that the
-------- provided completion definitions are loaded.
This module supports virtual environments from conda and virtualenvwrapper. By ## Settings
default, only virtualenvwrapper is enabled. To disable virtualenvwrapper, add
the following to *zpreztorc*. This module supports virtual environments from conda and
[_virtualenvwrapper_][2]. By default, only _virtualenvwrapper_ is enabled. To
disable _virtualenvwrapper_, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh ```sh
zstyle ':prezto:module:python' skip-virtualenvwrapper-init 'on' zstyle ':prezto:module:python' skip-virtualenvwrapper-init 'on'
``` ```
Conda support is enabled by adding the following to *zpreztorc*. Conda support can be enabled by adding the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh ```sh
zstyle ':prezto:module:python' conda-init 'on' zstyle ':prezto:module:python' conda-init 'on'
@ -22,24 +25,24 @@ zstyle ':prezto:module:python' conda-init 'on'
Caution: using conda and virtualenvwrapper at the same time may cause conflicts. Caution: using conda and virtualenvwrapper at the same time may cause conflicts.
Local Python Installation ## Local Python Installation
-------------------------
[pyenv][4] builds and installs multiple Python versions locally in the home [_pyenv_][4] builds and installs multiple Python versions locally in the home
directory. directory.
This module prepends the pyenv directory to the path variable to enable the This module prepends the _pyenv_ directory to the path variable to enable the
execution of `pyenv`. execution of `pyenv`.
### Usage ### Usage
Install Python versions with `pyenv install` into `~/.pyenv/versions`. Install Python versions with `pyenv install` into _`~/.pyenv/versions`_.
This will be loaded automatically if pyenv is installed to `$PYENV_ROOT`, This will be loaded automatically if pyenv is installed to `$PYENV_ROOT`,
`~/.pyenv`, or if the `pyenv` command is on the path. _`~/.pyenv`_, or if the `pyenv` command is on the path. By default, `PYENV_ROOT`
is set to _`$HOME/.pyenv`_. You can set it to an alternate location and export
it in [_`${ZDOTDIR:-$HOME}/.zshenv`_][6].
Local Package Installation ## Local Package Installation
--------------------------
Since version 2.6, Python supports per user package installation, as defined in Since version 2.6, Python supports per user package installation, as defined in
[PEP 370][1]. [PEP 370][1].
@ -52,10 +55,9 @@ documentation.
Install packages into the per user site directory with `pip install --user`. Install packages into the per user site directory with `pip install --user`.
virtualenvwrapper ## virtualenvwrapper
-----------------
[`virtualenvwrapper`][2] is a frontend to the popular [`virtualenv`][3] utility. [_virtualenvwrapper_][2] is a frontend to the popular [_virtualenv_][3] utility.
`virtualenv` creates isolated Python environments and `virtualenvwrapper` `virtualenv` creates isolated Python environments and `virtualenvwrapper`
provides convenient shell functions to create, switch, and manage them. provides convenient shell functions to create, switch, and manage them.
@ -64,14 +66,15 @@ provides convenient shell functions to create, switch, and manage them.
Install `virtualenvwrapper`. Install `virtualenvwrapper`.
Virtual environments are stored in `~/.virtualenvs`. Virtual environments are stored in _`~/.virtualenvs`_.
There are configuration variables that have to be set to enable certain features. There are configuration variables that have to be set to enable certain
If you wish to use these features, export the variables in [`zshenv`][6]. features. If you wish to use these features, export the variables in
[_`${ZDOTDIR:-$HOME}/.zshenv`_][6].
The variable `$PROJECT_HOME` tells `virtualenvwrapper` where to place project The variable `$PROJECT_HOME` tells `virtualenvwrapper` where to place project
working directories. It must be set and the directory created before `mkproject` working directories. It must be set and the directory created before `mkproject`
is used. Replace *Developer* with your projects directory. is used. Replace _Developer_ with your projects directory.
```sh ```sh
export PROJECT_HOME="$HOME/Developer" export PROJECT_HOME="$HOME/Developer"
@ -119,46 +122,44 @@ zstyle ':prezto:module:python:virtualenv' auto-switch 'yes'
zstyle ':prezto:module:python:virtualenv' initialize 'no' zstyle ':prezto:module:python:virtualenv' initialize 'no'
``` ```
Aliases ## Aliases
-------
- `py` is short for `python`. - `py` is short for `python`.
- `py2` is short for `python2`. - `py2` is short for `python2`.
- `py3` is short for `python3`. - `py3` is short for `python3`.
Functions ## Functions
---------
- `python-info` exposes information about the Python environment via the - `python-info` exposes information about the Python environment via the
`$python_info` associative array. `$python_info` associative array.
Theming ## Theming
-------
To display the name of the current virtual enviroment in a prompt, define the To display the name of the current virtual environment in a prompt, define the
following style in the `prompt_name_setup` function. following style in the `prompt_name_setup` function.
# %v - virtualenv name. ```sh
zstyle ':prezto:module:python:info:virtualenv' format 'virtualenv:%v' # %v - virtualenv name.
zstyle ':prezto:module:python:info:virtualenv' format 'virtualenv:%v'
```
Then add `$python_info[virtualenv]` to `$PROMPT` or `$RPROMPT` and call Then add `$python_info[virtualenv]` to `$PROMPT` or `$RPROMPT` and call
`python-info` in the `prompt_name_preexec` hook function. `python-info` in the `prompt_name_preexec` hook function.
Similarly, you can use `:prezto:module:python:info:version:format` with `%v` for Similarly, you can use `:prezto:module:python:info:version:format` with `%v` for
the version and add `$python_info[version]` to your prompt for the current the version and add `$python_info[version]` to your prompt for the current
python version/ python version.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][5].* _The authors of this module should be contacted via the [issue tracker][5]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Sebastian Wiesner](https://github.com/lunaryorn) - [Sebastian Wiesner](https://github.com/lunaryorn)
[1]: http://www.python.org/dev/peps/pep-0370/ [1]: https://www.python.org/dev/peps/pep-0370/
[2]: http://www.doughellmann.com/projects/virtualenvwrapper/ [2]: https://www.doughellmann.com/projects/virtualenvwrapper/
[3]: http://pypi.python.org/pypi/virtualenv [3]: https://pypi.org/project/virtualenv/
[4]: https://github.com/yyuu/pyenv [4]: https://github.com/yyuu/pyenv
[5]: https://github.com/sorin-ionescu/prezto/issues [5]: https://github.com/sorin-ionescu/prezto/issues
[6]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zshenv [6]: ../../runcoms#zshenv

View File

@ -0,0 +1,19 @@
#compdef -P pip[0-9.]#
#autoload
#
# Pip completion, delegating to pip to do all the completion work.
#
# Authors:
# Indrajit Raychaudhuri <irc@indrajit.com>
#
if (( $+commands[$words[1]] )); then
function _pip_completion {
compadd -- $( COMP_WORDS="$words[*]" COMP_CWORD=$(( CURRENT - 1 )) \
PIP_AUTO_COMPLETE=1 $words[1] 2>/dev/null )
}
_pip_completion "$@"
fi

View File

@ -5,71 +5,77 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# Sebastian Wiesner <lunaryorn@googlemail.com> # Sebastian Wiesner <lunaryorn@googlemail.com>
# Patrick Bos <egpbos@gmail.com> # Patrick Bos <egpbos@gmail.com>
# Indrajit Raychaudhuri <irc@indrajit.com>
# #
# Load dependencies # Load dependencies.
pmodload 'helper' pmodload 'helper'
# Load manually installed pyenv into the path # Load manually installed or package manager installed pyenv into the shell
if [[ -s "${PYENV_ROOT:=$HOME/.pyenv}/bin/pyenv" ]]; then # session.
path=("${PYENV_ROOT}/bin" $path) if [[ -s "${local_pyenv::=${PYENV_ROOT:-$HOME/.pyenv}/bin/pyenv}" ]] \
eval "$(pyenv init - --no-rehash zsh)" || (( $+commands[pyenv] )); then
# Load pyenv into the current python session # Ensure manually installed pyenv is added to path when present.
elif (( $+commands[pyenv] )); then [[ -s $local_pyenv ]] && path=($local_pyenv:h $path)
eval "$(pyenv init - --no-rehash zsh)"
# pyenv 2+ requires shims to be added to path before being initialized.
autoload -Uz is-at-least
if is-at-least 2 ${"$(pyenv --version 2>&1)"[(w)2]}; then
eval "$(pyenv init --path zsh)"
fi
eval "$(pyenv init - zsh)"
# Prepend PEP 370 per user site packages directory, which defaults to # Prepend PEP 370 per user site packages directory, which defaults to
# ~/Library/Python on macOS and ~/.local elsewhere, to PATH. The # ~/Library/Python on macOS and ~/.local elsewhere, to PATH. The
# path can be overridden using PYTHONUSERBASE. # path can be overridden using PYTHONUSERBASE.
else else
if [[ -n "$PYTHONUSERBASE" ]]; then if [[ -n "$PYTHONUSERBASE" ]]; then
path=($PYTHONUSERBASE/bin $path) path=($PYTHONUSERBASE/bin(N) $path)
elif is-darwin; then elif is-darwin; then
path=($HOME/Library/Python/*/bin(N) $path) path=($HOME/Library/Python/*/bin(N) $path)
else else
# This is subject to change. # This is subject to change.
path=($HOME/.local/bin $path) path=($HOME/.local/bin(N) $path)
fi fi
fi fi
unset local_pyenv
# Return if requirements are not found. # Return if requirements are not found.
if (( ! $+commands[python] && ! $+commands[pyenv] )); then if (( ! $#commands[(i)python[23]#] && ! $+functions[pyenv] )); then
return 1 return 1
fi fi
function _python-workon-cwd { function _python-workon-cwd {
# Check if this is a Git repo # Check if this is a Git repo.
local GIT_REPO_ROOT="" local GIT_REPO_ROOT="$(git rev-parse --show-toplevel 2> /dev/null)"
local GIT_TOPLEVEL="$(git rev-parse --show-toplevel 2> /dev/null)" # Get absolute path, resolving symlinks.
if [[ $? == 0 ]]; then local PROJECT_ROOT="$PWD:A"
GIT_REPO_ROOT="$GIT_TOPLEVEL"
fi
# Get absolute path, resolving symlinks
local PROJECT_ROOT="${PWD:A}"
while [[ "$PROJECT_ROOT" != "/" && ! -e "$PROJECT_ROOT/.venv" \ while [[ "$PROJECT_ROOT" != "/" && ! -e "$PROJECT_ROOT/.venv" \
&& ! -d "$PROJECT_ROOT/.git" && "$PROJECT_ROOT" != "$GIT_REPO_ROOT" ]]; do && ! -d "$PROJECT_ROOT/.git" && "$PROJECT_ROOT" != "$GIT_REPO_ROOT" ]]; do
PROJECT_ROOT="${PROJECT_ROOT:h}" PROJECT_ROOT="$PROJECT_ROOT:h"
done done
if [[ "$PROJECT_ROOT" == "/" ]]; then if [[ $PROJECT_ROOT == "/" ]]; then
PROJECT_ROOT="." PROJECT_ROOT="."
fi fi
# Check for virtualenv name override # Check for virtualenv name override.
local ENV_NAME="" local ENV_NAME=""
if [[ -f "$PROJECT_ROOT/.venv" ]]; then if [[ -f "$PROJECT_ROOT/.venv" ]]; then
ENV_NAME="$(cat "$PROJECT_ROOT/.venv")" ENV_NAME="$(<$PROJECT_ROOT/.venv)"
elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]]; then elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]]; then
ENV_NAME="$PROJECT_ROOT/.venv" ENV_NAME="$PROJECT_ROOT/.venv"
elif [[ "$PROJECT_ROOT" != "." ]]; then elif [[ $PROJECT_ROOT != "." ]]; then
ENV_NAME="${PROJECT_ROOT:t}" ENV_NAME="$PROJECT_ROOT:t"
fi fi
if [[ -n $CD_VIRTUAL_ENV && "$ENV_NAME" != "$CD_VIRTUAL_ENV" ]]; then if [[ -n $CD_VIRTUAL_ENV && "$ENV_NAME" != "$CD_VIRTUAL_ENV" ]]; then
# We've just left the repo, deactivate the environment # We've just left the repo, deactivate the environment.
# Note: this only happens if the virtualenv was activated automatically # Note: this only happens if the virtualenv was activated automatically.
deactivate && unset CD_VIRTUAL_ENV deactivate && unset CD_VIRTUAL_ENV
fi fi
if [[ "$ENV_NAME" != "" ]]; then if [[ $ENV_NAME != "" ]]; then
# Activate the environment only if it is not already active # Activate the environment only if it is not already active.
if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then
if [[ -n "$WORKON_HOME" && -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then if [[ -n "$WORKON_HOME" && -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then
workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME"
@ -80,17 +86,17 @@ function _python-workon-cwd {
fi fi
} }
# Load auto workon cwd hook # Load auto workon cwd hook.
if zstyle -t ':prezto:module:python:virtualenv' auto-switch 'yes'; then if zstyle -t ':prezto:module:python:virtualenv' auto-switch; then
# Auto workon when changing directory # Auto workon when changing directory.
autoload -Uz add-zsh-hook autoload -Uz add-zsh-hook
add-zsh-hook chpwd _python-workon-cwd add-zsh-hook chpwd _python-workon-cwd
fi fi
# Load virtualenvwrapper into the shell session, if pre-requisites are met # Load virtualenvwrapper into the shell session, if pre-requisites are met
# and unless explicitly requested not to # and unless explicitly requested not to
if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) \
zstyle -T ':prezto:module:python:virtualenv' initialize ; then && zstyle -T ':prezto:module:python:virtualenv' initialize ; then
# Set the directory where virtual environments are stored. # Set the directory where virtual environments are stored.
export WORKON_HOME="${WORKON_HOME:-$HOME/.virtualenvs}" export WORKON_HOME="${WORKON_HOME:-$HOME/.virtualenvs}"
@ -105,7 +111,7 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \
# can exist in 'pyenv' synthesized paths (e.g., '~/.pyenv/plugins') instead. # can exist in 'pyenv' synthesized paths (e.g., '~/.pyenv/plugins') instead.
local -a pyenv_plugins local -a pyenv_plugins
if (( $+commands[pyenv] )); then if (( $+commands[pyenv] )); then
pyenv_plugins=(${(@oM)${(f)"$(pyenv commands --no-sh 2>/dev/null)"}:#virtualenv*}) pyenv_plugins=(${(@oM)${(f)"$(pyenv commands --no-sh 2> /dev/null)"}:#virtualenv*})
fi fi
if (( $pyenv_plugins[(i)virtualenv-init] <= $#pyenv_plugins )); then if (( $pyenv_plugins[(i)virtualenv-init] <= $#pyenv_plugins )); then
@ -117,19 +123,10 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \
pyenv "$pyenv_plugins[(R)virtualenvwrapper(_lazy|)]" pyenv "$pyenv_plugins[(R)virtualenvwrapper(_lazy|)]"
fi fi
else else
# Fallback to 'virtualenvwrapper' without 'pyenv' wrapper if available # Fallback to 'virtualenvwrapper' without 'pyenv' wrapper if 'python' is
# in '$path' or in an alternative location on a Debian based system. # available in '$path'.
# if (( ! $+VIRTUALENVWRAPPER_PYTHON )) && (( $#commands[(i)python[23]#] )); then
# If homebrew is installed and the python location wasn't overridden via VIRTUALENVWRAPPER_PYTHON=$commands[(i)python[23]#]
# environment variable we fall back to python3 then python2 in that order.
# This is needed to fix an issue with virtualenvwrapper as homebrew no
# longer shadows the system python.
if [[ -z "$VIRTUALENVWRAPPER_PYTHON" ]] && (( $+commands[brew] )); then
if (( $+commands[python3] )); then
export VIRTUALENVWRAPPER_PYTHON=$commands[python3]
elif (( $+commands[python2] )); then
export VIRTUALENVWRAPPER_PYTHON=$commands[python2]
fi
fi fi
virtenv_sources=( virtenv_sources=(
@ -137,7 +134,7 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \
/usr/share/virtualenvwrapper/virtualenvwrapper(_lazy|).sh(OnN) /usr/share/virtualenvwrapper/virtualenvwrapper(_lazy|).sh(OnN)
) )
if (( $#virtenv_sources )); then if (( $#virtenv_sources )); then
source "${virtenv_sources[1]}" source "$virtenv_sources[1]"
fi fi
unset virtenv_sources unset virtenv_sources
@ -146,38 +143,7 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \
unset pyenv_plugins unset pyenv_plugins
fi fi
# Load PIP completion. # Load conda into the shell session, if requested.
# Detect and use one available from among 'pip', 'pip2', 'pip3' variants
if [[ -n "$PYENV_ROOT" ]]; then
for pip in pip{,2,3}; do
pip_command="$(pyenv which "$pip" 2>/dev/null)"
[[ -n "$pip_command" ]] && break
done
unset pip
else
pip_command="$commands[(i)pip(|[23])]"
fi
if [[ -n "$pip_command" ]]; then
cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/pip-cache.zsh"
if [[ "$pip_command" -nt "$cache_file" \
|| "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
|| ! -s "$cache_file" ]]; then
mkdir -p "$cache_file:h"
# pip is slow; cache its output. And also support 'pip2', 'pip3' variants
"$pip_command" completion --zsh \
| sed -e "s/\(compctl -K [-_[:alnum:]]* pip\).*/\1{,2,3}{,.{0..9}}/" \
>! "$cache_file" \
2> /dev/null
fi
source "$cache_file"
unset cache_file
fi
unset pip_command
# Load conda into the shell session, if requested
zstyle -T ':prezto:module:python' conda-init zstyle -T ':prezto:module:python' conda-init
if (( $? && $+commands[conda] )); then if (( $? && $+commands[conda] )); then
if (( $(conda ..changeps1) )); then if (( $(conda ..changeps1) )); then

View File

@ -1,34 +1,31 @@
Ruby on Rails # Ruby on Rails
=============
Defines [Ruby on Rails][1] aliases. Defines [Ruby on Rails][1] aliases.
Aliases ## Aliases
-------
- `ror` is short for `rails`. - `ror` is short for `rails`.
- `rorc` starts the Rails console. - `rorc` starts the Rails console.
- `rordc` starts the Rails console connected to the database. - `rordc` starts the Rails console connected to the database.
- `rordm` migrates the database. - `rordm` migrates the database.
- `rordM` migrates the database and recreates the test database. - `rordM` migrates the database and recreates the test database.
- `rordr` rolls the database schema back to the previous version. - `rordr` rolls the database schema back to the previous version.
- `rorg` generates new code. - `rorg` generates new code.
- `rorl` displays the log. - `rorl` displays the log.
- `rorlc` truncates logs to zero bytes. - `rorlc` truncates logs to zero bytes.
- `rorp` installs a plugin. - `rorp` installs a plugin.
- `rorr` runs code in the application environment. - `rorr` runs code in the application environment.
- `rors` starts the Rails server. - `rors` starts the Rails server.
- `rorsd` starts the Rails server with the debugger. - `rorsd` starts the Rails server with the debugger.
- `rorx` destroys newly generated code. - `rorx` destroys newly generated code.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].* _The authors of this module should be contacted via the [issue tracker][2]._
- [Robby Russell](https://github.com/robbyrussell) - [Robby Russell](https://github.com/robbyrussell)
- [Jake Bell](https://github.com/theunraveler) - [Jake Bell](https://github.com/theunraveler)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://rubyonrails.org [1]: https://rubyonrails.org
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,27 +1,26 @@
Rsync # Rsync
=====
Defines [rsync][1] aliases. Defines [rsync][1] aliases.
macOS users are encouraged to use [Bombich's rsync][2], which has HFS+ macOS users are encouraged to use _rsync_ from [Homebrew][2] or [MacPorts][3],
enhancements. which has additional enhancements including patches from [Bombich][4].
Aliases ## Aliases
-------
- `rsync-copy` copies files and directories from *source* to *destination*. - `rsync-copy` copies files and directories from _source_ to _destination_.
- `rsync-move` moves files and directories from *source* to *destination*. - `rsync-move` moves files and directories from _source_ to _destination_.
- `rsync-update` updates files and directories on *destination*. - `rsync-update` updates files and directories on _destination_.
- `rsync-synchronize` synchronizes files and directories between *source* and - `rsync-synchronize` synchronizes files and directories between _source_ and
*destination*. _destination_.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].* _The authors of this module should be contacted via the [issue tracker][5]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://rsync.samba.org [1]: https://rsync.samba.org
[2]: https://bombich.com/kb/ccc5/credits#rsync [2]: https://github.com/Homebrew/homebrew-core
[3]: https://github.com/sorin-ionescu/prezto/issues [3]: https://ports.macports.org/port/rsync
[4]: https://bombich.com/kb/ccc5/credits#rsync
[5]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -20,14 +20,19 @@ pmodload 'helper'
_rsync_cmd='rsync --verbose --progress --human-readable --compress --archive \ _rsync_cmd='rsync --verbose --progress --human-readable --compress --archive \
--hard-links --one-file-system' --hard-links --one-file-system'
if grep -q 'xattrs' <(rsync --help 2>&1); then autoload -Uz is-at-least
_rsync_cmd="${_rsync_cmd} --acls --xattrs" if is-at-least 3.1 ${"$(rsync --version 2>&1)"[(w)3]}; then
fi
# macOS and HFS+ Enhancements # ACL and extended attributes support
# https://bombich.com/kb/ccc5/credits if grep -q 'xattrs' <(rsync --help 2>&1); then
if is-darwin && grep -q 'file-flags' <(rsync --help 2>&1); then _rsync_cmd="${_rsync_cmd} --acls --xattrs"
_rsync_cmd="${_rsync_cmd} --crtimes --fileflags --protect-decmpfs --force-change" fi
# macOS Enhancements
# https://bombich.com/kb/ccc5/credits
if is-darwin && grep -q 'file-flags' <(rsync --help 2>&1); then
_rsync_cmd="${_rsync_cmd} --crtimes --fileflags --force-change"
fi
fi fi
alias rsync-copy="${_rsync_cmd}" alias rsync-copy="${_rsync_cmd}"

View File

@ -1,21 +1,29 @@
Ruby # Ruby
====
Configures [Ruby][1] local gem installation, loads version managers, and defines Configures [Ruby][1] local gem installation, loads version managers, and defines
aliases. aliases.
Local Gem Installation ## Local Gem Installation
----------------------
When a Ruby version manager is not detected, local gems are installed in When a Ruby version manager is not detected, local gems are installed in
`~/.gems`; otherwise, they are installed according to the manager. _`~/.gem`_; otherwise, they are installed according to the manager.
RVM ## rbenv
---
An alternative to the above is to use [The Ruby Version Manager (RVM)][2], which An alternative RVM is to use [_rbenv_][2], which allows for switching between
allows for managing multiple, isolated Ruby installations and gem sets in the multiple, isolated Ruby installations in the home directory.
home directory.
While it is not as feature rich as RVM, it is not loaded into the shell and is
not known to cause conflicts with shell scripts.
This will be loaded automatically if _rbenv_ is installed to `$RBENV_ROOT`,
_`~/.rbenv`_, or if the `rbenv` command is on the path.
## rvm
An alternative to the above is to use [The Ruby Version Manager (_rvm_)][3],
which allows for managing multiple, isolated Ruby installations and gem sets in
the home directory.
Since RVM is loaded into the shell and is known to override shell commands, it Since RVM is loaded into the shell and is known to override shell commands, it
may conflict with shell scripts. may conflict with shell scripts.
@ -23,93 +31,76 @@ may conflict with shell scripts.
Load this module as late as possible when using RVM since RVM will complain if Load this module as late as possible when using RVM since RVM will complain if
it is not first in `$PATH`. it is not first in `$PATH`.
rbenv ## chruby
-----
An alternative RVM is to use [rbenv][3], which allows for switching between Yet another alternative is [_chruby_][4], which is simpler than both _rvm_ and
multiple, isolated Ruby installations in the home directory. _rbenv_.
While it is not as feature rich as RVM, it is not loaded into the shell and is
not known to cause conflicts with shell scripts.
This will be loaded automatically if rbenv is installed to `$RBENV_ROOT`,
`~/.rbenv`, or if the `rbenv` command is on the path.
chruby
------
Yet another alternative is [chruby][4], which is simpler than both RVM and
rbenv.
### Settings ### Settings
#### Auto-Switch #### Auto-Switch
To enable auto switching the Ruby version on directory change based on the To enable auto switching the Ruby version on directory change based on the
`.ruby-version` file, add the following line to [`zpreztorc`][5]: `.ruby-version` file, add the following line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:ruby:chruby' auto-switch 'yes' zstyle ':prezto:module:ruby:chruby' auto-switch 'yes'
``` ```
Bundler ## Bundler
-------
Manage gems that are not meant to be used as commands, such as application Manage gems that are not meant to be used as commands, such as application
dependencies, with [Bundler][6]. dependencies, with [Bundler][5].
Aliases ## Aliases
-------
### General ### General
- `rb` is short for `ruby`. - `rb` is short for `ruby`.
### Bundler ### Bundler
- `rbb` manages ruby dependencies (`bundle`). - `rbb` manages ruby dependencies (`bundle`).
- `rbbc` cleans up unused gems in your bundler directory. - `rbbc` cleans up unused gems in your bundler directory.
- `rbbe` executes a script in the context of the current bundle. - `rbbe` executes a script in the context of the current bundle.
- `rbbi` installs the gems specified in the `Gemfile` in `vendor/bundle`. - `rbbi` installs the gems specified in the `Gemfile` in `vendor/bundle`.
- `rbbI` installs the following: - `rbbI` installs the following:
- gems specified in the `Gemfile` in `vendor/bundle`. - gems specified in the `Gemfile` in `vendor/bundle`.
- packages the gems into `vendor/cache`. - packages the gems into `vendor/cache`.
- appends bundler directories to `.gitignore`. - appends bundler directories to `.gitignore`.
- `rbbl` lists all gems in the current bundle. - `rbbl` lists all gems in the current bundle.
- `rbbo` opens an installed gem in the editor. - `rbbo` opens an installed gem in the editor.
- `rbbp` packages gem files into `vendor/cache`. - `rbbp` packages gem files into `vendor/cache`.
- `rbbu` updates gems to their latest version. - `rbbu` updates gems to their latest version.
Functions ## Functions
---------
- `ruby-app-root` displays the path to the Ruby application root directory. - `ruby-app-root` displays the path to the Ruby application root directory.
- `ruby-info` exposes information about the Ruby environment via the - `ruby-info` exposes information about the Ruby environment via the
`$ruby_info` associative array. `$ruby_info` associative array.
Theming ## Theming
-------
To display the name of the current Ruby version in a prompt, define the To display the name of the current Ruby version in a prompt, define the
following style in the `prompt_name_setup` function. following style in the `prompt_name_setup` function.
# %v - ruby version. ```sh
zstyle ':prezto:module:ruby:info:version' format 'version:%v' # %v - ruby version.
zstyle ':prezto:module:ruby:info:version' format 'version:%v'
```
Then add `$ruby_info[version]` to `$PROMPT` or `$RPROMPT` and call Then add `$ruby_info[version]` to `$PROMPT` or `$RPROMPT` and call
`ruby-info` in the `prompt_name_preexec` hook function. `ruby-info` in the `prompt_name_preexec` hook function.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][7].* _The authors of this module should be contacted via the [issue tracker][6]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.ruby-lang.org [1]: https://www.ruby-lang.org
[2]: https://rvm.io [2]: https://github.com/rbenv/rbenv
[3]: https://github.com/sstephenson/rbenv [3]: https://rvm.io
[4]: https://github.com/postmodern/chruby [4]: https://github.com/postmodern/chruby
[5]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zpreztorc [5]: https://gembundler.com
[6]: http://gembundler.com [6]: https://github.com/sorin-ionescu/prezto/issues
[7]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,27 +1,32 @@
# #
# Configures Ruby local gem installation, loads version managers, and defines # Configures Ruby local installation, loads version managers, and defines
# aliases. # aliases.
# #
# Authors: Sorin Ionescu <sorin.ionescu@gmail.com> # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
# Indrajit Raychaudhuri <irc@indrajit.com>
# #
# Load RVM into the shell session. # Possible lookup locations for manually installed rbenv and rvm.
if [[ -s "$HOME/.rvm/scripts/rvm" ]]; then local_rbenv_paths=({$RBENV_ROOT,{$XDG_CONFIG_HOME/,$HOME/.}rbenv}/bin/rbenv(N))
local_rvm_paths=({$RVM_DIR,{$XDG_CONFIG_HOME/,$HOME/.}rvm}/scripts/rvm(N))
# Load manually installed or package manager installed rbenv into the shell
# session.
if (( $#local_rbenv_paths || $+commands[rbenv] )); then
# Ensure manually installed rbenv is added to path when present.
[[ -s $local_rbenv_paths[1] ]] && path=($local_rbenv_paths[1]:h $path)
eval "$(rbenv init - zsh)"
# Load manually installed rvm into the shell session.
elif (( $#local_rvm_paths )); then
# Unset AUTO_NAME_DIRS since auto adding variable-stored paths to ~ list # Unset AUTO_NAME_DIRS since auto adding variable-stored paths to ~ list
# conflicts with RVM. # conflicts with rvm.
unsetopt AUTO_NAME_DIRS unsetopt AUTO_NAME_DIRS
# Source RVM. source "$local_rvm_paths[1]"
source "$HOME/.rvm/scripts/rvm"
# Load manually installed rbenv into the shell session.
elif [[ -s "${RBENV_ROOT:=$HOME/.rbenv}/bin/rbenv" ]]; then
path=("${RBENV_ROOT}/bin" $path)
eval "$(rbenv init - --no-rehash zsh)"
# Load package manager installed rbenv into the shell session.
elif (( $+commands[rbenv] )); then
eval "$(rbenv init - --no-rehash zsh)"
# Load package manager installed chruby into the shell session. # Load package manager installed chruby into the shell session.
elif (( $+commands[chruby-exec] )); then elif (( $+commands[chruby-exec] )); then
@ -34,7 +39,7 @@ elif (( $+commands[chruby-exec] )); then
source "${commands[chruby-exec]:h:h}/share/chruby/auto.sh" source "${commands[chruby-exec]:h:h}/share/chruby/auto.sh"
fi fi
# If a default Ruby is set, switch to it. # If a default ruby is set, switch to it.
chruby_auto chruby_auto
fi fi
@ -43,8 +48,10 @@ else
path=($HOME/.gem/ruby/*/bin(N) $path) path=($HOME/.gem/ruby/*/bin(N) $path)
fi fi
unset local_rbenv
# Return if requirements are not found. # Return if requirements are not found.
if (( ! $+commands[ruby] && ! ( $+commands[rvm] || $+commands[rbenv] ) )); then if (( ! $+commands[ruby] && ! $#functions[(i)r(benv|vm)] )); then
return 1 return 1
fi fi

View File

@ -1,44 +1,40 @@
GNU Screen # GNU Screen
==========
Defines [GNU Screen][1] aliases and provides for auto launching it at start-up. Defines [GNU Screen][1] aliases and provides for auto launching it at start-up.
Settings ## Settings
--------
### Auto-Start ### Auto-Start
Starts a GNU Screen session automatically when Zsh is launched. Starts a GNU Screen session automatically when Zsh is launched.
To enable this feature when launching Zsh in a local terminal, add the To enable this feature when launching Zsh in a local terminal, add the following
following line to *zpreztorc*: line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:screen:auto-start' local 'yes' zstyle ':prezto:module:screen:auto-start' local 'yes'
``` ```
To enable this feature when launching Zsh in a SSH connection, add the To enable this feature when launching Zsh in a SSH connection, add the following
following line to *zpreztorc*: line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:screen:auto-start' remote 'yes' zstyle ':prezto:module:screen:auto-start' remote 'yes'
``` ```
Aliases ## Aliases
-------
- `scr` is short for `screen`. - `scr` is short for `screen`.
- `scrl` lists sessions/socket directory. - `scrl` lists sessions/socket directory.
- `scrn` starts a new session. - `scrn` starts a new session.
- `scrr` attaches to a session if one exists or start a new one. - `scrr` attaches to a session if one exists or start a new one.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].* _The authors of this module should be contacted via the [issue tracker][2]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Georges Discry](https://github.com/gdiscry) - [Georges Discry](https://github.com/gdiscry)
[1]: http://www.gnu.org/software/screen/ [1]: https://www.gnu.org/software/screen/
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,16 +1,14 @@
Spectrum # Spectrum
========
Provides for easier use of 256 colors and effects. Provides for easier use of 256 colors and effects.
To learn more about text formatting, read [A Guide to 256 Color Codes][1]. To learn more about text formatting, read [A Guide to 256 Color Codes][1].
Variables ## Variables
---------
- `BG` provides background colors. - `BG` provides background colors.
- `FG` provides foreground colors. - `FG` provides foreground colors.
- `FX` provides effects. - `FX` provides effects.
### Background and Foreground ### Background and Foreground
@ -72,20 +70,19 @@ Though there are many effects, most terminals support at least bold formatting.
| font-fifth | no-font-fifth | | font-fifth | no-font-fifth |
| font-sixth | no-font-sixth | | font-sixth | no-font-sixth |
| font-seventh | no-font-seventh | | font-seventh | no-font-seventh |
| font-eigth | no-font-eigth | | font-eighth | no-font-eighth |
| font-ninth | no-font-ninth | | font-ninth | no-font-ninth |
### Plain Text ### Plain Text
Use `$BG[none]`, `$FG[none]`, or `$FX[none]` to turn off formatting. Use `$BG[none]`, `$FG[none]`, or `$FX[none]` to turn off formatting.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].* _The authors of this module should be contacted via the [issue tracker][2]._
- [P.C. Shyamshankar](https://github.com/sykora) - [P.C. Shyamshankar](https://github.com/sykora)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://lucentbeing.com/writing/archives/a-guide-to-256-color-codes/ [1]: http://lucentbeing.com/writing/archives/a-guide-to-256-color-codes/
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -49,7 +49,7 @@ FX=(
font-fifth "\e[15m" no-font-fifth "\e[10m" font-fifth "\e[15m" no-font-fifth "\e[10m"
font-sixth "\e[16m" no-font-sixth "\e[10m" font-sixth "\e[16m" no-font-sixth "\e[10m"
font-seventh "\e[17m" no-font-seventh "\e[10m" font-seventh "\e[17m" no-font-seventh "\e[10m"
font-eigth "\e[18m" no-font-eigth "\e[10m" font-eighth "\e[18m" no-font-eighth "\e[10m"
font-ninth "\e[19m" no-font-ninth "\e[10m" font-ninth "\e[19m" no-font-ninth "\e[10m"
) )

View File

@ -1,26 +1,24 @@
SSH # SSH
===
Provides for an easier use of [SSH][1] by setting up [ssh-agent][2]. Provides for an easier use of [SSH][1] by setting up [_ssh-agent_][2].
Settings ## Settings
--------
### Identities ### Identities
To load multiple identities, add the following line to *zpreztorc*: To load multiple identities, add the following line to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_dsa' 'id_github' zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_dsa' 'id_github'
``` ```
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].* _The authors of this module should be contacted via the [issue tracker][3]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.openssh.com [1]: https://www.openssh.com
[2]: http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&sektion=1 [2]: https://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&sektion=1
[3]: https://github.com/sorin-ionescu/prezto/issues [3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,31 +1,28 @@
Syntax Highlighting # Syntax Highlighting
===================
Integrates [zsh-syntax-highlighting][1] into Prezto. Integrates [zsh-syntax-highlighting][1] into Prezto.
This module should be loaded before the *prompt* module. This module must be loaded _before_ the _`prompt`_ module.
Additionally, if this module is used in conjunction with the Additionally, if this module is used in conjunction with the
*history-substring-search* module, this module must be loaded **before** the [_`history-substring-search`_][2] module, this module must be loaded _before_
*history-substring-search* module. the _`history-substring-search`_ module.
To elaborate: The relative order of loading the modules would be To elaborate, the relative order of loading the modules would be
'syntax-highlighting', 'history-substring-search' and 'prompt'. _`syntax-highlighting`_, _`history-substring-search`_ and _`prompt`_.
Contributors ## Contributors
------------
New features and bug fixes should be submitted to the New features and bug fixes should be submitted to the
[zsh-syntax-highlighting][1] project according to its rules and regulations. [zsh-syntax-highlighting][1] project according to its rules and regulations.
This module will be synchronized against it. This module will be synchronized against it.
Settings ## Settings
--------
### Highlighting ### Highlighting
To enable highlighting for this module only, add the following line to To enable highlighting for this module only, add the following line to
*zpreztorc*: _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:syntax-highlighting' color 'yes' zstyle ':prezto:module:syntax-highlighting' color 'yes'
@ -33,10 +30,11 @@ zstyle ':prezto:module:syntax-highlighting' color 'yes'
### Highlighters ### Highlighters
Syntax highlighting is accomplished by pluggable [highlighters][2]. This module Syntax highlighting is accomplished by pluggable [highlighters][3]. This module
only enables the *main* highlighter by default. only enables the _main_ highlighter by default.
To enable all highlighters, add the following to *zpreztorc*: To enable all highlighters, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh ```sh
zstyle ':prezto:module:syntax-highlighting' highlighters \ zstyle ':prezto:module:syntax-highlighting' highlighters \
@ -53,7 +51,7 @@ zstyle ':prezto:module:syntax-highlighting' highlighters \
Each syntax highlighter defines styles used to highlight tokens. Each syntax highlighter defines styles used to highlight tokens.
To highlight, for example, builtins, commands, and functions in blue instead of To highlight, for example, builtins, commands, and functions in blue instead of
green, add the following to *zpreztorc*: green, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:syntax-highlighting' styles \ zstyle ':prezto:module:syntax-highlighting' styles \
@ -62,13 +60,13 @@ zstyle ':prezto:module:syntax-highlighting' styles \
'function' 'bg=blue' 'function' 'bg=blue'
``` ```
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].* _The authors of this module should be contacted via the [issue tracker][4]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/zsh-users/zsh-syntax-highlighting [1]: https://github.com/zsh-users/zsh-syntax-highlighting
[2]: https://github.com/zsh-users/zsh-syntax-highlighting/tree/master/highlighters [2]: ../history-substring-search#readme
[3]: https://github.com/sorin-ionescu/prezto/issues [3]: https://github.com/zsh-users/zsh-syntax-highlighting/tree/master/highlighters
[4]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,23 +1,21 @@
Terminal # Terminal
========
Sets terminal window and tab titles. Sets terminal window and tab titles.
Settings ## Settings
--------
### Auto-Title ### Auto-Title
To auto set the terminal window and tab titles with the current command or To auto set the terminal window and tab titles with the current command or
directory, add the following to *zpreztorc*: directory, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:terminal' auto-title 'yes' zstyle ':prezto:module:terminal' auto-title 'yes'
``` ```
Auto titling is disabled inside terminal multiplexers (except inside dvtm) Auto titling is disabled inside terminal multiplexers (except inside dvtm) since
since it interferes with window names defined in configuration files and it interferes with window names defined in configuration files and profile
profile managers. This can be overridden by setting it to `always`. managers. This can be overridden by setting it to `always`.
```sh ```sh
zstyle ':prezto:module:terminal' auto-title 'always' zstyle ':prezto:module:terminal' auto-title 'always'
@ -25,7 +23,8 @@ zstyle ':prezto:module:terminal' auto-title 'always'
### Title formats ### Title formats
To format terminal window and tab titles, add the following to *zpreztorc*: To format terminal window and tab titles, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh ```sh
zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s' zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s'
@ -38,20 +37,18 @@ executing program name.
For a list of sequences, see [Expansion of Prompt Sequences][1]. For a list of sequences, see [Expansion of Prompt Sequences][1].
Functions ## Functions
---------
- `set-tab-title` sets the terminal tab title. - `set-tab-title` sets the terminal tab title.
- `set-window-title` sets the terminal window title. - `set-window-title` sets the terminal window title.
- `set-multiplexer-title` sets the terminal multiplexer title. - `set-multiplexer-title` sets the terminal multiplexer title.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].* _The authors of this module should be contacted via the [issue tracker][2]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Olaf Conradi](https://github.com/oohlaf) - [Olaf Conradi](https://github.com/oohlaf)
[1]: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences [1]: https://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,24 +1,22 @@
Tmux # Tmux
====
Defines [tmux][1] aliases and provides for auto launching it at start-up. Defines [_tmux_][1] aliases and provides for auto launching it at start-up.
Settings ## Settings
--------
### Auto-Start ### Auto-Start
Starts a tmux session automatically when Zsh is launched. Starts a tmux session automatically when Zsh is launched.
To enable this feature when launching Zsh in a local terminal, add the To enable this feature when launching Zsh in a local terminal, add the following
following line to *zpreztorc*: line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:tmux:auto-start' local 'yes' zstyle ':prezto:module:tmux:auto-start' local 'yes'
``` ```
To enable this feature when launching Zsh in a SSH connection, add the To enable this feature when launching Zsh in a SSH connection, add the following
following line to *zpreztorc*: line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:tmux:auto-start' remote 'yes' zstyle ':prezto:module:tmux:auto-start' remote 'yes'
@ -36,7 +34,7 @@ zstyle ':prezto:module:tmux:session' name '<YOUR DEFAULT SESSION NAME>'
With `auto-start` enabled, you may want to control how multiple sessions are With `auto-start` enabled, you may want to control how multiple sessions are
managed. The `destroy-unattached` option of tmux controls if the unattached managed. The `destroy-unattached` option of tmux controls if the unattached
sessions must be kept alive, making sessions available for later use, configured sessions must be kept alive, making sessions available for later use, configured
in *tmux.conf*: in _tmux.conf_:
```conf ```conf
set-option -g destroy-unattached [on | off] set-option -g destroy-unattached [on | off]
@ -45,7 +43,7 @@ set-option -g destroy-unattached [on | off]
#### iTerm2 Integration #### iTerm2 Integration
[iTerm2][6] offers significant integration with tmux. This can be enabled by [iTerm2][6] offers significant integration with tmux. This can be enabled by
adding the following line to *zpreztorc*: adding the following line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:tmux:iterm' integrate 'yes' zstyle ':prezto:module:tmux:iterm' integrate 'yes'
@ -53,19 +51,17 @@ zstyle ':prezto:module:tmux:iterm' integrate 'yes'
Read [iTerm2 and tmux Integration][7] for more information. Read [iTerm2 and tmux Integration][7] for more information.
Aliases ## Aliases
-------
- `tmuxa` attaches or switches to a tmux session. - `tmuxa` attaches or switches to a tmux session.
- `tmuxl` lists sessions managed by the tmux server. - `tmuxl` lists sessions managed by the tmux server.
Caveats ## Caveats
-------
On macOS, launching tmux can cause the error **launch_msg(...): Socket is not On macOS, launching tmux can cause the error **launch_msg(...): Socket is not
connected** to be displayed, which can be fixed by installing connected** to be displayed, which can be fixed by installing
[reattach-to-user-namespace][3], available in [Homebrew][4], and adding the [reattach-to-user-namespace][3], available in [Homebrew][4], and adding the
following to *tmux.conf*: following to _tmux.conf_:
```conf ```conf
set-option -g default-command "reattach-to-user-namespace -l $SHELL -l" set-option -g default-command "reattach-to-user-namespace -l $SHELL -l"
@ -74,20 +70,19 @@ set-option -g default-command "reattach-to-user-namespace -l $SHELL -l"
Furthermore, tmux is known to cause **kernel panics** on macOS. A discussion Furthermore, tmux is known to cause **kernel panics** on macOS. A discussion
about this and Prezto has already been [opened][2]. about this and Prezto has already been [opened][2].
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][5].* _The authors of this module should be contacted via the [issue tracker][5]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Colin Hebert](https://github.com/ColinHebert) - [Colin Hebert](https://github.com/ColinHebert)
- [Georges Discry](https://github.com/gdiscry) - [Georges Discry](https://github.com/gdiscry)
- [Xavier Cambar](https://github.com/xcambar) - [Xavier Cambar](https://github.com/xcambar)
[1]: http://tmux.sourceforge.net [1]: https://tmux.github.io/
[2]: https://github.com/sorin-ionescu/prezto/issues/62 [2]: https://github.com/sorin-ionescu/prezto/issues/62
[3]: https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard [3]: https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard
[4]: https://github.com/mxcl/homebrew [4]: https://github.com/mxcl/homebrew
[5]: https://github.com/sorin-ionescu/prezto/issues [5]: https://github.com/sorin-ionescu/prezto/issues
[6]: http://iterm2.com [6]: https://iterm2.com
[7]: https://gitlab.com/gnachman/iterm2/wikis/TmuxIntegration [7]: https://gitlab.com/gnachman/iterm2/wikis/TmuxIntegration

View File

@ -1,68 +1,100 @@
Utility # Utility
=======
Defines general aliases and functions. Defines general aliases and functions.
Settings This module must be loaded _before_ the [_`completion`_][1] module so that the
-------- provided completion definitions are loaded automatically by _`completion`_
module.
**Note:** Some of the utilities configured in this module might be provided via
GNU utilities with incompatible arguments on non-GNU systems. In such cases,
using [_`gnu-utility`_][2] module is recommended and it must be loaded
_before_ this module.
To elaborate, the relative order of loading the modules would be
_`gnu-utility`_, _`utility`_ and _`completion`_.
## Settings
### Highlighting ### Highlighting
If you have enabled color globally in *zpreztorc*, you may disable it for If you have enabled color globally in _`${ZDOTDIR:-$HOME}/.zpreztorc`_, you may
certain commands. disable it selectively for certain commands.
To disable `ls` color, add the following line to *zpreztorc*; when coloring is To disable `ls` color, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_.
disabled, type indicators (\*, /, =>, @, =, |, %) will be appended to entries. When coloring is disabled, type indicators (`\*`, `/`, `=>`, `@`, `=`, `|`, `%`)
will be appended to entries.
```sh ```sh
zstyle ':prezto:module:utility:ls' color 'no' zstyle ':prezto:module:utility:ls' color 'no'
``` ```
To disable GNU coreutils `ls` to list directories grouped first, add the following line to *zpreztorc*: To disable GNU coreutils `ls` to list directories grouped first, add the
following line to _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:utility:ls' dirs-first 'no' zstyle ':prezto:module:utility:ls' dirs-first 'no'
``` ```
To disable `diff` highlighting, add the following line to *zpreztorc*: To disable `grep` highlighting, add the following line to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh
zstyle ':prezto:module:utility:grep' color 'no'
```
To disable `diff` highlighting, add the following line to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:utility:diff' color 'no' zstyle ':prezto:module:utility:diff' color 'no'
``` ```
To disable `wdiff` highlighting, add the following line to *zpreztorc*: To disable `wdiff` highlighting, add the following line to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:utility:wdiff' color 'no' zstyle ':prezto:module:utility:wdiff' color 'no'
``` ```
To disable `make` highlighting, add the following line to *zpreztorc*: To disable `make` highlighting, add the following line to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:utility:make' color 'no' zstyle ':prezto:module:utility:make' color 'no'
``` ```
Aliases ### Download Helper
-------
To configure the download helper to be used with alias `get`, add the following
to _`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'<helper>'` with `'curl'`,
`'wget'` or `'aria2c'`.
```sh
zstyle -s ':prezto:module:utility:download' helper '<helper>'
```
## Aliases
### Disabled Spelling Correction ### Disabled Spelling Correction
- `ack` - `ack`
- `cd` - `cd`
- `cp` - `cp`
- `ebuild` - `ebuild`
- `gcc` - `gcc`
- `gist` - `gist`
- `grep` - `grep`
- `heroku` - `heroku`
- `ln` - `ln`
- `man` - `man`
- `mkdir` - `mkdir`
- `mv` - `mv`
- `mysql` - `mysql`
- `rm` - `rm`
To disable all spelling corrections, add the following line to *zpreztorc*: To disable all spelling corrections, add the following line to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_:
```sh ```sh
zstyle ':prezto:module:utility' correct 'no' zstyle ':prezto:module:utility' correct 'no'
@ -70,122 +102,124 @@ zstyle ':prezto:module:utility' correct 'no'
### Disabled File Globbing ### Disabled File Globbing
- `bower` - `bower`
- `fc` - `fc`
- `find` - `find`
- `ftp` - `ftp`
- `history` - `history`
- `locate` - `locate`
- `rake` - `rake`
- `rsync` (selectively enabled for local files) - `rsync` (selectively enabled for local files)
- `scp` (selectively enabled for local files) - `scp` (selectively enabled for local files)
- `sftp` - `sftp`
### General ### General
- `_` executes a command as another user (`sudo`). - `_` executes a command as another user (`sudo`).
- `b` opens the default web browser. - `b` opens the default web browser.
- `diffu` shorthand for `diff --unified` - `diffu` shorthand for `diff --unified`.
- `e` opens the default editor. - `e` opens the default editor.
- `mkdir` creates directories, including intermediary directories. - `mkdir` creates directories, including intermediary directories.
- `p` opens the default pager. - `p` opens the default pager.
- `po` removes a directory from the stack and changes to it (`popd`). - `po` removes a directory from the stack and changes to it (`popd`).
- `pu` changes the directory and pushes the old directory onto the stack - `pu` changes the directory and pushes the old directory onto the stack
(`pushd`). (`pushd`).
- `sa` search aliases for a word. - `sa` search aliases for a word.
- `type` displays all the attribute values of a shell parameter. - `type` displays all the attribute values of a shell parameter.
### Files and Directories ### Files and Directories
- `ls` lists with directories grouped first (GNU only). - `ls` lists with directories grouped first (GNU only).
- `l` lists in one column, hidden files. - `l` lists in one column, hidden files.
- `ll` lists human readable sizes. - `ll` lists human readable sizes.
- `lr` lists human readable sizes, recursively. - `lr` lists human readable sizes, recursively.
- `la` lists human readable sizes, hidden files. - `la` lists human readable sizes, hidden files.
- `lm` lists human readable sizes, hidden files through pager. - `lm` lists human readable sizes, hidden files through pager.
- `lx` lists sorted by extension (GNU only). - `lx` lists sorted by extension (GNU only).
- `lk` lists sorted by size, largest last. - `lk` lists sorted by size, largest last.
- `lt` lists sorted by date, most recent last. - `lt` lists sorted by date, most recent last.
- `lc` lists sorted by date, most recent last, shows change time. - `lc` lists sorted by date, most recent last, shows change time.
- `lu` lists sorted by date, most recent last, shows access time. - `lu` lists sorted by date, most recent last, shows access time.
- `sl` lists directory contents (`ls`). - `sl` lists directory contents (correction for `ls`).
### macOS Everywhere ### macOS Everywhere
- `o` opens files and directories (`open` or `xdg-open`). - `o` opens files and directories (`open` or `xdg-open`).
- `get` downloads files (`curl` or `wget`). - `get` downloads files (`curl`, `wget` or `aria2c`).
- `pbcopy` copies to the pasteboard (`pbcopy`, `xclip` or `xsel`). - `pbcopy` copies to the pasteboard (`pbcopy`, `xclip` or `xsel`).
- `pbpaste` pastes from the pasteboard (`pbcopy`, `xclip` or `xsel`). - `pbpaste` pastes from the pasteboard (`pbcopy`, `xclip` or `xsel`).
- `pbc` copies to the pasteboard (`pbcopy`). - `pbc` copies to the pasteboard (`pbcopy`).
- `pbp` pastes from the pasteboard (`pbpaste`). - `pbp` pastes from the pasteboard (`pbpaste`).
### Resource Usage ### Resource Usage
- `df` displays free disk space using human readable units (aliases to `pydf`, - `df` displays free disk space using human readable units (aliases to `pydf`,
if installed). if installed).
- `du` displays disk usage using human readable units. - `du` displays disk usage using human readable units.
- `top` displays information about processes. - `top` displays information about processes.
- `topc` displays information about processes sorted by CPU usage. - `topc` displays information about processes sorted by CPU usage.
- `topm` displays information about processes sorted by RAM usage. - `topm` displays information about processes sorted by RAM usage.
### Safe ops ### Safe ops
By default, `cp`,`ln`, `mv` and `rm` are aliased to their interactive variants. By default, `cp`,`ln`, `mv` and `rm` are aliased to their interactive variants.
If this is not desired, it can be disabled by adding the following line to If this is not desired, it can be disabled by adding the following line to
*zpreztorc*: _`${ZDOTDIR:-$HOME}/.zpreztorc`_:
zstyle ':prezto:module:utility' safe-ops 'no'. ```sh
zstyle ':prezto:module:utility' safe-ops 'no'.
```
In addition, the following aliases have been added: In addition, the following aliases have been added:
- `cpi` copies files and directories interactively. - `cpi` copies files and directories interactively.
- `lni` links files and directories interactively. - `lni` links files and directories interactively.
- `mvi` moves files and directories interactively. - `mvi` moves files and directories interactively.
- `rmi` removes files and directories interactively. - `rmi` removes files and directories interactively.
### Miscellaneous ### Miscellaneous
- `http-serve` serves a directory via HTTP. - `http-serve` serves a directory via HTTP.
Functions ## Functions
---------
### General ### General
- `slit` prints columns *1, 2, 3 ... n*. - `slit` prints columns _1, 2, 3 ... n_.
### Files and Directories ### Files and Directories
- `cdls` changes to a directory and lists its contents. - `cdls` changes to a directory and lists its contents.
- `dut` displays the grand total disk usage using human readable units. - `dut` displays the grand total disk usage using human readable units.
- `find-exec` finds files and executes a command on them. - `find-exec` finds files and executes a command on them.
- `mkdcd` makes a directory and changes to it. - `mkdcd` makes a directory and changes to it.
- `popdls` pops an entry off the directory stack and lists its contents. - `popdls` pops an entry off the directory stack and lists its contents.
- `pushdls` pushes an entry onto the directory stack and lists its contents. - `pushdls` pushes an entry onto the directory stack and lists its contents.
- `noremoteglob` enable local path globbing but disable remote path globbing. - `noremoteglob` enable local path globbing but disable remote path globbing.
### Developer ### Developer
- `diff` highlights diff output (requires `colordiff`). - `diff` highlights diff output (requires `colordiff`).
- `make` highlights make output (requires `colormake`). - `make` highlights make output (requires `colormake`).
- `wdiff` highlights wdiff output (requires `wdiff `or `Git`). - `wdiff` highlights wdiff output (requires `wdiff` or `git`).
### Resource usage ### Resource usage
- `psu` displays user owned processes status. - `psu` displays user owned processes status.
### Search and Replace ### Search and Replace
- `prep` provides a grep-like pattern search. - `prep` provides a grep-like pattern search.
- `psub` provides a sed-like pattern substitution. - `psub` provides a sed-like pattern substitution.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].* _The authors of this module should be contacted via the [issue tracker][3]._
- [Robby Russell](https://github.com/robbyrussell) - [Robby Russell](https://github.com/robbyrussell)
- [Suraj N. Kurapati](https://github.com/sunaku) - [Suraj N. Kurapati](https://github.com/sunaku)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues [1]: ../completion#readme
[2]: ../gnu-utility#readme
[3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -5,13 +5,13 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
function diff { # function diff {
if zstyle -t ':prezto:module:utility:diff' color \
&& (( $+commands[colordiff] )); then
command colordiff "$@"
else
command diff "$@"
fi
}
diff "$@" if zstyle -t ':prezto:module:utility:diff' color \
&& (( $+commands[colordiff] )); then
command colordiff "$@"
else
command diff "$@"
fi
# }

View File

@ -6,22 +6,22 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
function dut { # function dut {
(( $# == 0 )) && set -- *
if grep -q -i 'GNU' < <(du --version 2>&1); then (( $# == 0 )) && set -- *
du -khsc "$@" | sort -h -r
else
local line size name
local -a record
while IFS=$'\n' read line; do if [[ ${(@M)${(f)"$(du --version 2>&1)"}:#*GNU *} ]]; then
record=(${(z)line}) du -khsc "$@" | sort -h -r
size="$(($record[1] / 1024.0))" else
name="$record[2,-1]" local line size name
printf "%9.1LfM %s\n" "$size" "$name" local -a record
done < <(du -kcs "$@") | sort -n -r
fi
}
dut "$@" while IFS=$'\n' read line; do
record=(${(z)line})
size="$(($record[1] / 1024.0))"
name="$record[2,-1]"
printf "%9.1LfM %s\n" "$size" "$name"
done < <(du -kcs "$@") | sort -n -r
fi
# }

View File

@ -5,16 +5,13 @@
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# #
function make { # function make {
if zstyle -t ':prezto:module:utility:make' color; then
if (( $+commands[colormake] )); then
colormake "$@"
else
command make "$@"
fi
else
command make "$@"
fi
}
make "$@" if zstyle -t ':prezto:module:utility:make' color \
&& (( $+commands[colormake] )); then
command colormake "$@"
else
command make "$@"
fi
# }

View File

@ -3,27 +3,30 @@
# #
# Authors: # Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com> # Sorin Ionescu <sorin.ionescu@gmail.com>
# Indrajit Raychaudhuri <irc@indrajit.com>
# #
function wdiff { # function wdiff {
if zstyle -t ':prezto:module:utility:wdiff' color; then
if (( $+commands[wdiff] )); then if zstyle -t ':prezto:module:utility:wdiff' color; then
command wdiff \ if (( $+commands[wdiff] )); then
--avoid-wraps \ command wdiff \
--start-delete="$(print -n $FG[red])" \ --avoid-wraps \
--end-delete="$(print -n $FG[none])" \ --start-delete="$(print -n $FG[red])" \
--start-insert="$(print -n $FG[green])" \ --end-delete="$(print -n $FG[none])" \
--end-insert="$(print -n $FG[none])" \ --start-insert="$(print -n $FG[green])" \
"$@" \ --end-insert="$(print -n $FG[none])" \
"$@" \
| sed 's/^\(@@\( [+-][[:digit:]]*,[[:digit:]]*\)\{2\} @@\)$/;5;6m\10m/g' | sed 's/^\(@@\( [+-][[:digit:]]*,[[:digit:]]*\)\{2\} @@\)$/;5;6m\10m/g'
elif (( $+commands[git] )); then elif (( $+commands[git] )); then
command git --no-pager diff --color=auto --no-ext-diff --no-index --color-words "$@" command git --no-pager diff --no-ext-diff --no-index --color=auto --color-words "$@"
else
command wdiff "$@"
fi
else else
command wdiff "$@" command wdiff "$@"
fi fi
} elif (( ! $+commands[wdiff] && $+commands[git] )); then
command git --no-pager diff --no-ext-diff --no-index --color=never "$@"
else
command wdiff "$@"
fi
wdiff "$@" # }

View File

@ -15,6 +15,9 @@ if zstyle -T ':prezto:module:utility' correct; then
setopt CORRECT setopt CORRECT
fi fi
# Load 'run-help' function.
autoload -Uz run-help-{ip,openssl,sudo}
# #
# Aliases # Aliases
# #
@ -61,19 +64,19 @@ alias sa='alias | grep -i'
alias type='type -a' alias type='type -a'
# Safe ops. Ask the user before doing anything destructive. # Safe ops. Ask the user before doing anything destructive.
alias rmi="${aliases[rm]:-rm} -i"
alias mvi="${aliases[mv]:-mv} -i"
alias cpi="${aliases[cp]:-cp} -i" alias cpi="${aliases[cp]:-cp} -i"
alias lni="${aliases[ln]:-ln} -i" alias lni="${aliases[ln]:-ln} -i"
alias mvi="${aliases[mv]:-mv} -i"
alias rmi="${aliases[rm]:-rm} -i"
if zstyle -T ':prezto:module:utility' safe-ops; then if zstyle -T ':prezto:module:utility' safe-ops; then
alias rm="${aliases[rm]:-rm} -i"
alias mv="${aliases[mv]:-mv} -i"
alias cp="${aliases[cp]:-cp} -i" alias cp="${aliases[cp]:-cp} -i"
alias ln="${aliases[ln]:-ln} -i" alias ln="${aliases[ln]:-ln} -i"
alias mv="${aliases[mv]:-mv} -i"
alias rm="${aliases[rm]:-rm} -i"
fi fi
# ls # ls
if is-callable 'dircolors'; then if [[ ${(@M)${(f)"$(ls --version 2>&1)"}:#*GNU *} ]]; then
# GNU Core Utilities # GNU Core Utilities
if zstyle -T ':prezto:module:utility:ls' dirs-first; then if zstyle -T ':prezto:module:utility:ls' dirs-first; then
@ -81,12 +84,13 @@ if is-callable 'dircolors'; then
fi fi
if zstyle -t ':prezto:module:utility:ls' color; then if zstyle -t ':prezto:module:utility:ls' color; then
# Call dircolors to define colors if they're missing # Define colors for GNU ls if they're not already defined
if [[ -z "$LS_COLORS" ]]; then if (( ! $+LS_COLORS )); then
if [[ -s "$HOME/.dir_colors" ]]; then # Try dircolors when available
eval "$(dircolors --sh "$HOME/.dir_colors")" if is-callable 'dircolors'; then
eval "$(dircolors --sh $HOME/.dir_colors(.N))"
else else
eval "$(dircolors --sh)" export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'
fi fi
fi fi
@ -96,17 +100,13 @@ if is-callable 'dircolors'; then
fi fi
else else
# BSD Core Utilities # BSD Core Utilities
if zstyle -t ':prezto:module:utility:ls' color; then if zstyle -t ':prezto:module:utility:ls' color; then
# Define colors for BSD ls if they're not already defined # Define colors for BSD ls if they're not already defined
if [[ -z "$LSCOLORS" ]]; then if (( ! $+LSCOLORS )); then
export LSCOLORS='exfxcxdxbxGxDxabagacad' export LSCOLORS='exfxcxdxbxGxDxabagacad'
fi fi
# Define colors for the completion system if they're not already defined
if [[ -z "$LS_COLORS" ]]; then
export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'
fi
alias ls="${aliases[ls]:-ls} -G" alias ls="${aliases[ls]:-ls} -G"
else else
alias ls="${aliases[ls]:-ls} -F" alias ls="${aliases[ls]:-ls} -F"
@ -118,17 +118,20 @@ alias ll='ls -lh' # Lists human readable sizes.
alias lr='ll -R' # Lists human readable sizes, recursively. alias lr='ll -R' # Lists human readable sizes, recursively.
alias la='ll -A' # Lists human readable sizes, hidden files. alias la='ll -A' # Lists human readable sizes, hidden files.
alias lm='la | "$PAGER"' # Lists human readable sizes, hidden files through pager. alias lm='la | "$PAGER"' # Lists human readable sizes, hidden files through pager.
alias lx='ll -XB' # Lists sorted by extension (GNU only).
alias lk='ll -Sr' # Lists sorted by size, largest last. alias lk='ll -Sr' # Lists sorted by size, largest last.
alias lt='ll -tr' # Lists sorted by date, most recent last. alias lt='ll -tr' # Lists sorted by date, most recent last.
alias lc='lt -c' # Lists sorted by date, most recent last, shows change time. alias lc='lt -c' # Lists sorted by date, most recent last, shows change time.
alias lu='lt -u' # Lists sorted by date, most recent last, shows access time. alias lu='lt -u' # Lists sorted by date, most recent last, shows access time.
alias sl='ls' # I often screw this up. alias sl='ls' # Correction for common spelling error.
if [[ ${(@M)${(f)"$(ls --version 2>&1)"}:#*GNU *} ]]; then
alias lx='ll -XB' # Lists sorted by extension (GNU only).
fi
# Grep # Grep
if zstyle -t ':prezto:module:utility:grep' color; then if zstyle -t ':prezto:module:utility:grep' color; then
export GREP_COLOR='37;45' # BSD. export GREP_COLOR=${GREP_COLOR:-'37;45'} # BSD.
export GREP_COLORS="mt=$GREP_COLOR" # GNU. export GREP_COLORS=${GREP_COLORS:-"mt=$GREP_COLOR"} # GNU.
alias grep="${aliases[grep]:-grep} --color=auto" alias grep="${aliases[grep]:-grep} --color=auto"
fi fi
@ -160,12 +163,22 @@ alias pbc='pbcopy'
alias pbp='pbpaste' alias pbp='pbpaste'
# File Download # File Download
if (( $+commands[curl] )); then zstyle -s ':prezto:module:utility:download' helper '_download_helper' || _download_helper='curl'
alias get='curl --continue-at - --location --progress-bar --remote-name --remote-time'
elif (( $+commands[wget] )); then typeset -A _download_helpers=(
alias get='wget --continue --progress=bar --timestamping' aria2c 'aria2c --continue --remote-time --max-tries=0'
curl 'curl --continue-at - --location --progress-bar --remote-name --remote-time'
wget 'wget --continue --progress=bar --timestamping'
)
if (( $+commands[$_download_helper] && $+_download_helpers[$_download_helper] )); then
alias get="$_download_helpers[$_download_helper]"
elif (( $+commands[curl] )); then
alias get="$_download_helpers[curl]"
fi fi
unset _download_helper{,s}
# Resource Usage # Resource Usage
alias df='df -kh' alias df='df -kh'
alias du='du -kh' alias du='du -kh'
@ -181,10 +194,15 @@ fi
# Miscellaneous # Miscellaneous
# Serves a directory via HTTP. # Serves a directory via HTTP.
if (( $+commands[python3] )); then if (( $#commands[(i)python(|[23])] )); then
alias http-serve='python3 -m http.server' autoload -Uz is-at-least
else if is-at-least 3 ${"$(python --version 2>&1)"[(w)2]}; then
alias http-serve='python -m SimpleHTTPServer' alias http-serve='python -m http.server'
elif (( $+commands[python3] )); then
alias http-serve='python3 -m http.server'
else
alias http-serve='$commands[(i)python(|2)] -m SimpleHTTPServer'
fi
fi fi
# #

View File

@ -1,18 +1,16 @@
Wake-on-LAN # Wake-on-LAN
===========
This module provides a wrapper around the [wakeonlan][1] tool. This module provides a wrapper around the [wakeonlan][1] tool.
Usage ## Usage
-----
To use this wrapper, create the *~/.wakeonlan* directory, and place in it one To use this wrapper, create the _`~/.wakeonlan`_ directory, and place in it one
file for each device you would like to be able to wake. Give the file a name file for each device you would like to be able to wake. Give the file a name
that describes the device, such as its hostname. that describes the device, such as its hostname.
Each file should contain a line with the MAC address of the target device and Each file should contain a line with the MAC address of the target device and
the network broadcast address. For instance, there might be a file the network broadcast address. For instance, there might be a file
*~/.wakeonlan/leto* with the following contents: _`~/.wakeonlan/leto`_ with the following contents:
```conf ```conf
00:11:22:33:44:55:66 192.168.0.255 00:11:22:33:44:55:66 192.168.0.255
@ -20,21 +18,20 @@ the network broadcast address. For instance, there might be a file
To wake that device, use the following command: To wake that device, use the following command:
```sh ```console
$ wake leto wake leto
``` ```
For more information on the configuration file format, read the For more information on the configuration file format, read the
[wakeonlan man page][2]. [wakeonlan man page][2].
Authors ## Authors
-------
*The authors of this module should be contacted via [issue tracker][3].* _The authors of this module should be contacted via [issue tracker][3]._
- [Paul Dann](https://github.com/giddie) - [Paul Dann](https://github.com/giddie)
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://gsd.di.uminho.pt/jpo/software/wakeonlan/ [1]: http://gsd.di.uminho.pt/jpo/software/wakeonlan/
[2]: http://man.cx/wakeonlan [2]: https://man.cx/wakeonlan
[3]: https://github.com/sorin-ionescu/prezto/issues [3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,28 +1,25 @@
Yum # Yum
===
Defines [yum][1] aliases. Defines [_yum_][1] aliases.
Aliases ## Aliases
-------
- `yumc` removes package(s) and leaves. - `yumc` removes package(s) and leaves.
- `yumi` installs package(s). - `yumi` installs package(s).
- `yumh` displays history. - `yumh` displays history.
- `yuml` lists packages. - `yuml` lists packages.
- `yumL` lists installed packages. - `yumL` lists installed packages.
- `yumq` displays package information. - `yumq` displays package information.
- `yumr` removes package(s). - `yumr` removes package(s).
- `yums` searches for a package. - `yums` searches for a package.
- `yumu` updates packages. - `yumu` updates packages.
- `yumU` upgrades packages. - `yumU` upgrades packages.
Authors ## Authors
-------
*The authors of this module should be contacted via the [issue tracker][2].* _The authors of this module should be contacted via the [issue tracker][2]._
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://yum.baseurl.org [1]: http://yum.baseurl.org
[2]: https://github.com/sorin-ionescu/prezto/issues [2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,34 +1,32 @@
Configuration Files # Configuration Files
===================
Zsh has several system-wide and user-local configuration files. Zsh has several system-wide and user-local configuration files.
Prezto has one user-local configuration file. Prezto has one user-local configuration file.
System-wide configuration files are installation-dependent but are installed System-wide configuration files are installation-dependent but are installed
in */etc* by default. in *`/etc`* by default.
User-local configuration files have the same name as their global counterparts User-local configuration files have the same name as their global counterparts
but are prefixed with a dot (hidden). Zsh looks for these files in the path but are prefixed with a dot (hidden). Zsh looks for these files in the path
stored in the `$ZDOTDIR` environment variable. However, if said variable is stored in the `$ZDOTDIR` environment variable. However, if said variable is
not defined, Zsh will use the user's home directory. not defined, Zsh will use the user's home directory.
File Descriptions ## File Descriptions
-----------------
The configuration files are read in the following order: The [configuration files][1] are read in the following order:
01. /etc/zshenv 01. *`/etc/zshenv`*
02. ~/.zshenv 02. *`${ZDOTDIR:-$HOME}/.zshenv`*
03. /etc/zprofile 03. *`/etc/zprofile`*
04. ~/.zprofile 04. *`${ZDOTDIR:-$HOME}/.zprofile`*
05. /etc/zshrc 05. *`/etc/zshrc`*
06. ~/.zshrc 06. *`${ZDOTDIR:-$HOME}/.zshrc`*
07. ~/.zpreztorc 07. *`${ZDOTDIR:-$HOME}/.zpreztorc`*
08. /etc/zlogin 08. *`/etc/zlogin`*
09. ~/.zlogin 09. *`${ZDOTDIR:-$HOME}/.zlogin`*
10. ~/.zlogout 10. *`${ZDOTDIR:-$HOME}/.zlogout`*
11. /etc/zlogout 11. *`/etc/zlogout`*
### zshenv ### zshenv
@ -37,16 +35,16 @@ small as possible and should only define environment variables.
### zprofile ### zprofile
This file is similar to zlogin, but it is sourced before zshrc. It was added This file is similar to *zlogin*, but it is sourced before *zshrc*. It was added
for [KornShell][1] fans. See the description of zlogin below for what it may for [KornShell][2] fans. See the description of *zlogin* below for what it may
contain. contain.
zprofile and zlogin are not meant to be used concurrently but can be done so. *zprofile* and *zlogin* are not meant to be used together but can be done so.
### zshrc ### zshrc
This file is sourced by interactive shells. It should define aliases, This file is sourced by interactive shells. It should define aliases, functions,
functions, shell options, and key bindings. shell options, and key bindings.
### zpreztorc ### zpreztorc
@ -54,9 +52,9 @@ This file configures Prezto.
### zlogin ### zlogin
This file is sourced by login shells after zshrc, and thus, it should contain This file is sourced by login shells after *zshrc*. Thus, it should contain
commands that need to execute at login. It is usually used for messages such as commands that need to execute at login. It is usually used for messages such as
[fortune][2], [msgs][3], or for the creation of files. [*fortune*][3], [*msgs*][4], or for the creation of files.
This is not the file to define aliases, functions, shell options, and key This is not the file to define aliases, functions, shell options, and key
bindings. It should not change the shell environment. bindings. It should not change the shell environment.
@ -64,16 +62,16 @@ bindings. It should not change the shell environment.
### zlogout ### zlogout
This file is sourced by login shells during logout. It should be used for This file is sourced by login shells during logout. It should be used for
displaying messages and the deletion of files. displaying messages and for deletion of files.
Authors ## Authors
-------
*The authors of these files should be contacted via the [issue tracker][4].* *The authors of these files should be contacted via the [issue tracker][5].*
- [Sorin Ionescu](https://github.com/sorin-ionescu) - [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.kornshell.com [1]: http://zsh.sourceforge.net/Intro/intro_3.html#SEC3
[2]: http://en.wikipedia.org/wiki/Fortune_(Unix) [2]: https://www.kornshell.com
[3]: http://www.manpagez.com/man/1/msgs [3]: https://en.wikipedia.org/wiki/Fortune_(Unix)
[4]: https://github.com/sorin-ionescu/prezto/issues [4]: https://www.manpagez.com/man/1/msgs
[5]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -38,6 +38,7 @@ zstyle ':prezto:load' pmodule \
'spectrum' \ 'spectrum' \
'utility' \ 'utility' \
'completion' \ 'completion' \
'history-substring-search' \
'prompt' 'prompt'
# #
@ -51,7 +52,7 @@ zstyle ':prezto:load' pmodule \
# Completions # Completions
# #
# Set the entries to ignore in static */etc/hosts* for host completion. # Set the entries to ignore in static '/etc/hosts' for host completion.
# zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \ # zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \
# '0.0.0.0' '127.0.0.1' # '0.0.0.0' '127.0.0.1'

View File

@ -53,8 +53,8 @@ path=(
# Set the default Less options. # Set the default Less options.
# Mouse-wheel scrolling has been disabled by -X (disable screen clearing). # Mouse-wheel scrolling has been disabled by -X (disable screen clearing).
# Remove -X and -F (exit if the content fits on one screen) to enable it. # Remove -X to enable it.
export LESS='-F -g -i -M -R -S -w -X -z-4' export LESS='-g -i -M -R -S -w -X -z-4'
# Set the Less input preprocessor. # Set the Less input preprocessor.
# Try both `lesspipe` and `lesspipe.sh` as either might exist on a system. # Try both `lesspipe` and `lesspipe.sh` as either might exist on a system.