1
0
mirror of https://github.com/dcarrillo/prezto.git synced 2025-07-01 10:29:25 +00:00

Compare commits

..

320 Commits

Author SHA1 Message Date
7e1c7e3c7a Add fzf-tab updating to update_zprezto 2022-04-09 18:18:29 +02:00
1431e4e8c2 Merge upstream/master 2022-04-09 18:14:53 +02:00
dea85a0740 feat(module/history): add full configurability
While previusly configurable, it was inconsistent with other
configuration options and it was missing configurability of in memory /
on disc history size.

Signed-off-by: Shea690901 <ginny690901@hotmail.de>
2022-04-09 07:46:25 -05:00
3dc3fa7f8c zprofile: Expand the default list of well known paths
Two additional sets of paths are now added to the default list of well
known paths: '$HOME/{bin,sbin}' and '/opt/{homebrew,local}/{bin,sbin}'.

- '$HOME/{bin,sbin}': Most users have custom scripts in '$HOME/bin'
anyway, we might as well honor those. '$HOME/sbin' is not really common,
but we can keep it for consistency.
- '/opt/{homebrew,local}/{bin,sbin}': With Homebrew changing default
installation location in macOS on Apple Silicon which will eventually
become ubiquitous, we have a good reason to add these paths by default.
While at it, we also honor MacPorts installation.

In all cases, we add them _iff_ the paths actually exist, not otherwise.
This has the side effect of a newly installed program not available
immediately in the '$path' in a mint fresh system (because of the fact
that '/opt/{homebrew,local}/{bin,sbin}' won't exist initially) until the
shell is reloaded. But that's a minor inconvenience to keep the '$path'
from getting unnecessarily bloated.
2022-04-08 14:30:45 -05:00
c857e809c3 command-not-found: Detect Homebrew repo internally, not idiomatically
For performance reasons, we prefer detecting Homebrew prefix internally
instead of the more idiomatic form `brew --repository`.

We attempt looking up $HOMEBREW_REPOSITORY first (in case `brew shellenv`
has been sourced-in earlier). Else, we look it up by resolving absolute
path of $HOMEBREW_REPOSITORY.

This should work for most standard (and officially documented) Homebrew
installations.
2022-04-08 14:23:51 -05:00
ac1c39d2e1 completion: Detect Homebrew prefix internally, not idiomatically
For performance reasons, we prefer detecting Homebrew prefix internally
instead of the more idiomatic form `brew --prefix`.

We attempt looking up $HOMEBREW_PREFIX or $HOMEBREW_REPOSITORY first (in
case `brew shellenv` has been sourced-in earlier). Else, we look it up
by resolving absolute path of $HOMEBREW_REPOSITORY. $HOMEBREW_PREFIX is
same as $HOMEBREW_REPOSITORY except when Homebrew is installed in
'/usr/local' ($HOMEBREW_REPOSITORY == '/usr/local/Homebrew'). This is
usually the case for Intel Macs.

This should work for most standard (and officially documented) Homebrew
installations.

For implementation details in Homebrew,
see: 2a850e02d8/bin/brew (L62-L70)

Co-authored-by: mattmc3 <mattmc3@gmail.com>
2022-04-08 14:23:51 -05:00
2c66331316 fix: use deflating flag for pixz in unarchive function 2022-04-05 12:29:22 -07:00
fca913eded Merge upstream/master 2022-04-03 13:28:52 +02:00
3da67271b9 fix: use inflating binaries instead of deflating in unarchive function 2022-04-01 13:22:48 -07:00
1ff1099d05 Allow users to set a dirty-branch format 2022-04-01 10:36:35 -07:00
98d69fc91f zprofile: adjust condition for LESSOPEN export
Split tests for condition for `export LESSOPEN` separate per convention
2022-03-29 18:51:27 -05:00
15150085e6 Only export env variables in zprofile if unset
As per [zsh documentation](https://zsh.sourceforge.io/Intro/intro_3.html) environment variables should be expected to be in `.zshenv` and not be overridden in `.zprofile`. This change modifies BROWSER (on darwin systems only), EDITOR, VISUAL, PAGER, LESS, and LESSOPEN to only use zprezto defaults if they were not previously set in the loading order.

See:
https://github.com/nix-community/home-manager/issues/2739
https://github.com/nix-community/home-manager/issues/2751
2022-03-29 18:44:37 -05:00
45adecd9c9 [aws] Add sso support 2022-03-23 16:32:37 +01:00
74d4100434 Merge upstream/master 2022-03-05 16:27:27 +01:00
7ec1ecde3a prompt: Update pure submodule to 1.20.1 2022-02-26 13:32:37 -06:00
20641f3447 Merge pull request #1981 from zbirenbaum/python_fix
Fix crash on open caused by incorrect conditional in python module
2022-02-23 15:51:37 -05:00
bf3dfe8c02 Update Pure prompt to 1.20.0 2022-02-14 18:45:20 -08:00
d840f0fc7b Fix crash on open caused by incorrect conditional in python module 2022-02-03 22:08:36 -05:00
d6e1ef5fcf prompt: update powerlevel10k submodule to v1.16.1
Release notes:

  - https://github.com/romkatv/powerlevel10k/releases/tag/v1.16.1
2022-02-02 05:39:27 -08:00
7884fb2271 prompt: update powerlevel10k submodule to v1.16.0
Release notes:

  - https://github.com/romkatv/powerlevel10k/releases/tag/v1.16.0
2022-01-11 02:24:43 -08:00
a96f1618b4 Merge upstream/master 2021-12-04 12:13:47 +01:00
ecaed1cfa7 change polarity of test for BROWSER 2021-11-16 09:55:19 -08:00
7f8b9b829a general: Correct typo in installation instructions
Resolves “zsh: bad substitution”
2021-11-12 08:31:37 -08:00
d828d06643 Merge upstream/master 2021-08-29 12:20:05 +02:00
166cbe2fca autosuggestions: Update zsh-autosuggestions to 0.7.0 2021-07-07 09:56:42 -05:00
48291f68e8 general: Reformat runcom documentation 2021-07-07 09:56:22 -05:00
2451239713 general: Clarify relative ordering of modules in docs 2021-07-07 09:56:22 -05:00
98f6306d1e Merge upstream/master 2021-07-01 14:30:56 +02:00
f3c92ffeb3 utility: Pipe diff output through colordiff Instead of aliasing
`colordiff` behaves better as `stdin` filter. This is useful in
retaining color escape sequences when used with `less`.
2021-06-24 17:45:29 -05:00
866d5dfccd Add conda to the list of requirements
If conda is not in the list of requirements, the scripts exit too early in case pyenv is not installed and the module is configured with:

 zstyle ':prezto:module:python' skip-virtualenvwrapper-init 'on' 
 zstyle ':prezto:module:python' conda-init 'on'

Tested on Amazon EC2 Linux for Deeplearning AMI 47.0 and MacOS 11.4
2021-06-23 23:22:09 -05:00
dc66c17728 Merge upstream/master 2021-06-17 13:12:16 +02:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
9459a716bf node: Add handy aliases for 'npm'
Add standard `npm` aliases that are used frequently.
2021-05-21 13:39:23 -05:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
b14aca307d prompt: Update async helper to 1.8.5 2021-05-12 01:32:54 -05:00
0628b91028 completion: Update zsh-completions submodule to 0.33.0 2021-05-06 21:23:20 -05:00
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
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
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
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
8edc5e9323 environment: Simplify nested conditional block
Avoid unnecessary nesting for conditional block.
2021-05-05 12:13:02 -05:00
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
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
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
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
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
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
1d1ae0a661 homebrew: Update documentation 2021-05-02 03:34:45 -05:00
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
3285b33f0c homebrew: Remove wrapper function for deprecation warning 2021-05-02 03:34:45 -05:00
9d42feac16 homebrew: cask aliases update 2021-05-02 03:34:45 -05:00
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
5a8bfd5bf5 helper: Update docs for OS detection helpers 2021-05-02 01:15:19 -05:00
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
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
f651140f2c completion: Add note about keep zcompdump younger than cache time 2021-04-30 17:52:43 -05:00
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
c5175145d4 prompt: Fixup ~/.zpreztorc in p9k removal warning 2021-04-30 15:24:00 -05:00
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
db6cd0d668 prompt: Update 'powerlevel9k' removal warning with instruction 2021-04-30 10:54:29 -07:00
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
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
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
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
4de0377106 Add support for zstd compressed tarballs to module 'archive' 2021-04-29 21:20:25 -07:00
a2f3f419f6 prompt: Make 'powerlevel9k' removal warning message friendlier 2021-04-29 17:53:46 -05:00
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
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
428632ac07 history: Minor formatting update 2021-04-26 17:53:52 -05:00
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
a7f223d959 Enable history-substring-search as a default module
Resolves #1868
2021-04-17 20:24:13 -05:00
d66041cdb7 Update history-substring-search submodule to v1.0.2 2021-04-08 21:22:06 -07:00
b8a3d90a13 Fix a typo s/eigth/eighth/ 2021-04-08 21:12:29 -07:00
c005e87859 Merge upstream/master 2021-03-05 17:06:54 +01:00
667fba697e [aws] Update AWS prompt when ACCESS_KEY is present 2021-03-05 17:06:47 +01:00
704fc46c3f prompt: update powerlevel10k submodule to v1.14.6
Release notes:

- https://github.com/romkatv/powerlevel10k/releases/tag/v1.14.6
2021-01-19 11:11:27 -08:00
c43d483d47 prompt: update powerlevel10k submodule to v1.14.5
Release notes:

- https://github.com/romkatv/powerlevel10k/releases/tag/v1.14.5
2021-01-05 08:20:35 -08:00
f080e2075e Merge upstream/master 2020-12-20 17:52:55 +01:00
b7a80d99a8 prompt: update powerlevel10k submodule to v1.14.4
Release notes:

- https://github.com/romkatv/powerlevel10k/releases/tag/v1.14.4
2020-12-18 10:18:59 -08:00
c7ef9c1f46 [aws] Update prompt 2020-12-17 13:24:41 +01:00
775f6123b2 Merge upstream/master 2020-12-17 12:06:52 +01:00
e915c34507 prompt: update powerlevel10k submodule to v1.14.3
Release notes:

- https://github.com/romkatv/powerlevel10k/releases/tag/v1.14.0
- https://github.com/romkatv/powerlevel10k/releases/tag/v1.14.1
- https://github.com/romkatv/powerlevel10k/releases/tag/v1.14.2
- https://github.com/romkatv/powerlevel10k/releases/tag/v1.14.3
2020-12-14 14:19:17 -08:00
39151645ac Merge upstream/master 2020-09-05 16:05:00 +02:00
0a405494ca prompt: update powerlevel10k submodule to v1.13.0
Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.13.0
2020-09-01 09:50:55 -07:00
813bde4d44 Merge upstream/master 2020-08-01 18:12:16 +02:00
38882275b8 Add ^_ mapping to undo in viins mode (#1860)
This allows to cancel a tab completion, as ^_ in emacs mode.
2020-07-30 13:29:59 -07:00
e9197234cf Add check for empty WORKON_HOME (#1861)
When $WORKON_HOME is not set and $ENV_NAME is equal to
$PROJECT_ROOT/.venv which contains bin/activate then
the code wrongly assumes workon is available.

It should execute the second branch to source bin/activate.
2020-07-27 12:49:40 -07:00
685da200d7 completion: bump version to tags/0.32.0 (#1856) 2020-07-22 10:28:53 -07:00
cb8b9ca746 README: fix small grammatical error (#1857) 2020-07-20 16:08:54 -07:00
4e7ab4b8b7 utility, helper: add aliases to use with termux terminal emulator (android) (#1859) 2020-07-20 16:07:53 -07:00
677e301174 Merge upstream/master 2020-07-14 19:39:15 +02:00
c21295b27f prompt: update powerlevel10k submodule to v1.12.0
Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.12.0
2020-07-06 09:15:34 -07:00
83f3dca4a3 Merge upstream/master 2020-07-01 18:05:08 +02:00
a132c1007a git-info: use tab as separator for splitting ahead_and_behind (#902)
The current implementation is not tamper-proof against a modified IFS. See discussion in https://github.com/sorin-ionescu/prezto/pull/902 for details.
2020-06-29 10:26:36 -07:00
2d3763380c Ask pyenv whether pip exists if installed (#1848)
Pyenv will install shims for commands that exist in any interpreter, even if it is not the current one. This means that a command may technically exist, but when executed will tell the user to try a different interpreter. The original check for pip in the Python module can fail for this reason, in particular on Ubuntu 20.04.

This change checks with pyenv whether pip really exists in the current interpreter to work around this problem and fixes a bug in pip command detection.
2020-06-29 10:25:15 -07:00
20a78c04e5 Remove --all from git alias glg (#1853) 2020-06-29 10:23:08 -07:00
ff91c8d410 Make .zcomp* location configurable (#1842) 2020-06-04 13:53:44 -07:00
b8f5b31573 prompt: update powerlevel10k submodule to v1.11.0
Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.11.0
2020-05-31 20:19:44 -07:00
cb69d2d3e4 Merge pull request #1836 from diraol/dro/git_pull_autostash
[git] Add git pull autostash alias
2020-05-29 11:56:04 +05:30
793f239a5e prompt: update powerlevel10k submodule to v1.10.0
Release notes:

- https://github.com/romkatv/powerlevel10k/releases/tag/v1.8.0
- https://github.com/romkatv/powerlevel10k/releases/tag/v1.8.1
- https://github.com/romkatv/powerlevel10k/releases/tag/v1.8.2
- https://github.com/romkatv/powerlevel10k/releases/tag/v1.9.0
- https://github.com/romkatv/powerlevel10k/releases/tag/v1.9.1
- https://github.com/romkatv/powerlevel10k/releases/tag/v1.10.0
2020-05-20 03:22:52 -07:00
649c0e4561 [git] Add git pull autostash alias
Adds the gfma and gfra aliases with the `--autostash` flag.
2020-05-14 15:19:03 -03:00
13c61bae30 Do not source history-substring-search if already loaded (#1830) 2020-05-02 11:21:27 -07:00
6d546561c6 Merge upstream/master 2020-05-01 11:38:39 +02:00
530ea10126 prompt: update powerlevel10k submodule to v1.7.0
Release notes:

  - https://github.com/romkatv/powerlevel10k/releases/tag/v1.6.0
  - https://github.com/romkatv/powerlevel10k/releases/tag/v1.6.1
  - https://github.com/romkatv/powerlevel10k/releases/tag/v1.7.0
2020-04-30 14:34:22 -05:00
342385618c homebrew: load helper dependency
Updates #1815
2020-04-23 21:21:17 -05:00
2da4774473 [aws] Improve ssh_aws_any function 2020-04-13 15:45:08 +02:00
f427a567d7 Merge upstream/master 2020-04-09 18:27:14 +02:00
de7b3b7fdc Use shallow clone for powerlevel9k and powerlevel10k submodules (#1819) 2020-04-08 13:15:23 -07:00
95ff0360ae fix: regression in homebrew module (#1816) 2020-04-06 02:55:01 -07:00
5b03d7fa32 prompt: fix usage of zsh-async in sorin prompt (#1810) 2020-03-29 12:51:11 -07:00
d5bef142d4 Fix missing dependency on helper module for helpers added in #1793 (#1811)
PR #1793 introduced helper functions for OS detection in some modules.
These helpers require a module dependency on the 'helper' module.
2020-03-29 12:49:35 -07:00
9b2744cfdf Merge upstream/master 2020-03-25 12:18:59 +01:00
7fbedf4a3b [aws] Add iops to aws_ebs() output 2020-03-25 12:18:35 +01:00
f479f37ead prompt: update powerlevel10k submodule to v1.5.0
Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.5.0
2020-03-22 14:07:08 -07:00
f4ca9ebfc9 feat(helper): add os-type helper functions
Add the following functions:

- is-darwin
- is-linux
- is-bsd
- is-cygwin

And apply them everywhere I found code doing that what these functions do.
2020-03-19 11:49:11 -07:00
1b99be879c Update syntax-highlighting module 2020-03-19 11:19:25 -07:00
cfeb8cd6c9 prompt: update powerlevel10k submodule to v1.4.0
Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.4.0
2020-03-16 09:32:50 -07:00
0c22054a49 Merge upstream/master 2020-03-09 19:51:20 +01:00
d955fbdeb7 prompt: update powerlevel10k submodule to v1.3.0
Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.3.0
2020-03-06 10:04:57 -08:00
94f9e44f3f use $TTY instead of $(tty); it's faster and more reliable
`tty` command infers the current TTY from file descriptor 0.
`$TTY` gives current TTY directly. The latter works even when
file descriptor 0 is redirected. It's also over 1000 times faster.
2020-03-02 10:50:11 -08:00
92e6b37f73 prompt: update powerlevel10k submodule to v1.2.0
Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.2.0
2020-02-27 13:17:43 -08:00
d2832051f7 [aws] Improve output of aws_subnets function 2020-02-26 18:58:12 +01:00
65e8ba0596 [æws] Add aws_subnet function 2020-02-24 21:11:09 +01:00
272528b439 [aws] Add function for deactivating (unset variables) current aws profile 2020-02-22 20:04:40 +01:00
a73bb314cc [aws] Fix switch_aws_profile when dealing with AWS_DEFAULT_REGION 2020-02-22 19:41:14 +01:00
cb0099ec7a [aws] Improve output of aws_cf function 2020-02-22 16:12:23 +01:00
fc8f82329b [aws] Add function to activate and switch profiles taken from aws credentials file 2020-02-22 16:11:38 +01:00
3d827cdb88 [aws] Add support for showing AWS region in prompt 2020-02-20 18:43:05 +01:00
47b37b22ea Merge upstream/master 2020-02-20 18:04:49 +01:00
e9f281cd6f Updated prompt pure to version 1.11.0 2020-02-11 10:09:48 -08:00
4b32ae96db Merge upstream/master 2020-02-06 19:48:41 +01:00
bca85497f8 [aws] Add a (dirty) function for showing cloudfront distributions 2020-02-06 19:48:22 +01:00
4bcbe2ee68 prompt: update powerlevel10k submodule to v1.1
==[ Changes since the last release ]==

- Complete documentation overhaul. Powerlevel10k documentation is no
  longer embarrassing (still no reference though; coming "soon").
- Worker pool and recursive globber have been rewritten for better
  performance and simpler code. Performance improvements (large
  speedup means an improvement in big-O and at least 2x in typical
  configurations):
  - +15% prompt speedup across the board.
  - Large prompt speedup for several rarely used prompt segments
    (disk_usage, ram, etc.).
  - Large prompt speedup for a few prompt segments on macOS
    (battery, swap, etc.).
  - Large prompt speedup when many prompt segments are active
    simultaneously.
  - Large prompt speedup when filesystem is slow.
- New prompt segments: nix_shell and timewarrior. Both enabled by
  default.
- Configuration wizard:
  - Many new options for Pure style (color scheme, number of lines,
    etc.)
  - Several new options for 8-color version of Pure style.
  - Better support for terminals with less than 256 colors.
  - Lean, Classic and Rainbow style configs now have disk_usage and
    swap prompt segments (disabled by default).
  - POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER now contains 'oc'.
- New parameters:
  - POWERLEVEL9K_LEGACY_ICON_SPACING=true makes spaces around icons
    appear just like in powerlevel9k.
  - When in a vcs repo, POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=true
    removes directory prefix that precedes repo root.
  - P9K_KUBECONTEXT_USER can now be used in kubecontext format.
  - POWERLEVEL9K_GOENV_SOURCES -- the same as
    POWERLEVEL9K_RBENV_SOURCES but or go.
  - POWERLEVEL9K_TERRAFORM_CLASSES -- the same as
    POWERLEVEL9K_AWS_CLASSES but for terraform.
- Bug fixes:
  - Configuration wizard now correctly follows symlinks when modifying
    ~/.zshrc and ~/.p10k.zsh.
  - ram prompt segment now works on WSL.
  - Powerlevel10k now correctly works with zsh-you-should-use in
    hardcore mode.
  - POWERLEVEL9K_PUBLIC_IP_HOST now points to a host that actually
    works.
  - Instant prompt no longer prints nonsensical "entry=" in rare
    circumstances.
- Misc:
  - Config templates no longer work with
    POWERLEVEL9K_VISUAL_IDENTIFIER='' defined after them.
  - Powerlevel10k now detects when Antigen corrupts its source and
    emits an appropriate error message.
  - Command line parser now understands 'tabbed'.
  - Remove all references to romkatv/dotfiles-public. Fonts are now
    hosted in romkatv/powerlevel10k-media together with all images
    and animations.

==[ Build time dependencies ]==

- edb99aa7b8
- 75be63625a
- https://opensource.apple.com/tarballs/libiconv/libiconv-51.200.6.tar.gz
2020-02-02 11:09:29 -08:00
ac9843e2d4 Merge upstream/master 2020-01-30 08:54:36 +01:00
66b9ea7d44 Update documentation
- Fix an old link to the wrong issue tracker
- Add documentation to the history module about migration from oh-my-zsh

Closes #1766
2020-01-20 07:50:42 -08:00
7cad349a5a environment: improve the TTY check (#1785)
Bug report from @qosmio:
https://github.com/sorin-ionescu/prezto/pull/1771#issuecomment-575596417

I'm unable to reproduce it and @qosmio hasn't yet confirmed or
disconfirmed whether this fix works. It's a good idea to change
the code this way in either case.

(As I mentioned in #1771, this `stty -ixon` call may have been added
by mistake. It doesn't do what the comment suggest and is at least as
likely to be harming users as helping them.)
2020-01-20 07:29:34 -08:00
4a32e9d68b node: suppress node-info when nvm points system-wide node (#802)
On modern versions of nvm, when virtual environment is not activated
(i.e. node comes from system-wide and `nvm version` == 'system'),
redundant node-info could be suppressed from showing.
2020-01-20 07:25:07 -08:00
7ec4aad48c Merge upstream/master 2020-01-19 18:54:16 +01:00
1f52b03a45 prompt: update powerlevel10k submodule to the latest commit (#1784)
- New features:
  - Show On Command -- Display prompt segments conditional on the
    command being typed. Demo:
    https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/show-on-command.gif
  - `p10k display` -- Quickly hide or show different parts of prompt.
  - `p10k-on-*` hooks -- Get notified about prompt-related events.
- New prompt segments:
  - google_app_cred -- Google Application Credentials.
  - luaenv -- Lua version from https://github.com/cehoffman/luaen.
  - jenv -- Java version from https://github.com/jenv/jenv.
  - plenv -- Perl version from https://github.com/tokuhirom/plenv.
  - nnn -- Shell indicator for https://github.com/jarun/nnn.
- Important fixes:
  - Ctrl-C no longer shortens prompt when used to terminate a zle widget
    with transient prompt enabled.
  - Don't print warnings in instant prompt when OMZ is updating.
  - rust_version now properly recognized rustup overrides.
- Smoother rendering when using transient prompt.
- New style in `p10k configure`: Lean restricted to 8 colors.
2020-01-16 08:52:09 -08:00
9ae279e25a Allow module functions directory to be a symlink
The link must still point to a full directory.
2020-01-15 14:26:55 -08:00
2acaec814f autosuggestions: update to v0.6.4 2020-01-14 09:08:47 -08:00
a3a51bdf6c Support pmodule-allow-overrides feature (#1780) 2020-01-13 15:49:37 -08:00
c6efe80152 runcoms: don't raise an error in zlogin when stderr is not a TTY (#1775)
The existing code in runcoms/zlogin results in `$?` being
equal to `1` when starting a login shell if stderr is not
a TTY. For example:

  zsh -l 2>/dev/null

When using a theme that displays error/success status of
the last command, the first prompt will show an error.

This commit fixes it so that error code is zero after
sourcing zlogin (unless something unexpected and bad happens).
2020-01-11 00:48:45 -08:00
7c94154dda environment: apply stty -ixon only to tty (#1771) 2019-12-27 15:22:15 -08:00
e86200e7aa Allow mapping Ctrl+S and Ctrl+Q shortcuts (#1750) 2019-12-18 15:37:51 -08:00
721b1535ea Merge upstream/master 2019-12-18 16:03:08 +01:00
a5ebde1b17 prompt: update powerlevel10k submodule to the latest commit (#1768)
- New prompt segments:
  - gcloud
  - fvm
  - vim_shell
  - midnight_commander
  - goenv
- Many bug fixes and new minor features.
2019-12-09 16:04:22 -08:00
a251bd2fb9 [aws] Add date to aws_ami function output 2019-12-01 18:31:29 +01:00
ef3e9eda18 Merge upstream/master 2019-12-01 17:38:39 +01:00
2d6205e714 prompt: update powerlevel10k submodule to the latest commit (#1761)
New feature: Transient Prompt.

Demo:
https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/transient-prompt.gif

Announcement post:
https://www.reddit.com/r/zsh/comments/dsh1g3/new_powerlevel10k_feature_transient_prompt
2019-11-11 09:25:39 -08:00
b9c34d9445 [aws] Improve filtering at aws_ssm_session_any() 2019-11-08 19:44:43 +01:00
0af28e758b prompt: update powerlevel10k submodule to the latest commit (#1757)
- New feature: Instant Prompt.
  - Zsh starts instantly even if zshrc loads dozens of plugins.
  - Must be explicitly enabled via `p10k configure`.
- New prompt segment: azure.
- New styles: Pure and Rainbow.
- 6 times faster loading (independent of instant prompt).
2019-11-07 00:33:37 -08:00
048d5302d6 [modsorin] Change AWS prompt 2019-11-06 19:19:16 +01:00
e9e8c31217 [aws] Merge aws_elb and aws_elb2 aliases and improve information shown 2019-11-06 19:02:45 +01:00
f549bd7a0b [aws/sorinmod] Fix AWS profile prompt 2019-11-06 18:31:43 +01:00
ed511e6747 [aws/sorinmod] Show aws profile in prompt 2019-11-06 17:28:19 +01:00
13f3cabd81 [aws] Add alias for ssh through ssm proxy 2019-11-05 12:05:16 +01:00
b2aead431c [aws] Fix typo at aws_kms_decrypt 2019-11-05 11:40:15 +01:00
21ce6a6f97 Merge branch 'master' of https://github.com/dcarrillo/prezto 2019-11-04 11:06:52 +01:00
585b3646f9 aws: Fix profile issues 2019-11-04 11:05:59 +01:00
aeb58b972d Merge upstream/master 2019-10-24 19:43:06 +02:00
b44893d9eb [aws] Add aws_kms_decrypt and aws_ssm_session functions 2019-10-24 14:57:58 +02:00
ed6303c340 homebrew: add alias brewL 2019-10-17 13:59:40 -07:00
6d65cb4176 Remove documentation for obsolete brewC alias 2019-10-17 13:59:40 -07:00
1bc0da5f48 Init submodules when using zprezto-update (#1713) 2019-10-16 09:23:48 -07:00
55eb406515 Remove alias for invalid brew cleanup --force
`brew cleanup --force` produces the following error message: `Error: invalid option: --force`. I can't seem to find any record of this being a valid option for the cleanup command, so either it was deprecated in the stone age or it was a simple mistake. However, there is a `--force` option available for `brew uninstall`, but that's a dicey thing to alias.
2019-10-16 09:13:29 -07:00
2873885d37 utility: fix safe-ops commands
Fixes #1699
2019-09-21 17:29:21 -07:00
91292526a0 Add sorin prompt changes to sorinmod 2019-09-20 21:22:12 +02:00
a1df63bade Merge upstream/master 2019-09-20 21:16:11 +02:00
9507a0e881 tmux: ignore tmux autostart in vscode terminal (#1718)
In certain situations VSCODE_PID isn't set any more, so we just need to check TERM_PROGRAM which has existed for a few years already.
2019-09-10 09:18:09 -07:00
75b112bcd0 node, python, ruby: update docs about new envars 2019-09-10 09:10:31 -07:00
f596d5d1d6 python: improve PYENV_ROOT detection 2019-09-10 09:00:11 -07:00
61de4d199d node: support environment variables NVM_DIR and NODENV_ROOT 2019-09-10 09:00:11 -07:00
6ae2f39cc1 ruby: support environment variable RBENV_ROOT 2019-09-10 09:00:11 -07:00
75940e8ee9 directory: update docs to clarify it doesn't really set AUTO_NAME_DIRS (#1740)
Module `directory` used to set AUTO_NAME_DIRS. This was changed in
73e94b84 but README.md hasn't been updated. This looks like an
accidental omission that this commit fixes.
2019-09-10 08:57:42 -07:00
43214f1aed history: Permit use of previously set HISTFILE
Honor the use of the HISTFILE environment variable, if it's already set.
2019-09-10 08:56:51 -07:00
8b1a7afd81 prompt: update powerlevel10k submodule to the latest commit (#1738)
- New prompt segment: terraform.
- Configuration wizard:
  - Offer to install Meslo Nerd Font (only on iTerm2 and Termux).
  - Offer to enable `time` prompt segment.
  - New style options: round separators, heads and tails.
  - Reduce the minimum required terminal width to 55 columns.
- Several bug fixes. Most notable:
  - Fix network interface and ip parsing on Linux and WSL.
  - Disregard auto_name_dirs if it's set.
2019-09-06 10:08:26 -07:00
8914274ca9 prompt: update zsh-async to fix an infinite loop (#1734) 2019-08-19 10:30:33 -07:00
34948690d5 syntax-highlighting: update external dependency 2019-08-19 10:28:23 -07:00
a8087e01fb prompt: update powerlevel10k submodule to the latest commit
- Several bug fixes. Most notable:
  - Don't hide command execution time on reset-prompt.
  - Support prezto with zsh 5.1.
  - Don't hide nvm prompt when there is no nvm command.
- New prompt: ranger.
- Add an option to hide rust version when outside of rust project tree.
- Add an option to show rvm gemset.
2019-08-19 10:24:45 -07:00
abb0c7ecb4 prompt: update powerlevel10k submodule to the latest commit
A dozen bug fixes. Most important:

- rbenv and a few other segments didn't work if IFS was set
  to something unusual.
- vcs segment couldn't properly apply subsegment style if
  color overrides used mnemonic names.
- the check for .p10k.zsh already being sourced was too strict.
2019-08-02 01:54:56 -07:00
b01f02aa5c prompt: update powerlevel10k submodule to the latest commit
New feature: Configuration Wizard. Type `p10k configure` to
explore the unique styles and features Powerlevel10k has
to offer.
2019-07-31 14:49:31 -07:00
5566a9c792 Resolves 1641 - Checks whether the prompt is set to be managed or not. (#1723)
This is a new variable that will need to be set on all new prompts and
is not backwards compatible with custom prompts that are not prezto
managed, but use prezto's editor-info functionality. Updated the
README.md with additional information for themes.
2019-07-25 17:14:43 -05:00
3ae422a0da prompt: update powerlevel10k submodule to the latest commit (#1727)
The last update has picked up a nasty bug in gitstatus that disables all user aliases. This commit fixes it.
2019-07-24 11:13:32 -07:00
6dd97d15e0 prompt: update powerlevel10k submodule to the latest commit (#1726)
Changes include a few bug fixes and a score of new features.
2019-07-23 10:04:45 -07:00
21b83b65ef Merge upstream/master 2019-07-18 18:22:31 +02:00
e94b6b2078 prompt: update powerlevel10k submodule to the latest commit (#1717)
A bunch of bug fixes. Most notably romkatv/powerlevel10k#89.
2019-07-02 10:23:12 -06:00
de23724dc3 Merge upstream/master 2019-06-21 18:42:55 +02:00
e6e5e4d68f Fix os-info and update prompt 2019-06-21 18:42:37 +02:00
09e83ed282 prompt: update powerlevel10k submodule (#1715) 2019-06-17 10:49:02 -07:00
9f86f48ae6 Add INSTALL.md 2019-06-07 17:54:40 +02:00
15bfe616bc Merge upstream/master 2019-06-07 17:35:30 +02:00
1d58546406 prompt: update powerlevel10k to latest commit 2019-05-29 13:42:17 -07:00
ac65e8eb18 Add powerlevel10k theme (#1695) 2019-05-29 13:40:47 -07:00
bb901dfb7e Update zsh-autosuggestions submodule 2019-05-23 09:20:38 -07:00
f235db7aaa Fork prompt_sorin as prompt_sorinmod 2019-05-17 20:53:44 +02:00
82222831a7 Merge upstream/master 2019-03-30 15:20:55 +01:00
1f4601e44c Disable node-info output when value is system.
This makes the behavior consistent with rbenv and pyenv.
2019-03-18 00:10:32 -05:00
b8d7e2cad8 Add zstyle option to disable zsh option CORRECT 2019-03-05 14:04:21 -08:00
5d7c990eec archive: enhance parallel operations 2019-02-18 21:40:25 -08:00
d22effbf85 editor: allow alt+arrow keys for word movement (#1688) 2019-02-11 16:21:38 -08:00
4ff726e600 Merge with upstream 2019-01-11 18:26:13 +01:00
c2c53592a1 Merge upstream/master 2019-01-11 18:24:30 +01:00
4abbc55721 remove mutually exclusive option 2019-01-07 21:03:12 -08:00
777674e07e Update syntax-highlighting submodule 2019-01-07 21:12:32 -06:00
ba4063f99e Remove old prompt tempfile and pid variable
This is a leftover of #1385, the temp file and the PID variable is not
needed any more.
2019-01-07 21:11:37 -06:00
88456ec9b6 Updating submodules to lastest tags/master commits 2019-01-07 20:56:52 -06:00
4a16d3fa50 Fix typo: gupl --> gulp (#1668) 2019-01-02 18:04:07 -08:00
a70d24ab10 Merge upstream/master 2018-12-22 14:43:23 +01:00
a338cba805 python: Use brace expansion for pip compctl match
Just use brace expansion only (and not a mix of brace expansion and
path expansion) to expand `sed` match for more variants of 'pip*' (pip,
pip2, pip3, pip2.7, pip3.7 etc.) in `compctl` assignment
2018-12-18 14:19:07 -06:00
0e6429da97 Remove duplicated information from git module README (#1657) 2018-12-17 10:22:33 -08:00
9d3e2f0204 python: Expand compctl matches for pip variants
Expand `sed` match for more variants of 'pip*' (pip, pip2, pip3, pip2.7, 
pip3.7 etc.) for `compctl` assignment
2018-12-14 21:32:10 -06:00
dc8e168d5f command-not-found: Minor reformatting 2018-12-14 20:57:10 -06:00
3093f1b966 homebrew: Load 'HOMEBREW_' prefixed variables only
Load 'HOMEBREW_' prefixed variables only. Avoid loading 'PATH'
related variables as they are already handled in standard zsh 
configuration.
2018-12-14 15:40:59 -06:00
11184084bc homebrew: Simplify array assignment
No need for nesting array assignment only to flatten it later.
2018-12-14 15:34:42 -06:00
54dff31b63 archive: Enhance 'archive' helper to support multi file archive
We now allow multiple paths (files/directories) to be archived in
one shot. Validation of the target path(s) is now delegated to the
actual archive helper.
2018-12-13 13:51:09 -06:00
23c56a5640 Improve aws_ebs output at aws module 2018-12-13 20:13:12 +01:00
1a48ae2e54 Merge upstream/master 2018-12-13 19:52:04 +01:00
eee3c9c166 git: add documentation for new aliases 2018-12-13 10:51:56 -08:00
39e1a63349 Aliases to digital sign/verify commits and tags (#651) 2018-12-13 10:43:23 -08:00
d275f316ff syntax-highlighting: Further clarify relative module ordering 2018-12-12 23:02:59 -06:00
6a2cc2e146 rsync: Update link to Bombich rsync page again 2018-12-12 22:42:02 -06:00
d45d87b08f node: Make nvm lookup mechanism more efficient in homebrewed environment
In homebrewed environment, avoid using `brew --prefix nvm` which is
ruby based and is super slow. Instead, rely on homebrew standard
behavior wherein all installed packages are available in canonical
path $(brew --prefix)/opt/<package> (for nvm it would obviously be
`$(brew --prefix)/opt/nvm`).

NB: `$(brew --prefix)` (without additional argument) is a simple shell
shortcut and doesn't have the same performance impact.
2018-12-12 22:32:51 -06:00
a987c8bc8a python: Fix pip compctl file match pattern
Make `sed` match more reliable while replacing the whole of 'pip*' with 
'pip pip2 pip3' for `compctl` assignment
2018-12-12 16:18:58 -06:00
f745645342 command-not-found: Support custom Homebrew tap on MacOS
Added support for homebrew-command-not-found from a non-default tap
2018-12-11 13:26:43 -06:00
a2398fc045 node: Cache completion for additional helpers
Add support for npm and additional well-known helper commands
2018-12-11 08:12:09 -06:00
e7fea3343f python: Use more apropriate filename for pip completion 2018-12-11 08:11:44 -06:00
53286ebbdb python: Make cached completion file mangling more reliable
While mangling cached completion file, we cannot just assume that
`$pip_command` would resolve to `pip` -- it might be `pip2` or `pip3`
depending on the relative position in zsh `$commands` array. Thus
replace the whole of 'pip*' with 'pip pip2 pip3' for compctl assignment.
2018-12-11 08:11:44 -06:00
2286662b80 command-not-found: Restore idiomatic homebrewed handler loading on MacOS
As is the convention in prezto, we cache the command-not-found handler to
avoid incurring the performance penalty of loading ruby interpreter on
every call. This restores the 'Homebrew way' of loading command-not-found
handler.

Further, the formally recommended command lookup mechanism in Homebrew
(viz., `brew command command-not-found-init`) is ruby based and is super
slow. To avoid performance penalty, we `find` it ourselves from
`TAP_DIRECTORY` defined internally in Homebrew.

This also reinstates support for custom taps or non-standard Homebrew location.
2018-12-11 08:10:37 -06:00
3de1e24965 Update submodules versions 2018-12-06 12:05:43 -06:00
be68a38ff5 Add AZ to aws_ebs funcion 2018-12-06 16:48:54 +01:00
32084778d0 Merge upstream/master 2018-12-06 16:46:22 +01:00
8bfed01773 Resolves #1641 - Roll the pure prompt back from 1.8.0 to 1.7.0 2018-11-30 16:55:25 -06:00
b2a9152820 Merge branch 'master' of https://github.com/dcarrillo/prezto 2018-11-21 08:52:04 +01:00
680fba3112 Improve output of aws_elb2 function at AWS module 2018-11-21 08:51:36 +01:00
236907f8af Fix aws_ebs function at AWS module 2018-11-20 17:19:28 +01:00
108392b503 Add describe_ebs function to AWS module 2018-11-20 15:58:58 +01:00
a09155f990 Add AWS module 2018-11-19 19:41:45 +01:00
35a83744e7 Merged 2018-11-09 17:46:04 +01:00
b083b134e7 Fix typo at update_zprezto 2018-11-09 17:20:50 +01:00
e6eea17b12 Update submodules
Updating to the latest released tags for modules:
completetion
syntax-highlighting

And for agnoster prompt
2018-11-08 17:42:44 -06:00
93313aac23 Add yank module and update script 2018-10-28 16:44:19 +01:00
f37cf0ffc9 Merge remote-tracking branch 'upstream/master' 2018-10-21 18:32:07 +02:00
1ed5331e84 Fix issue #1635. Option to disable GNU ls to group directories first. 2018-10-18 16:22:04 -05:00
bfe1815cbf prompt/sorin: Minor cleanup and reordering 2018-10-18 08:14:47 -05:00
a43093119e prompt/minimal: Add support for preview 2018-10-18 08:14:47 -05:00
a3753d8f3b prompt/steeef: Add basic support for editor_info and preview 2018-10-18 08:14:47 -05:00
58809b2d21 Update submodule 'history-substring-search'
history-substring-search doesn't tag releases anymore and just maintains
the master branch -- switching to tracking master instead.
2018-10-12 16:55:57 -05:00
992b9de505 doc: More copyediting and formatting for consistency 2018-10-12 12:04:49 -05:00
6f603df7a6 general: Miscellaneous documentation updates
- Add missing documentation for options and environment variables
- Rearrange definition and documentation of 'Options', 'Variables'
  and 'Aliases' in a consistent order
2018-10-12 12:04:49 -05:00
ff5bd9306e submodule: Updating submodules
'modules/prompt/external/async' updated to 'v1.7.1'
'modules/syntax-highlighting/external' updated to latest 'master'
2018-10-11 17:26:42 -05:00
df4c61861d doc: Bit of copyediting and formatting for consistency and clarification 2018-10-11 17:10:38 -05:00
53facbe9de Add os-info function and use it in damoekri theme 2018-10-06 21:12:31 +02:00
6c46804f41 environment: only enable bracketed paste on non-dumb terminals
Fixes #1552
2018-09-28 14:51:59 -07:00
e9387a177e python: respect PYENV_ROOT if already set
Fixes #1578
2018-09-28 14:24:30 -07:00
ee885d42de python: use pure's magic value for VIRTUAL_ENV_DISABLE_PROMPT
Fixes #1627
2018-09-28 14:04:24 -07:00
fbcae356d3 Updating submodules
For the submodules that have some kind of release (tags), they were
updated up to the most recent release. Otherwise, the submodule was
updated to the latest commit.
2018-09-17 16:34:01 -05:00
f366e49c32 homebrew: Cleanup homebrew aliases
- 'brew upgrade' does 'brew update' by default, no need for explicit call
- replace 'brew remove' with 'brew uninstall' for consistency
2018-09-15 13:04:07 -05:00
ad861d3b45 homebrew: Replace deprecated casks with their brew counterpart
Homebrew has deprecated `brew cask cleanup` and `brew cask search` in favor
of `brew cleanup` and `brew search` respectively. They will stop working on
2018-09-30. Further, `--outdated` has been removed.

We should eventually remove the related aliases, but for a while we keep
supporting them gracefully with deprecation warning.

The documentation has been removed from README.md, however.
2018-09-15 13:04:07 -05:00
2bbf5d0687 homebrew: Load standard Homebrew environment variables into shell session.
However, guard for legacy Homebrew as `brew shellenv` is relatively new.
2018-09-15 09:37:24 -07:00
dd7a26e219 [git] Also check "commondir" when looking for a stash (#1620) 2018-09-15 09:35:48 -07:00
7bb7a7cb6f Add explanation for extra git theme symbols in README.md
Helps with #1589
2018-08-13 14:14:19 -05:00
66487c9532 Correct alphabetical order in zprestorc 2018-08-13 14:11:01 -05:00
f2042a29cc Update submodules (#1615)
This updates the submodules for autosuggestions, completion,
syntax-highlighting and the prompts async, powerlevel9k and pure.

All submodules that have TAGs/Releases were updated to their latest
TAG/release, except for syntax-highlighting because it's latest
release/TAG is from more than one year ago, and the project seems to be
well maintained but without releases.
2018-08-09 14:25:30 -04:00
dacef14214 Improve startup time by skipping pyenv rehash
After profiling startup time, I found that "pyenv rehash" is
by far the slowest piece. This change skips rehashing on init.

See https://github.com/pyenv/pyenv/issues/784#issuecomment-404850327

Also pass the shell explicitly, as suggested in
https://github.com/pyenv/pyenv/issues/784#issuecomment-404944318,
which provides a modest improvement.

In total, this improves startup time from 1s to 0.3s on my machine.
Using the following command:
python -m timeit "__import__('subprocess').Popen(['zsh', '-i', '-c', 'echo']).communicate()"

Result before this change:
10 loops, best of 3: 1 sec per loop

Result after this change:
10 loops, best of 3: 334 msec per loop
2018-08-01 13:52:52 -04:00
e064d5c65f Make node-info work without nvm/nodenv 2018-08-01 13:50:20 -04:00
152b4a1b5d Fix broken gitref link in README.md
gitref.org points to services.github.com, and has been for some time[0].

[0] https://github.com/git/git-reference/issues/112
2018-08-01 13:47:22 -04:00
e149367445 coreutils: update list of included coreutils (#1592) 2018-06-26 16:28:04 -07:00
cd70822994 completion: Compact path to global ssh known hosts file 2018-06-26 13:43:27 -05:00
0d6e7de031 syntax-highlighting: Update README to clarify module load order
Fixes #1584
2018-06-18 14:16:39 -07:00
b11b9ce788 Fix path to global ssh known hosts file
The path to the global known hosts file is /etc/ssh/ssh_known_hosts, not
/etc/ssh_hosts.
2018-06-14 11:31:29 -07:00
d4332e2faf Fix spelling error in CONTRIBUTING.md (#1590) 2018-06-01 00:36:21 -07:00
92e668e1d9 Remove zlogout's Apu quote (#1583)
* Remove zlogout's Apu quote

For questions about why, see https://en.wikipedia.org/wiki/The_Problem_with_Apu

* Add a couple of random sayings per feedback in #1583
2018-05-22 18:44:57 -07:00
3d911cd511 Document gpf vs gpF
Document the difference between `gpf` and `gpF`. These were changed in https://github.com/sorin-ionescu/prezto/pull/1040 / ddfc870f9a, but never documented.
2018-05-20 14:10:13 -07:00
ae23bedd24 Document macOS support for command-not-found
Document macOS support for `command-not-found`
2018-05-20 14:06:54 -07:00
2995b7d0c8 Update cache files when .zpreztorc file is modified
Fixes #1581
2018-05-06 13:22:22 -07:00
6e179f24ab Export VIRTUAL_ENV_DISABLE_PROMPT when enabling virutalenv
Adding `export` ensures the define is available in the shell so pyenv
or virtualenvwrapper do not duplicate the virtualenv name on the
prompt.
2018-05-01 08:53:16 -07:00
f8f93d4b91 command-not-found: Directly source homebrew command-not-found handler
Fixes #1577, Fixes #1451
2018-04-29 17:39:39 -07:00
b6b43eb331 Rename "Mac OS X" to "macOS" in comments
This only changes references in text for human consumption. It leaves
out renaming paths because that can cause breaking changes.

Related issue https://github.com/sorin-ionescu/prezto/issues/1449.
2018-04-16 15:53:48 -07:00
300102897a Add proper prompt_opts to smiley prompt 2018-04-06 11:35:39 -07:00
054eb351f1 Revert "Only call reset-prompt when the appropriate zstyle is set"
This reverts commit 6d00fdf8c8.

As unfortunate as it is, this workaround was a hack and doesn't take
into account prompts like spaceship which don't use $editor_info but
rely on $KEYMAP directly. We'll need to find a more consistent solution
to fix this.
2018-04-06 11:33:02 -07:00
1b441e7654 Feat (git): add an alias displaying the commits yet to be applied to upstream (#1565) 2018-04-04 15:20:21 -07:00
443021237a Allow users to easily define LS_COLORS and LSCOLORS (#1546) 2018-03-30 17:47:05 -07:00
a0977cb92e Ignore tmux autostart in vscode terminal 2018-03-30 17:45:35 -07:00
b3c27bb164 Replace git with 'command git' (#1551)
to improve performance if git is aliased to hub or other wrappers.
2018-03-05 00:56:25 -08:00
e00562e7cf python: autoload add-zsh-hook when needed (#1549)
Fixes #1550
2018-02-23 13:39:45 -08:00
742260b55f Remove support for pydf to make options more consistent
Closes #1388
2018-02-21 14:10:11 -08:00
580ddc44f3 Add another shadow to the git aliases
Originally submitted in https://github.com/sorin-ionescu/prezto/pull/979
2018-02-21 14:02:56 -08:00
4325f74f9d git: add tag aliases
Originally submitted in https://github.com/sorin-ionescu/prezto/pull/1094
2018-02-21 13:48:51 -08:00
6d00fdf8c8 Only call reset-prompt when the appropriate zstyle is set
Resolves issue #1524 (#1548)
2018-02-20 20:36:29 -08:00
e26387656d Don't double-source chruby
If chruby was installed using default way, most likely chruby and
auto-switching will be already sourced (at least on most Linuxes).
2018-02-17 19:38:12 -08:00
d7622624aa autosuggestions: add basic history troubleshooting information 2018-02-17 08:06:34 -08:00
144 changed files with 3156 additions and 2094 deletions

9
.gitmodules vendored
View File

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

View File

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

15
INSTALL.md Normal file
View File

@ -0,0 +1,15 @@
# Install and update
## Install
```bash
git clone https://github.com/dcarrillo/prezto.git ~/.zprezto
cd ~/.zprezto
git remote add upstream https://github.com/sorin-ionescu/prezto.git
git submodule update --init --recursive
```
## Keep updated
Run the [update](scripts/update_zprezto) script.

139
README.md
View File

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

View File

@ -17,20 +17,6 @@ if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
fi
unset min_zsh_version
# Change the resolution of the SECONDS variable to be more useful for debugging.
typeset -F SECONDS
# logging convenience, mostly meant for debugging performance issues.
function pdebuglog {
if ! zstyle -t ":prezto" debug; then
return
fi
local format="$1"
shift
printf "[%f] $format\n" $SECONDS "$@"
}
# zprezto convenience updater
# The function is surrounded by ( ) instead of { } so it starts in a subshell
# and won't affect the environment of the calling shell
@ -58,7 +44,8 @@ function zprezto-update {
printf "There is an update available. Trying to pull.\n\n"
if git pull --ff-only; then
printf "Syncing submodules\n"
git submodule update --recursive
git submodule sync --recursive
git submodule update --init --recursive
return $?
else
cannot-fast-forward
@ -107,25 +94,25 @@ function pmodload {
# Load Prezto modules.
for pmodule in "$pmodules[@]"; do
pdebuglog "Started loading %q" $pmodule
if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then
pdebuglog "Module %q already loaded" $pmodule
continue
else
locations=(${pmodule_dirs:+${^pmodule_dirs}/$pmodule(-/FN)})
if (( ${#locations} > 1 )); then
if ! zstyle -t ':prezto:load' pmodule-allow-overrides 'yes'; then
print "$0: conflicting module locations: $locations"
continue
fi
elif (( ${#locations} < 1 )); then
print "$0: no such module: $pmodule"
continue
fi
# Grab the full path to this module
pmodule_location=${locations[1]}
pmodule_location=${locations[-1]}
# Add functions to $fpath.
fpath=(${pmodule_location}/functions(/FN) $fpath)
fpath=(${pmodule_location}/functions(-/FN) $fpath)
function {
local pfunction
@ -147,7 +134,6 @@ function pmodload {
if (( $? == 0 )); then
zstyle ":prezto:module:$pmodule" loaded 'yes'
pdebuglog "Module %q loaded" $pmodule
else
# Remove the $fpath entry.
fpath[(r)${pmodule_location}/functions]=()
@ -165,7 +151,6 @@ function pmodload {
done
}
pdebuglog "Module %q failed to load" $pmodule
zstyle ":prezto:module:$pmodule" loaded 'no'
fi
fi
@ -198,6 +183,9 @@ zstyle -a ':prezto:load' zmodule 'zmodules'
for zmodule ("$zmodules[@]") zmodload "zsh/${(z)zmodule}"
unset zmodule{s,}
# Load more specific 'run-help' function from $fpath.
(( $+aliases[run-help] )) && unalias run-help && autoload -Uz run-help
# Autoload Zsh functions.
zstyle -a ':prezto:load' zfunction 'zfunctions'
for zfunction ("$zfunctions[@]") autoload -Uz "$zfunction"

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

View File

@ -1,52 +1,53 @@
Archive
=======
# Archive
Provides functions to create, list, and extract archives.
Functions
---------
This module must be loaded _before_ the [_`completion`_][1] module so that the
provided completion definitions are loaded automatically by _`completion`_
module.
## Functions
- `archive` creates an archive based on the provided archive name.
- `lsarchive` lists the contents of one or more archives.
- `unarchive` extracts the contents of one or more archives.
Supported Formats
-----------------
## Supported Formats
The following archive formats are supported when the required utilities are
installed:
- *.tar.gz*, *.tgz* require `tar` (optionally `pigz`).
- *.tar.bz2*, *.tbz* require `tar` (optionally `pbzip2`).
- *.tar.xz*, *.txz* require `tar` with *xz* support.
- *.tar.zma*, *.tlz* require `tar` with *lzma* support.
- *.tar* requires `tar`.
- *.gz* requires `gunzip`.
- *.bz2* requires `bunzip2`.
- *.xz* requires `unxz`.
- *.lzma* requires `unlzma`.
- *.Z* requires `uncompress`.
- *.zip*, *.jar* requires `unzip`.
- *.rar* requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`.
- *.7z* requires `7za`.
- *.deb* requires `ar`, `tar`.
- _.tar.gz_, _.tgz_ require `tar` (optionally `pigz`).
- _.tar.bz2_, _.tbz_ require `tar` (optionally `pbzip2`).
- _.tar.xz_, _.txz_ require `tar` with _xz_ support.
- _.tar.zma_, _.tlz_ require `tar` with _lzma_ support.
- _.tar_ requires `tar`.
- _.gz_ requires `gunzip`.
- _.bz2_ requires `bunzip2`.
- _.xz_ requires `unxz`.
- _.lzma_ requires `unlzma`.
- _.Z_ requires `uncompress`.
- _.zip_, _.jar_ requires `unzip`.
- _.rar_ requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`.
- _.7z_ requires `7za`.
- _.deb_ requires `ar`, `tar`.
Additionally, if `pigz` and/or `pbzip2` are installed, `archive` will use them over
their traditional counterparts, `gzip` and `bzip2` respectively, to take full advantage
of all available CPU cores for compression.
Additionally, if `pigz` and/or `pbzip2` are installed, `archive` will use them
over their traditional counterparts, `gzip` and `bzip2` respectively, to take
full advantage of all available CPU cores for compression.
Alternatives
------------
## Alternatives
Specifically on macOS, [The Unarchiver][1] provides a similar command line tool
Specifically on macOS, [The Unarchiver][2] provides a similar command line tool
which doesn't depend on a number of other programs being installed.
Authors
-------
## Authors
*The authors of this module should be contacted via the [issue tracker][1].*
_The authors of this module should be contacted via the [issue tracker][3]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Matt Hamilton](https://github.com/Eriner)
[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 \
'(-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 \
'(-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
#
@ -8,15 +7,15 @@
# function archive {
local archive_name dir_to_archive _gzip_bin _bzip2_bin
local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin _zstd_bin
if (( $# != 2 )); then
if (( $# < 2 )); then
cat >&2 <<EOF
usage: $0 [archive_name.zip] [/path/to/include/into/archive]
usage: $0 [archive_name.zip] [/path/to/include/into/archive ...]
Where 'archive.zip' uses any of the following extensions:
.tar.gz, .tar.bz2, .tar.xz, .tar.lzma, .tar, .zip, .rar, .7z
.tar.gz, .tar.bz2, .tar.xz, .tar.lzma, .tar.zst, .tar, .zip, .rar, .7z
There is no '-v' switch; all operations are verbose.
EOF
@ -28,14 +27,8 @@ fi
# strip the path, just in case one is provided for some reason
archive_name="${1:t}"
# use absolute paths, and follow symlinks
dir_to_archive="${2}"
# if the directory doesn't exist, quit. Nothing to archive
if [[ ! -e "${dir_to_archive}" ]]; then
print "$0: file or directory not valid: ${dir_to_archive}" >&2
return 1
fi
# let paths be handled by actual archive helper
path_to_archive="${@:2}"
# here, we check for dropin/multi-threaded replacements
# this should eventually be moved to modules/archive/init.zsh
@ -46,21 +39,32 @@ else
_gzip_bin='gzip'
fi
if (( $+commands[pbzip2] )); then
if (( $+commands[pixz] )); then
_xz_bin='pixz'
else
_xz_bin='xz'
fi
if (( $+commands[lbzip2] )); then
_bzip2_bin='lbzip2'
elif (( $+commands[pbzip2] )); then
_bzip2_bin='pbzip2'
else
_bzip2_bin='bzip2'
fi
_zstd_bin='zstd'
case "${archive_name}" in
(*.tar.gz|*.tgz) tar -cvf "${archive_name}" --use-compress-program="${_gzip_bin}" "${dir_to_archive}" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar -cvf "${archive_name}" --use-compress-program="${_bzip2_bin}" "${dir_to_archive}" ;;
(*.tar.xz|*.txz) tar -cvJf "${archive_name}" "${dir_to_archive}" ;;
(*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${dir_to_archive}" ;;
(*.tar) tar -cvf "${archive_name}" "${dir_to_archive}" ;;
(*.zip|*.jar) zip -r "${archive_name}" "${dir_to_archive}" ;;
(*.rar) rar a "${archive_name}" "${dir_to_archive}" ;;
(*.7z) 7za a "${archive_name}" "${dir_to_archive}" ;;
(*.tar.gz|*.tgz) tar -cvf "${archive_name}" --use-compress-program="${_gzip_bin}" "${=path_to_archive}" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar -cvf "${archive_name}" --use-compress-program="${_bzip2_bin}" "${=path_to_archive}" ;;
(*.tar.xz|*.txz) tar -cvf "${archive_name}" --use-compress-program="${_xz_bin}" "${=path_to_archive}" ;;
(*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${=path_to_archive}" ;;
(*.tar.zst|*.tzst) tar -cvf "${archive_name}" --use-compress-program="${_zstd_bin}" "${=path_to_archive}" ;;
(*.tar) tar -cvf "${archive_name}" "${=path_to_archive}" ;;
(*.zip|*.jar) zip -r "${archive_name}" "${=path_to_archive}" ;;
(*.rar) rar a "${archive_name}" "${=path_to_archive}" ;;
(*.7z) 7za a "${archive_name}" "${=path_to_archive}" ;;
(*.gz) print "\n.gz is only useful for single files, and does not capture permissions. Use .tar.gz" ;;
(*.bz2) print "\n.bzip2 is only useful for single files, and does not capture permissions. Use .tar.bz2" ;;
(*.xz) print "\n.xz is only useful for single files, and does not capture permissions. Use .tar.xz" ;;

View File

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

View File

@ -12,6 +12,7 @@ local success
local file_name
local file_path
local extract_dir
local _gzip_bin _bzip2_bin _xz_bin _zstd_bin
if (( $# == 0 )); then
cat >&2 <<EOF
@ -30,6 +31,31 @@ if [[ "$1" == "-r" || "$1" == "--remove" ]]; then
shift
fi
# here, we check for dropin/multi-threaded replacements
# this should eventually be moved to modules/archive/init.zsh
# as a global alias
if (( $+commands[unpigz] )); then
_gzip_bin='unpigz'
else
_gzip_bin='gunzip'
fi
if (( $+commands[pixz] )); then
_xz_bin='pixz -d'
else
_xz_bin='xz'
fi
if (( $+commands[lbunzip2] )); then
_bzip2_bin='lbunzip2'
elif (( $+commands[pbunzip2] )); then
_bzip2_bin='pbunzip2'
else
_bzip2_bin='bunzip2'
fi
_zstd_bin='zstd'
while (( $# > 0 )); do
if [[ ! -s "$1" ]]; then
print "$0: file not valid: $1" >&2
@ -42,15 +68,14 @@ while (( $# > 0 )); do
file_path="${1:A}"
extract_dir="${file_name:r}"
case "$1:l" in
(*.tar.gz|*.tgz) tar xvzf "$1" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;;
(*.tar.xz|*.txz) tar --xz --help &> /dev/null \
&& tar --xz -xvf "$1" \
|| xzcat "$1" | tar xvf - ;;
(*.tar.gz|*.tgz) tar -xvf "$1" --use-compress-program="${_gzip_bin}" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar -xvf "$1" --use-compress-program="${_bzip2_bin}" ;;
(*.tar.xz|*.txz) tar -xvf "$1" --use-compress-program="${_xz_bin}" ;;
(*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \
&& tar --lzma -xvf "$1" \
|| lzcat "$1" | tar xvf - ;;
(*.tar) tar xvf "$1" ;;
|| lzcat "$1" | tar -xvf - ;;
(*.tar.zst|*.tzst) tar -xvf "$1" --use-compress-program="${_zstd_bin}" ;;
(*.tar) tar -xvf "$1" ;;
(*.gz) gunzip "$1" ;;
(*.bz2) bunzip2 "$1" ;;
(*.xz) unxz "$1" ;;

View File

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

View File

@ -0,0 +1,13 @@
#compdef aws_switch_profile
#autoload
if [[ ! -f ~/.aws/credentials ]]; then
return 1
fi
local profiles
profiles=$(grep -E "^\[.+\]" ~/.aws/credentials | tr -d '[' | tr -d ']' )
_arguments "1:toggle:((
$profiles
))" && return 0

View File

@ -0,0 +1,33 @@
#
# Exposes information about the AWS_PROFILE environment via the $aws_info associative
# array.
#
# function aws-info {
local profile_format
local profile_formatted
local aws_prompt
local aws_region_prompt
unset aws_info
typeset -gA aws_info
if (( ${+AWS_SECRET_ACCESS_KEY} )); then
aws_prompt="${AWS_PROFILE}  "
elif (( ${+AWS_PROFILE} )); then
aws_prompt=$AWS_PROFILE
fi
if (( ${+AWS_DEFAULT_REGION} )) && [[ ${_aws_region} = "true" ]]; then
AWS_REGION=$(cut -d "-" -f 1 <<<$AWS_DEFAULT_REGION | cut -b 1)$(cut -d "-" -f 2 <<<$AWS_DEFAULT_REGION | cut -b 1)$(cut -d "-" -f 3 <<<$AWS_DEFAULT_REGION | cut -b 1)
aws_region_prompt=" $AWS_REGION"
fi
if (( ${+AWS_SECRET_ACCESS_KEY} )) || (( ${+AWS_DEFAULT_REGION} )); then
zstyle -s ':prezto:module:aws:info:profile' format 'profile_format'
zformat -f profile_formatted "$profile_format" "v:${aws_prompt:t}${aws_region_prompt}"
aws_info[profile]="$profile_formatted"
fi
# }

177
modules/aws/init.zsh Normal file
View File

@ -0,0 +1,177 @@
#
# Defines aws cli aliases/functions.
#
# Authors:
# Daniel Carrillo
#
# Get the output parameter
zstyle -s ':prezto:module:aws' output '_aws_output' || _aws_output='table'
zstyle -s ':prezto:module:aws' show_region '_aws_region' || _aws_region='false'
zstyle -s ':prezto:module:aws' profile '_aws_profile' || _aws_profile='default'
zstyle -s ':prezto:module:aws' sso '_aws_sso' || _aws_sso='false'
# Return if requirements are not found.
if (( ! $+commands[aws] )); then
return 1
fi
function _get_aws_profile {
if [[ -z "${AWS_PROFILE+1}" ]]; then
echo ${_aws_profile}
else
echo $AWS_PROFILE
fi
}
function aws_i {
local profile=$(_get_aws_profile)
aws ec2 describe-instances --profile $profile --output ${_aws_output} \
--query 'Reservations[].Instances[].[Tags[?Key==`Name`] | [0].Value, LaunchTime, State.Name,
InstanceType, VpcId, InstanceId, Placement.AvailabilityZone, PrivateIpAddress, PublicIpAddress]'
}
function aws_ebs {
local profile=$(_get_aws_profile)
aws ec2 describe-volumes --profile $profile --output ${_aws_output} \
--query 'Volumes[].[Tags[?Key==`Name`] | [0].Value, VolumeId, Attachments[0].InstanceId, Size, VolumeType, Iops, AvailabilityZone]'
}
function aws_elb {
local profile=$(_get_aws_profile)
aws elb describe-load-balancers --profile $profile --output ${_aws_output} \
--query "LoadBalancerDescriptions[*].{type:'elb',scheme:Scheme,dns:DNSName,vpc:VPCId,name:LoadBalancerName,subnets:Subnets[*] | join(',', @)}"
local profile=$(_get_aws_profile)
aws elbv2 describe-load-balancers --profile $profile --output ${_aws_output} \
--query "LoadBalancers[*].{type:Type,scheme:Scheme,dns:DNSName,vpc:VpcId,name:LoadBalancerName,subnets:AvailabilityZones[*].SubnetId | join(',', @)}"
}
function aws_userdata {
local profile=$(_get_aws_profile)
aws ec2 describe-instance-attribute --profile $profile --output text \
--attribute userData --instance-id $1 \
--query 'UserData.Value' | base64 -d
}
function aws_vpc {
local profile=$(_get_aws_profile)
aws ec2 describe-vpcs --profile $profile --output ${_aws_output} \
--query 'Vpcs[*].{id:VpcId,cidr:CidrBlock,tag:Tags[0].Value}'
}
function aws_subnets {
local profile=$(_get_aws_profile)
aws ec2 describe-subnets --profile $profile --output text \
--query 'Subnets[].[Tags[?Key==`Name`] | [0].Value, SubnetId, VpcId, CidrBlock]' \
| sort -k1 | column -t
}
function aws_ag {
local profile=$(_get_aws_profile)
aws autoscaling describe-auto-scaling-groups --profile $profile --output ${_aws_output} \
--query 'AutoScalingGroups[*].{name:AutoScalingGroupName,az:VPCZoneIdentifier}'
}
function aws_ami {
local profile=$(_get_aws_profile)
aws ec2 describe-images --profile $profile --output ${_aws_output} \
--owner self --query 'Images[*].{date:CreationDate,id:ImageId,name:Name,virt:VirtualizationType,st:State}'
}
function aws_kms_decrypt {
local profile=$(_get_aws_profile)
if [[ -z $1 ]]; then
echo "String is missing"
return 1
fi
aws kms --profile $profile decrypt --ciphertext-blob fileb://<(base64 -d <<<$1) \
--output text --query Plaintext | base64 -d
}
function aws_ssm_session {
local profile=$(_get_aws_profile)
if [[ -z $1 ]]; then
echo "Instance id is missing"
return 1
fi
aws ssm start-session --profile $profile --target $1
}
function aws_ssm_session_any {
local profile=$(_get_aws_profile)
local id
if [[ -z $1 ]]; then
echo "Instance name is missing"
return 1
fi
id=$(aws ec2 describe-instances --profile $profile --output text \
--filter "Name=tag:Name,Values=$1" "Name=instance-state-name,Values=running" \
--query 'Reservations[0].Instances[0].InstanceId')
if [[ $2 == "ssh" ]]; then
shift 2
AWS_PROFILE=$profile ssh $id $@
else
aws ssm start-session --profile $profile --target $id
fi
}
function aws_cf {
local profile=$(_get_aws_profile)
if ! type "jq" > /dev/null; then
echo "ERROR: this function needs jq to be installed"
return 1
fi
aws cloudfront list-distributions --profile $profile --output json \
--query "DistributionList.Items[*].{id:Id,domain:DomainName,status:Status,
origin:Origins.Items[].DomainName | join(' ', @), aliases:Aliases.Items | join(' ', @)}" \
| jq -r ".[] | [.id, .domain, .aliases, .status, .origin] | @csv" | tr -d '"' | column --separator="," --table
}
# ~/.ssh/config
#
# Host i-*
# ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
# User <your_user>
function ssh_aws_any {
host=$1
shift
extra_params=$@
aws_ssm_session_any $host ssh $extra_params
}
function aws_switch_profile {
local region
if [[ -z $1 ]]; then
echo "Profile can't be an empty string"
return 1
fi
echo "Activating profile $1..."
unset -m "AWS_*"
export AWS_PROFILE=$1
if [[ -f ~/.aws/credentials ]]; then #&& (( ! ${+AWS_DEFAULT_REGION} ))
region=$(aws configure get region)
if [[ ! -z $region ]]; then
export AWS_DEFAULT_REGION=$region
else
unset AWS_DEFAULT_REGION
fi
if [[ ${_aws_sso} == "true" ]]; then
eval $(aws-export-credentials --env-export)
fi
fi
}
function aws_deactivate_profile {
echo "Deactivating aws profile..."
unset -m "AWS_*"
}

View File

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

View File

@ -7,14 +7,16 @@
#
# Load command-not-found on Debian-based distributions.
if [[ -s '/etc/zsh_command_not_found' ]]; then
source '/etc/zsh_command_not_found'
if [[ -s /etc/zsh_command_not_found ]]; then
source /etc/zsh_command_not_found
# Load command-not-found on Arch Linux-based distributions.
elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then
source '/usr/share/doc/pkgfile/command-not-found.zsh'
# Load command-not-found on Mac OS X when homebrew tap is configured.
elif (( $+commands[brew] )) && brew command command-not-found-init > /dev/null 2>&1; then
eval "$(brew command-not-found-init)"
elif [[ -s /usr/share/doc/pkgfile/command-not-found.zsh ]]; then
source /usr/share/doc/pkgfile/command-not-found.zsh
# Load command-not-found on macOS when Homebrew tap is configured.
elif (( $+commands[brew] )) \
&& [[ -s ${hb_cnf_handler::="${HOMEBREW_REPOSITORY:-$commands[brew]:A:h:h}/Library/Taps/homebrew/homebrew-command-not-found/handler.sh"} ]]; then
source "$hb_cnf_handler"
unset hb_cnf_handler
# Return if requirements are not found.
else
return 1

View File

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

View File

@ -7,12 +7,23 @@
#
# Return if requirements are not found.
if [[ "$TERM" == 'dumb' ]]; then
if [[ $TERM == 'dumb' ]]; then
return 1
fi
# Add zsh-completions to $fpath.
fpath=("${0:h}/external/src" $fpath)
fpath=(${0:h}/external/src $fpath)
# Add completion for keg-only brewed curl on macOS when available.
if (( $+commands[brew] )); then
brew_prefix=${HOMEBREW_PREFIX:-${HOMEBREW_REPOSITORY:-$commands[brew]:A:h:h}}
# $HOMEBREW_PREFIX defaults to $HOMEBREW_REPOSITORY but is explicitly set to
# /usr/local when $HOMEBREW_REPOSITORY is /usr/local/Homebrew.
# https://github.com/Homebrew/brew/blob/2a850e02d8f2dedcad7164c2f4b95d340a7200bb/bin/brew#L66-L69
[[ $brew_prefix == '/usr/local/Homebrew' ]] && brew_prefix=$brew_prefix:h
fpath=($brew_prefix/opt/curl/share/zsh/site-functions(/N) $fpath)
unset brew_prefix
fi
#
# Options
@ -24,29 +35,49 @@ setopt PATH_DIRS # Perform path search even on command names with slas
setopt AUTO_MENU # Show completion menu on a successive tab press.
setopt AUTO_LIST # Automatically list choices on ambiguous completion.
setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit
setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit.
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
#
# Variables
#
# Standard style used by default for 'list-colors'
LS_COLORS=${LS_COLORS:-'di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'}
#
# Initialization
#
# Load and initialize the completion system ignoring insecure directories with a
# cache time of 20 hours, so it should almost always regenerate the first time a
# shell is opened each day.
autoload -Uz compinit
_comp_files=(${ZDOTDIR:-$HOME}/.zcompdump(Nm-20))
if (( $#_comp_files )); then
compinit -i -C
_comp_path="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump"
# #q expands globs in conditional expressions
if [[ $_comp_path(#qNmh-20) ]]; then
# -C (skip function check) implies -i (skip security check).
compinit -C -d "$_comp_path"
else
compinit -i
mkdir -p "$_comp_path:h"
compinit -i -d "$_comp_path"
# Keep $_comp_path younger than cache time even if it isn't regenerated.
touch "$_comp_path"
fi
unset _comp_files
unset _comp_path
#
# Styles
#
# Defaults.
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
# Use caching to make completion for commands such as dpkg and apt usable.
zstyle ':completion::complete:*' use-cache on
zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache"
zstyle ':completion::complete:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompcache"
# Case-insensitive (all), partial-word, and then substring completion.
if zstyle -t ':prezto:module:completion:*' case-sensitive; then
@ -66,7 +97,6 @@ zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f'
zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f'
zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f'
zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
zstyle ':completion:*' format ' %F{yellow}-- %d --%f'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' verbose yes
@ -87,7 +117,6 @@ zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
# Directories
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
@ -99,7 +128,7 @@ zstyle ':completion:*:history-words' remove-all-dups yes
zstyle ':completion:*:history-words' list false
zstyle ':completion:*:history-words' menu yes
# Environmental Variables
# Environment Variables
zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
# Populate hostname completion. But allow ignoring custom entries from static
@ -107,7 +136,7 @@ zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-va
zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores'
zstyle -e ':completion:*:hosts' hosts 'reply=(
${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
${=${=${=${${(f)"$(cat {/etc/ssh/ssh_,~/.ssh/}known_hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2> /dev/null))"}%%(\#${_etc_host_ignores:+|${(j:|:)~_etc_host_ignores}})*}
${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2> /dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
)'

View File

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

View File

@ -1,10 +1,8 @@
DNF
===
# DNF
Defines [dnf][1] aliases.
Aliases
-------
## Aliases
- `dnfc` removes package(s) and leaves.
- `dnfi` installs package(s).
@ -17,13 +15,11 @@ Aliases
- `dnfu` updates packages.
- `dnfU` upgrades packages.
Authors
-------
## Authors
*The authors of this module should be contacted via the [issue tracker][2].*
_The authors of this module should be contacted via the [issue tracker][2]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://fedoraproject.org/wiki/Features/DNF
[2]: https://github.com/sorin-ionescu/prezto/issues

View File

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

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

View File

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

View File

@ -91,6 +91,9 @@ function bindkey-all {
# Exposes information about the Zsh Line Editor via the $editor_info associative
# array.
function editor-info {
# Ensure that we're going to set the editor-info for prompts that
# are prezto managed and/or compatible.
if zstyle -t ':prezto:module:prompt' managed; then
# Clean up previous $editor_info.
unset editor_info
typeset -gA editor_info
@ -113,6 +116,7 @@ function editor-info {
unset REPLY
zle zle-reset-prompt
fi
}
zle -N editor-info
@ -269,9 +273,11 @@ bindkey -d
# Emacs Key Bindings
#
for key in "$key_info[Escape]"{B,b} "${(s: :)key_info[ControlLeft]}"
for key in "$key_info[Escape]"{B,b} "${(s: :)key_info[ControlLeft]}" \
"${key_info[Escape]}${key_info[Left]}"
bindkey -M emacs "$key" emacs-backward-word
for key in "$key_info[Escape]"{F,f} "${(s: :)key_info[ControlRight]}"
for key in "$key_info[Escape]"{F,f} "${(s: :)key_info[ControlRight]}" \
"${key_info[Escape]}${key_info[Right]}"
bindkey -M emacs "$key" emacs-forward-word
# Kill to the beginning of the line.
@ -312,6 +318,7 @@ bindkey -M vicmd "$key_info[Control]X$key_info[Control]E" edit-command-line
# Undo/Redo
bindkey -M vicmd "u" undo
bindkey -M viins "$key_info[Control]_" undo
bindkey -M vicmd "$key_info[Control]R" redo
if (( $+widgets[history-incremental-pattern-search-backward] )); then

View File

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

View File

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

View File

@ -14,16 +14,14 @@
# paste had a regression. Additionally, 5.2 added bracketed-paste-url-magic
# which is generally better than url-quote-magic so we load that when possible.
autoload -Uz is-at-least
if [[ ${ZSH_VERSION} != 5.1.1 ]]; then
if [[ ${ZSH_VERSION} != 5.1.1 && ${TERM} != "dumb" ]]; then
if is-at-least 5.2; then
autoload -Uz bracketed-paste-url-magic
zle -N bracketed-paste bracketed-paste-url-magic
else
if is-at-least 5.1; then
elif is-at-least 5.1; then
autoload -Uz bracketed-paste-magic
zle -N bracketed-paste bracketed-paste-magic
fi
fi
autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic
fi
@ -38,6 +36,9 @@ setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell.
setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed.
# Allow mapping Ctrl+S and Ctrl+Q shortcuts
[[ -r ${TTY:-} && -w ${TTY:-} && $+commands[stty] == 1 ]] && stty -ixon <$TTY >$TTY
#
# Jobs
#

View File

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

View File

@ -19,8 +19,10 @@ fi
# Initialization
#
cache_file="${TMPDIR:-/tmp}/prezto-fasd-cache.$UID.zsh"
if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file" ]]; then
cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/fasd-cache.zsh"
if [[ "${commands[fasd]}" -nt "$cache_file" \
|| "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \
|| ! -s "$cache_file" ]]; then
# Set the base init arguments.
init_args=(zsh-hook)
@ -29,6 +31,7 @@ if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file" ]]; then
init_args+=(zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install)
fi
mkdir -p "$cache_file:h"
# Cache init code.
fasd --init "$init_args[@]" >! "$cache_file" 2> /dev/null
fi

View File

@ -1,39 +1,45 @@
Git
===
# Git
Enhances the [Git][1] distributed version control system by providing aliases,
functions and by exposing repository status information to prompts.
Git **1.7.2** is the [minimum required version][7].
This module must be loaded _before_ the [_`completion`_][13] module so that the
provided completion definitions are loaded automatically by _`completion`_
module.
Settings
--------
**Note:** Git **2.11** is the minimum required version for better
[git-rev-list][7] and [git-submodule][14] support.
## Settings
### Log
The format of the [git-log][8] output is configurable via the following style,
where context is *brief*, *oneline*, and *medium*, which will be passed to the
`--pretty=format:` switch.
To configure the format of the [git-log][8] output, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'<context>'` with `'brief'`,
`'oneline'`, and `'medium'`. This will be passed to the `--pretty=format:`
switch.
```sh
zstyle ':prezto:module:git:log:context' format ''
zstyle ':prezto:module:git:log:context' format '<context>'
```
### Status
Retrieving the status of a repository with submodules can take a long time.
Submodules may be ignored when they are *dirty*, *untracked*, *all*, or *none*.
Retrieving the status of a repository with [git-submodule][9] can take a long
time. To configure the submodules to ignore, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'<state>'` with `'dirty'`,
`'untracked'`, `'all'`, or `'none'`.
```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`.
Aliases
-------
## Aliases
Aliases are enabled by default. You can disable them with:
Aliases are enabled by default. To disable them, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh
zstyle ':prezto:module:git:alias' skip 'yes'
@ -43,7 +49,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `g` is short for `git`.
### Branch
### Branch (b)
- `gb` lists, creates, renames, and deletes branches.
- `gbc` creates a new branch.
@ -53,37 +59,40 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gbR` renames a branch even if the new branch name already exists. (also
`gbM`)
- `gbs` lists branches and their commits with ancestry graphs.
- `gbS` lists local and remote branches and their commits with ancestry
graphs.
- `gbS` lists local and remote branches and their commits with ancestry graphs.
- `gbV` lists branches with more verbose information about their commits.
- `gbx` deletes a branch. (also `gbd`)
- `gbX` deletes a branch irrespective of its merged status. (also `gbD`)
### Commit
### Commit (c)
- `gc` records changes to the repository.
- `gca` stages all modified and deleted files.
- `gcm` records changes to the repository with the given message.
- `gcS` records changes to the repository. (Signed)
- `gcSa` stages all modified and deleted files. (Signed)
- `gcSm` records changes to the repository with the given message. (Signed) - `gco` checks out a branch or paths to work tree.
- `gcam` stages all modified and deleted files, and records changes to the repository with the given message.
- `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*.
- `gcSf` amends the tip of the current branch using the same log message as *HEAD*. (Signed)
- `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.
- `gcSF` amends the tip of the current branch. (Signed)
- `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 various types of objects.
- `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.
### Conflict
### Conflict (C)
- `gCl` lists unmerged files.
- `gCa` adds unmerged file contents to the index.
@ -93,7 +102,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gCt` checks out their changes for unmerged paths.
- `gCT` checks out their changes for all unmerged paths.
### Data
### Data (d)
- `gd` displays information about files in the index and the work tree.
- `gdc` lists cached files.
@ -103,7 +112,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gdk` lists killed files.
- `gdi` lists ignored files.
### Fetch
### Fetch (f)
- `gf` downloads objects and references from another repository.
- `gfa` downloads objects and references from all remote repositories.
@ -112,11 +121,11 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gfm` fetches from and merges with another repository or local branch.
- `gfr` fetches from and rebases on another repository or local branch.
### Flow
### Flow (F)
- `gFi` is short for `git flow init`
#### Feature
#### Feature (Ff)
- `gFf` is short for `git flow feature`
- `gFfl` is short for `git flow feature list`
@ -130,7 +139,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gFfm` is short for `git flow feature pull`
- `gFfx` is short for `git flow feature delete`
#### Bugfix
#### Bugfix (Fb)
- `gFb` is short for `git flow bugfix`
- `gFbl` is short for `git flow bugfix list`
@ -144,7 +153,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gFbm` is short for `git flow bugfix pull`
- `gFbx` is short for `git flow bugfix delete`
#### Release
#### Release (Fl)
- `gFl` is short for `git flow release`
- `gFll` is short for `git flow release list`
@ -158,7 +167,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gFlm` is short for `git flow release pull`
- `gFlx` is short for `git flow release delete`
#### Hotfix
#### Hotfix (Fh)
- `gFh` is short for `git flow hotfix`
- `gFhl` is short for `git flow hotfix list`
@ -172,7 +181,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gFhm` is short for `git flow hotfix pull`
- `gFhx` is short for `git flow hotfix delete`
#### Support
#### Support (Fs)
- `gFs` is short for `git flow support`
- `gFsl` is short for `git flow support list`
@ -186,7 +195,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gFsm` is short for `git flow support pull`
- `gFsx` is short for `git flow support delete`
### Grep
### Grep (g)
- `gg` displays lines matching a pattern.
- `ggi` displays lines matching a pattern ignoring case.
@ -195,7 +204,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `ggv` displays lines not matching a pattern.
- `ggw` displays lines matching a pattern at word boundary.
### Index
### Index (i)
- `gia` adds file contents to the index.
- `giA` adds file contents to the index interactively.
@ -209,7 +218,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gix` removes files/directories from the index (recursively).
- `giX` removes files/directories from the index (recursively and forced).
### Log
### Log (l)
- `gl` displays the log.
- `gls` displays the stats log.
@ -218,8 +227,9 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `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
### Merge (m)
- `gm` joins two or more development histories together.
- `gmC` joins two or more development histories together but does not commit.
@ -228,26 +238,29 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gma` aborts the conflict resolution, and reconstructs the pre-merge state.
- `gmt` runs the merge conflict resolution tools to resolve conflicts.
### Push
### Push (p)
- `gp` updates remote refs along with associated objects.
- `gpf` forcefully 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.
- `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
### Rebase (r)
- `gr` forward-ports local commits to the updated upstream head.
- `gr` forward-ports local commits to the updated upstream _HEAD_.
- `gra` aborts the rebase.
- `grc` continues the rebase after merge conflicts are resolved.
- `gri` makes a list of commits to be rebased and opens the editor.
- `grs` skips the current patch.
### Remote
### Remote (R)
- `gR` manages tracked repositories.
- `gRl` lists remote names and their URLs.
@ -259,7 +272,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gRs` displays information about a given remote.
- `gRb` opens a remote on [GitHub][3] in the default browser.
### Stash
### Stash (s)
- `gs` stashes the changes of the dirty working directory.
- `gsa` applies the changes recorded in a stash to the working directory.
@ -274,7 +287,7 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gsS` stashes the changes of the dirty working directory interactively.
- `gsw` stashes the changes of the dirty working directory retaining the index.
### Submodule
### Submodule (S)
- `gS` initializes, updates, or inspects submodules.
- `gSa` adds given a repository as a submodule.
@ -284,11 +297,18 @@ zstyle ':prezto:module:git:alias' skip 'yes'
- `gSl` lists the commits of all submodules.
- `gSm` moves a submodule.
- `gSs` synchronizes submodules' remote URL to the value specified in
.gitmodules.
_.gitmodules_.
- `gSu` fetches and merges the latest changes for all submodule.
- `gSx` removes a submodule.
### Working directory
### Tag (t)
- `gt` lists tags or creates tag.
- `gtl` lists tags matching pattern.
- `gts` creates a signed tag.
- `gtv` validate a signed tag.
### Working directory (w)
- `gws` displays working-tree status in the short format.
- `gwS` displays working-tree status.
@ -307,9 +327,10 @@ zstyle ':prezto:module:git:alias' skip 'yes'
The following aliases may shadow system commands:
- `gb` shadows the [GB][10].
- `gm` shadows the [GraphicsMagick image processor][11].
- `gpt` shadows the [GUID partition table maintenance utility][4].
- `gs` shadows the [Ghostscript][5].
- `gb` shadows the [GB][9].
- `gs` shadows the [Ghostscript interpreter and previewer][5].
If you frequently use the above commands, you may wish to remove said aliases
from this module or to disable them at the bottom of the zshrc with `unalias`.
@ -317,14 +338,13 @@ from this module or to disable them at the bottom of the zshrc with `unalias`.
You can temporarily bypass an alias by prefixing it with a backward slash:
`\gpt`.
Functions
---------
## Functions
- `git-branch-current` displays the current branch.
- `git-commit-lost` lists lost commits.
- `git-dir` displays the path to the Git directory.
- `git-hub-browse` opens the [GitHub][3] repository in the default browser.
- `git-hub-shorten-url` shortens [GitHub URLs][10].
- `git-hub-shorten-url` shortens [GitHub URLs][12].
- `git-info` exposes repository information via the `$git_info` associative
array.
- `git-root` displays the path to the working tree root.
@ -334,8 +354,7 @@ Functions
- `git-submodule-move` moves a submodule.
- `git-submodule-remove` removes a submodule.
Theming
-------
## Theming
To display information about the current repository in a prompt, define the
following styles in the `prompt_name_setup` function, where the syntax for
@ -347,26 +366,26 @@ zstyle ':prezto:module:git:info:context:subcontext' format 'string'
### Main Contexts
| Name | Format Code | Description
| --------- | :---------: | ---------------------------------------------------
| action | %s | Special action name
| ahead | %A | Commits ahead of remote count
| behind | %B | Commits behind of remote count
| branch | %b | Branch name
| commit | %c | Commit hash
| position | %p | Commits from the nearest tag count
| remote | %R | Remote name
| stashed | %S | Stashed states count
| Name | Format Code | Description |
| -------- | :---------: | ---------------------------------- |
| action | %s | Special action name |
| ahead | %A | Commits ahead of remote count |
| behind | %B | Commits behind of remote count |
| branch | %b | Branch name |
| commit | %c | Commit hash |
| position | %p | Commits from the nearest tag count |
| remote | %R | Remote name |
| stashed | %S | Stashed states count |
### Concise Contexts
| Name | Format Code | Description
| --------- | :---------: | ---------------------------------------------------
| clean | %C | Clean state
| dirty | %D | Dirty files count
| indexed | %i | Indexed files count
| unindexed | %I | Unindexed files count
| untracked | %u | Untracked files count
| Name | Format Code | Description |
| --------- | :---------: | --------------------- |
| clean | %C | Clean state |
| dirty | %D | Dirty files count |
| indexed | %i | Indexed files count |
| unindexed | %I | Unindexed files count |
| untracked | %u | Untracked files count |
The following contexts must be enabled with the following zstyle:
@ -376,31 +395,31 @@ zstyle ':prezto:module:git:info' verbose 'yes'
### Verbose Contexts
| Name | Format Code | Description
| --------- | :---------: | ---------------------------------------------------
| added | %a | Added files count
| clean | %C | Clean state
| deleted | %d | Deleted files count
| dirty | %D | Dirty files count
| modified | %m | Modified files count
| renamed | %r | Renamed files count
| unmerged | %U | Unmerged files count
| untracked | %u | Untracked files count
| Name | Format Code | Description |
| --------- | :---------: | --------------------- |
| added | %a | Added files count |
| clean | %C | Clean state |
| deleted | %d | Deleted files count |
| dirty | %D | Dirty files count |
| modified | %m | Modified files count |
| renamed | %r | Renamed files count |
| unmerged | %U | Unmerged files count |
| untracked | %u | Untracked files count |
### Special Action Contexts
| Name | Format | Description
| -------------------- | :---------: | -----------------------------------------
| apply | value | Applying patches
| bisect | value | Binary searching for changes
| cherry-pick | value | Cherry picking
| cherry-pick-sequence | value | Cherry picking sequence
| merge | value | Merging
| rebase | value | Rebasing
| rebase-interactive | value | Rebasing interactively
| rebase-merge | value | Rebasing merge
| revert | value | Reverting
| revert-sequence | value | Reverting sequence
| Name | Format | Description |
| -------------------- | :----: | ---------------------------- |
| apply | value | Applying patches |
| bisect | value | Binary searching for changes |
| cherry-pick | value | Cherry picking |
| cherry-pick-sequence | value | Cherry picking sequence |
| merge | value | Merging |
| rebase | value | Rebasing |
| rebase-interactive | value | Rebasing interactively |
| rebase-merge | value | Rebasing merge |
| revert | value | Reverting |
| revert-sequence | value | Reverting sequence |
First, format the repository state attributes. For example, to format the branch
and remote names, define the following styles.
@ -422,21 +441,24 @@ Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to
`$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook
function.
Authors
-------
## Authors
*The authors of this module should be contacted via the [issue tracker][6].*
_The authors of this module should be contacted via the [issue tracker][6]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Colin Hebert](https://github.com/ColinHebert)
[1]: http://www.git-scm.com
[2]: https://github.com/defunkt/hub
[1]: https://www.git-scm.com
[2]: https://hub.github.com
[3]: https://www.github.com
[4]: http://www.manpagez.com/man/8/gpt/
[5]: http://linux.die.net/man/1/gs
[4]: https://www.manpagez.com/man/8/gpt/
[5]: https://www.manpagez.com/man/1/gs/
[6]: https://github.com/sorin-ionescu/prezto/issues
[7]: https://github.com/sorin-ionescu/prezto/issues/219
[8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html
[9]: https://getgb.io/
[10]: https://github.com/blog/985-git-io-github-url-shortener
[8]: https://git-scm.com/docs/git-log
[9]: https://git-scm.com/docs/git-submodule
[10]: https://getgb.io/
[11]: https://www.manpagez.com/man/1/gm/
[12]: https://github.blog/2011-11-10-git-io-github-url-shortener
[13]: ../completion#readme
[14]: https://github.com/sorin-ionescu/prezto/pull/1929

View File

@ -8,7 +8,6 @@
#
# Settings
#
#
# Log
zstyle -s ':prezto:module:git:log:medium' format '_git_log_medium_format' \
@ -26,7 +25,7 @@ zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_subm
# Aliases
#
if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
if ! zstyle -t ':prezto:module:git:alias' skip; then
# Git
alias g='git'
@ -51,24 +50,27 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
# Commit (c)
alias gc='git commit --verbose'
alias gcS='git commit --verbose --gpg-sign'
alias gca='git commit --verbose --all'
alias gcaS='git commit --verbose --all --gpg-sign'
alias gcm='git commit --message'
alias gcS='git commit -S --verbose'
alias gcSa='git commit -S --verbose --all'
alias gcSm='git commit -S --message'
alias gcmS='git commit --message --gpg-sign'
alias gcam='git commit --all --message'
alias gco='git checkout'
alias gcO='git checkout --patch'
alias gcf='git commit --amend --reuse-message HEAD'
alias gcSf='git commit -S --amend --reuse-message HEAD'
alias gcfS='git commit --amend --reuse-message HEAD --gpg-sign'
alias gcF='git commit --verbose --amend'
alias gcSF='git commit -S --verbose --amend'
alias gcFS='git commit --verbose --amend --gpg-sign'
alias gcp='git cherry-pick --ff'
alias gcP='git cherry-pick --no-commit'
alias gcr='git revert'
alias gcR='git reset "HEAD^"'
alias gcs='git show'
alias gcsS='git show --pretty=short --show-signature'
alias gcl='git-commit-lost'
alias gcy='git cherry --verbose --abbrev'
alias gcY='git cherry --verbose'
# Conflict (C)
alias gCl='git --no-pager diff --name-only --diff-filter=U'
@ -94,7 +96,9 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
alias gfc='git clone'
alias gfcr='git clone --recurse-submodules'
alias gfm='git pull'
alias gfma='git pull --autostash'
alias gfr='git pull --rebase'
alias gfra='git pull --rebase --autostash'
# Flow (F)
alias gFi='git flow init'
@ -178,16 +182,17 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
alias gir='git reset'
alias giR='git reset --patch'
alias gix='git rm -r --cached'
alias giX='git rm -rf --cached'
alias giX='git rm -r --force --cached'
# Log (l)
alias gl='git log --topo-order --pretty=format:"${_git_log_medium_format}"'
alias gls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"'
alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"${_git_log_medium_format}"'
alias glo='git log --topo-order --pretty=format:"${_git_log_oneline_format}"'
alias glg='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_format}"'
alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"'
alias gl='git log --topo-order --pretty=format:"$_git_log_medium_format"'
alias gls='git log --topo-order --stat --pretty=format:"$_git_log_medium_format"'
alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"$_git_log_medium_format"'
alias glo='git log --topo-order --pretty=format:"$_git_log_oneline_format"'
alias glg='git log --topo-order --graph --pretty=format:"$_git_log_oneline_format"'
alias glb='git log --topo-order --pretty=format:"$_git_log_brief_format"'
alias glc='git shortlog --summary --numbered'
alias glS='git log --show-signature'
# Merge (m)
alias gm='git merge'
@ -247,18 +252,24 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then
alias gSl='git submodule status'
alias gSm='git-submodule-move'
alias gSs='git submodule sync'
alias gSu='git submodule foreach git pull origin master'
alias gSu='git submodule update --remote --recursive'
alias gSx='git-submodule-remove'
# Tag (t)
alias gt='git tag'
alias gtl='git tag --list'
alias gts='git tag --sign'
alias gtv='git verify-tag'
# Working Copy (w)
alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short'
alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}'
alias gws='git status --ignore-submodules=$_git_status_ignore_submodules --short'
alias gwS='git status --ignore-submodules=$_git_status_ignore_submodules'
alias gwd='git diff --no-ext-diff'
alias gwD='git diff --no-ext-diff --word-diff'
alias gwr='git reset --soft'
alias gwR='git reset --hard'
alias gwc='git clean -n'
alias gwC='git clean -f'
alias gwc='git clean --dry-run'
alias gwC='git clean --force'
alias gwx='git rm -r'
alias gwX='git rm -rf'
alias gwX='git rm -r --force'
fi

View File

@ -8,7 +8,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
return 1
fi
@ -21,7 +21,7 @@ _arguments -C -s -S \
case "$state" in
(remote)
remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2))
remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2))
_describe -t branch 'remotes' remotes && ret=0
;;
@ -29,7 +29,7 @@ case "$state" in
remote="$words[(($CURRENT - 1))]"
branches_or_tags=($(
git ls-remote --heads --tags "$remote" 2> /dev/null | cut -f2
command git ls-remote --heads --tags "$remote" 2> /dev/null | cut -f2
))
branches=(HEAD ${${(M)branches_or_tags[@]##refs/heads/?##}##refs/heads/})
@ -39,7 +39,7 @@ case "$state" in
_describe -t tag 'tags' tags && ret=0
;;
(file)
files=(${(0)"$(_call_program files git ls-files -z --exclude-standard 2> /dev/null)"})
files=(${(0)"$(_call_program files command git ls-files -z --exclude-standard 2> /dev/null)"})
_wanted file expl 'file' _multi_parts - / files && ret=0
;;
esac

View File

@ -8,7 +8,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
return 1
fi

View File

@ -8,7 +8,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
return 1
fi
@ -25,7 +25,7 @@ case "$state" in
while IFS=$'\n' read submodule; do
submodules+=("$submodule")
done < <(
git config --file "$(git-root)/.gitmodules" --list \
command git config --file "$(git-root)/.gitmodules" --list \
| grep '.path=' \
| cut -d= -f2-
)

View File

@ -8,7 +8,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
return 1
fi
@ -18,7 +18,7 @@ local submodule
while IFS=$'\n' read submodule; do
submodules+=("$submodule")
done < <(
git config --file "$(git-root)/.gitmodules" --list \
command git config --file "$(git-root)/.gitmodules" --list \
| grep '.path=' \
| cut -d= -f2-
)

View File

@ -7,12 +7,12 @@
# function git-branch-current {
if ! git rev-parse 2> /dev/null; then
if ! command git rev-parse 2> /dev/null; then
print "$0: not a repository: $PWD" >&2
return 1
fi
local ref="$(git symbolic-ref HEAD 2> /dev/null)"
local ref="$(command git symbolic-ref HEAD 2> /dev/null)"
if [[ -n "$ref" ]]; then
print "${ref#refs/heads/}"

View File

@ -7,15 +7,15 @@
# function git-commit-lost {
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
git fsck 2> /dev/null \
command git fsck 2> /dev/null \
| grep "^dangling commit" \
| awk '{print $3}' \
| git log \
| command git log \
--date-order \
--no-walk \
--stdin \

View File

@ -7,7 +7,7 @@
# function git-dir {
local git_dir="${$(git rev-parse --git-dir):A}"
local git_dir="${$(command git rev-parse --git-dir):A}"
if [[ -n "$git_dir" ]]; then
print "$git_dir"

View File

@ -7,7 +7,7 @@
# function git-hub-browse {
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
@ -15,7 +15,7 @@ fi
local remotes remote references reference file url
remote="${1:-origin}"
remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2))
remotes=($(command git remote show))
if (( $remotes[(i)$remote] == $#remotes + 1 )); then
print "$0: remote not found: $remote" >&2
@ -23,14 +23,14 @@ if (( $remotes[(i)$remote] == $#remotes + 1 )); then
fi
url=$(
git config --get "remote.${remote}.url" \
| sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p"
command git remote get-url "$remote" \
| sed -En "s#(git@|https?://)(github.com)(:|/)(.+)/(.+)\.git#https://\2/\4/\5#p"
)
reference="${${2:-$(git-branch-current)}:-HEAD}"
references=(
HEAD
${$(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
@ -39,15 +39,15 @@ if (( $references[(i)$reference] == $#references + 1 )); then
fi
if [[ "$reference" == 'HEAD' ]]; then
reference="$(git rev-parse HEAD 2> /dev/null)"
reference="$(command git rev-parse HEAD 2> /dev/null)"
fi
file="$3"
if [[ -n "$url" ]]; then
url="${url}/tree/${reference}/${file}"
url="$url/tree/$reference/$file"
if (( $+commands[$BROWSER] )); then
if [[ -n "$BROWSER" ]]; then
"$BROWSER" "$url"
return 0
else

View File

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

View File

@ -22,20 +22,22 @@ function _git-action {
local revert_sequence_formatted
for action_dir in \
"${git_dir}/rebase-apply" \
"${git_dir}/rebase" \
"${git_dir}/../.dotest"
"$git_dir/rebase-apply" \
"$git_dir/rebase" \
"$git_dir/../.dotest"
do
if [[ -d "$action_dir" ]] ; then
zstyle -s ':prezto:module:git:info:action:apply' format 'apply_formatted' || apply_formatted='apply'
zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' || rebase_formatted='rebase'
zstyle -s ':prezto:module:git:info:action:apply' format 'apply_formatted' \
|| apply_formatted='apply'
zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' \
|| rebase_formatted='rebase'
if [[ -f "${action_dir}/rebasing" ]] ; then
if [[ -f "$action_dir/rebasing" ]] ; then
print "$rebase_formatted"
elif [[ -f "${action_dir}/applying" ]] ; then
elif [[ -f "$action_dir/applying" ]] ; then
print "$apply_formatted"
else
print "${rebase_formatted}/${apply_formatted}"
print "$rebase_formatted/$apply_formatted"
fi
return 0
@ -43,59 +45,67 @@ function _git-action {
done
for action_dir in \
"${git_dir}/rebase-merge/interactive" \
"${git_dir}/.dotest-merge/interactive"
"$git_dir/rebase-merge/interactive" \
"$git_dir/.dotest-merge/interactive"
do
if [[ -f "$action_dir" ]]; then
zstyle -s ':prezto:module:git:info:action:rebase-interactive' format 'rebase_interactive_formatted' || rebase_interactive_formatted='rebase-interactive'
zstyle -s ':prezto:module:git:info:action:rebase-interactive' format 'rebase_interactive_formatted' \
|| rebase_interactive_formatted='rebase-interactive'
print "$rebase_interactive_formatted"
return 0
fi
done
for action_dir in \
"${git_dir}/rebase-merge" \
"${git_dir}/.dotest-merge"
"$git_dir/rebase-merge" \
"$git_dir/.dotest-merge"
do
if [[ -d "$action_dir" ]]; then
zstyle -s ':prezto:module:git:info:action:rebase-merge' format 'rebase_merge_formatted' || rebase_merge_formatted='rebase-merge'
zstyle -s ':prezto:module:git:info:action:rebase-merge' format 'rebase_merge_formatted' \
|| rebase_merge_formatted='rebase-merge'
print "$rebase_merge_formatted"
return 0
fi
done
if [[ -f "${git_dir}/MERGE_HEAD" ]]; then
zstyle -s ':prezto:module:git:info:action:merge' format 'merge_formatted' || merge_formatted='merge'
if [[ -f "$git_dir/MERGE_HEAD" ]]; then
zstyle -s ':prezto:module:git:info:action:merge' format 'merge_formatted' \
|| merge_formatted='merge'
print "$merge_formatted"
return 0
fi
if [[ -f "${git_dir}/CHERRY_PICK_HEAD" ]]; then
if [[ -d "${git_dir}/sequencer" ]] ; then
zstyle -s ':prezto:module:git:info:action:cherry-pick-sequence' format 'cherry_pick_sequence_formatted' || cherry_pick_sequence_formatted='cherry-pick-sequence'
if [[ -f "$git_dir/CHERRY_PICK_HEAD" ]]; then
if [[ -d "$git_dir/sequencer" ]] ; then
zstyle -s ':prezto:module:git:info:action:cherry-pick-sequence' format 'cherry_pick_sequence_formatted' \
|| cherry_pick_sequence_formatted='cherry-pick-sequence'
print "$cherry_pick_sequence_formatted"
else
zstyle -s ':prezto:module:git:info:action:cherry-pick' format 'cherry_pick_formatted' || cherry_pick_formatted='cherry-pick'
zstyle -s ':prezto:module:git:info:action:cherry-pick' format 'cherry_pick_formatted' \
|| cherry_pick_formatted='cherry-pick'
print "$cherry_pick_formatted"
fi
return 0
fi
if [[ -f "${git_dir}/REVERT_HEAD" ]]; then
if [[ -d "${git_dir}/sequencer" ]] ; then
zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' || revert_sequence_formatted='revert-sequence'
if [[ -f "$git_dir/REVERT_HEAD" ]]; then
if [[ -d "$git_dir/sequencer" ]] ; then
zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' \
|| revert_sequence_formatted='revert-sequence'
print "$revert_sequence_formatted"
else
zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' || revert_formatted='revert'
zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' \
|| revert_formatted='revert'
print "$revert_formatted"
fi
return 0
fi
if [[ -f "${git_dir}/BISECT_LOG" ]]; then
zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect'
if [[ -f "$git_dir/BISECT_LOG" ]]; then
zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' \
|| bisect_formatted='bisect'
print "$bisect_formatted"
return 0
fi
@ -178,15 +188,15 @@ function git-info {
typeset -gA git_info
# Return if not inside a Git repository work tree.
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
return 1
fi
if (( $# > 0 )); then
if [[ "$1" == [Oo][Nn] ]]; then
git config --bool prompt.showinfo true
command git config --bool prompt.showinfo true
elif [[ "$1" == [Oo][Ff][Ff] ]]; then
git config --bool prompt.showinfo false
command git config --bool prompt.showinfo false
else
print "usage: $0 [ on | off ]" >&2
fi
@ -194,7 +204,7 @@ function git-info {
fi
# Return if git-info is disabled.
if ! is-true "${$(git config --bool prompt.showinfo):-true}"; then
if ! is-true "${$(command git config --bool prompt.showinfo):-true}"; then
return 1
fi
@ -204,7 +214,7 @@ function git-info {
# Format commit.
zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
if [[ -n "$commit_format" ]]; then
commit="$(git rev-parse HEAD 2> /dev/null)"
commit="$(command git rev-parse HEAD 2> /dev/null)"
if [[ -n "$commit" ]]; then
zformat -f commit_formatted "$commit_format" "c:$commit"
fi
@ -212,12 +222,19 @@ function git-info {
# Format stashed.
zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format'
if [[ -n "$stashed_format" && -f "$(git-dir)/refs/stash" ]]; then
stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
if [[ -n "$stashed" ]]; then
if [[ -n "$stashed_format" ]]; then
commondir=""
if [[ -f "$(git-dir)/commondir" ]]; then
commondir="$(<$(git-dir)/commondir)"
[[ "$commondir" =~ ^/ ]] || commondir="$(git-dir)/$commondir"
fi
if [[ -f "$(git-dir)/refs/stash" || ( -n "$commondir" && -f "$commondir/refs/stash" ) ]]; then
stashed=${#${(f)"$(command git stash list 2> /dev/null)"}}
if (( $stashed > 0 )); then
zformat -f stashed_formatted "$stashed_format" "S:$stashed"
fi
fi
fi
# Format action.
zstyle -s ':prezto:module:git:info:action' format 'action_format'
@ -229,7 +246,7 @@ function git-info {
fi
# Get the branch.
branch="${$(git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
branch="${$(command git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
# Format branch.
zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
@ -240,7 +257,7 @@ function git-info {
# Format position.
zstyle -s ':prezto:module:git:info:position' format 'position_format'
if [[ -z "$branch" && -n "$position_format" ]]; then
position="$(git describe --contains --all HEAD 2> /dev/null)"
position="$(command git describe --contains --all HEAD 2> /dev/null)"
if [[ -n "$position" ]]; then
zformat -f position_formatted "$position_format" "p:$position"
fi
@ -250,7 +267,7 @@ function git-info {
zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
if [[ -n "$branch" && -n "$remote_format" ]]; then
# Gets the remote name.
remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
remote_cmd='command git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}"
if [[ -n "$remote" ]]; then
zformat -f remote_formatted "$remote_format" "R:$remote"
@ -261,14 +278,14 @@ function git-info {
zstyle -s ':prezto:module:git:info:behind' format 'behind_format'
if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then
# Gets the commit difference counts between local and remote.
ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}'
ahead_and_behind_cmd='command git rev-list --count --left-right HEAD...@{upstream}'
# Get ahead and behind counts.
ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
# Format ahead.
if [[ -n "$ahead_format" ]]; then
ahead="$ahead_and_behind[(w)1]"
ahead="$ahead_and_behind[(pws:\t:)1]"
if (( ahead > 0 )); then
zformat -f ahead_formatted "$ahead_format" "A:$ahead"
fi
@ -276,7 +293,7 @@ function git-info {
# Format behind.
if [[ -n "$behind_format" ]]; then
behind="$ahead_and_behind[(w)2]"
behind="$ahead_and_behind[(pws:\t:)2]"
if (( behind > 0 )); then
zformat -f behind_formatted "$behind_format" "B:$behind"
fi
@ -290,7 +307,7 @@ function git-info {
if [[ -n "$indexed_format" ]]; then
((
indexed+=$(
git diff-index \
command git diff-index \
--no-ext-diff \
--name-only \
--cached \
@ -310,7 +327,7 @@ function git-info {
if [[ -n "$unindexed_format" ]]; then
((
unindexed+=$(
git diff-files \
command git diff-files \
--no-ext-diff \
--name-only \
--ignore-submodules=${ignore_submodules:-none} \
@ -328,7 +345,7 @@ function git-info {
if [[ -n "$untracked_format" ]]; then
((
untracked+=$(
git ls-files \
command git ls-files \
--other \
--exclude-standard \
2> /dev/null \
@ -343,7 +360,7 @@ function git-info {
(( dirty = indexed + unindexed + untracked ))
else
# Use porcelain status for easy parsing.
status_cmd="git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
status_cmd="command git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
# Get current status.
while IFS=$'\n' read line; do
@ -400,6 +417,11 @@ function git-info {
if (( dirty > 0 )); then
zstyle -s ':prezto:module:git:info:dirty' format 'dirty_format'
zformat -f dirty_formatted "$dirty_format" "D:$dirty"
# Overwrite branch format to use dirty-branch format
zstyle -s ':prezto:module:git:info:dirty-branch' format 'branch_format'
if [[ -n "$branch" && -n "$branch_format" ]]; then
zformat -f branch_formatted "$branch_format" "b:$branch"
fi
else
zstyle -s ':prezto:module:git:info:clean' format 'clean_formatted'
fi

View File

@ -7,7 +7,7 @@
# function git-root {
local root="$(git rev-parse --show-toplevel 2> /dev/null)"
local root="$(command git rev-parse --show-toplevel 2> /dev/null)"
if [[ -n "$root" ]]; then
print "$root"

View File

@ -7,7 +7,7 @@
# function git-stash-clear-interactive {
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
@ -15,10 +15,10 @@ fi
local stashed
if [[ -f "$(git-dir)/refs/stash" ]]; then
stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
stashed=${#${(f)"$(command git stash list 2> /dev/null)"}}
if (( $stashed > 0 )); then
if read -q "?Clear $stashed stashed state(s) [y/N]? "; then
git stash clear
command git stash clear
fi
fi
fi

View File

@ -7,16 +7,16 @@
# function git-stash-dropped {
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
git fsck --unreachable 2> /dev/null \
command git fsck --unreachable 2> /dev/null \
| grep 'commit' \
| awk '{print $3}' \
| git log \
--pretty=format:${_git_log_oneline_format} \
| command git log \
--pretty=format:$_git_log_oneline_format \
--extended-regexp \
--grep="${1:-(WIP )?[Oo]n [^:]+:}" \
--merges \

View File

@ -7,7 +7,7 @@
# function git-stash-recover {
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
@ -15,8 +15,8 @@ fi
local commit
for commit in "$@"; do
git update-ref \
-m "$(git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
command git update-ref \
-m "$(command git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
done
# }

View File

@ -7,7 +7,7 @@
# function git-submodule-move {
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
elif [[ "$PWD" != "$(git-root)" ]]; then
@ -19,17 +19,17 @@ local src="$1"
local dst="$2"
local url
url="$(git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")"
url="$(command git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")"
if [[ -z "$url" ]]; then
print "$0: submodule not found: $src" >&2
return 1
fi
mkdir -p "${dst:h}"
mkdir -p "$dst:h"
git-submodule-remove "$src"
git submodule add "$url" "$dst"
command git submodule add "$url" "$dst"
return 0

View File

@ -7,24 +7,24 @@
# function git-submodule-remove {
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
elif [[ "$PWD" != "$(git-root)" ]]; then
print "$0: must be run from the root of the work tree" >&2
return 1
elif ! git config --file .gitmodules --get "submodule.${1}.path" &>/dev/null; then
elif ! command git config --file .gitmodules --get "submodule.${1}.path" &> /dev/null; then
print "$0: submodule not found: $1" >&2
return 1
fi
git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &>/dev/null
git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &>/dev/null
git add .gitmodules
command git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &> /dev/null
command git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &> /dev/null
command git add .gitmodules
git rm --cached -rf "${1}"
rm -rf "${1}"
rm -rf "$(git-dir)/modules/${1}"
command git rm --cached -rf "$1"
rm -rf "$1"
rm -rf "$(git-dir)/modules/$1"
return 0

View File

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

View File

@ -1,34 +1,34 @@
GNU Utility
===========
# GNU Utility
Provides for the interactive use of GNU utilities on BSD systems.
Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e.
Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e.,
`ls` instead of `gls`, is not recommended since scripts that target other
utilities will be broken.
This module wraps GNU utilities in functions without a prefix for interactive
use.
This module must be loaded **before** the *utility* module.
This module must be loaded _before_ the [_`utility`_][1] module so that GNU
utilities enabled in this module are available for configuration in _`utility`_
module.
Settings
--------
## Settings
### Prefix
To use a different prefix, add the following to *zpreztorc*, and replace 'g' with
the desired prefix:
To use a different prefix, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'g'` with the desired prefix.
```sh
zstyle ':prezto:module:gnu-utility' prefix 'g'
```
Authors
-------
## Authors
*The authors of this module should be contacted via the [issue tracker][1].*
_The authors of this module should be contacted via the [issue tracker][2]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[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.
zstyle -s ':prezto:module:gnu-utility' prefix '_gnu_utility_p' || _gnu_utility_p='g'
zstyle -s ':prezto:module:gnu-utility' prefix '_gnu_utility_p' \
|| _gnu_utility_p='g'
# Return if requirements are not found.
if (( ! ${+commands[${_gnu_utility_p}whoami]} )); then
if (( ! $+commands[${_gnu_utility_p}whoami] )); then
return 1
fi
_gnu_utility_cmds=(
# Coreutils
'[' 'base64' 'basename' 'cat' 'chcon' 'chgrp' 'chmod' 'chown'
'chroot' 'cksum' 'comm' 'cp' 'csplit' 'cut' 'date' 'dd' 'df'
'dir' 'dircolors' 'dirname' 'du' 'echo' 'env' 'expand' 'expr'
'factor' 'false' 'fmt' 'fold' 'groups' 'head' 'hostid' 'id'
'install' 'join' 'kill' 'link' 'ln' 'logname' 'ls' 'md5sum'
'mkdir' 'mkfifo' 'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc'
'od' 'paste' 'pathchk' 'pinee' 'pr' 'printenv' 'printf' 'ptx'
'pwd' 'readlink' 'realpath' 'rm' 'rmdir' 'runcon' 'seq' 'sha1sum'
'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf'
'sleep' 'sort' 'split' 'stat' 'stty' 'sum' 'sync' 'tac' 'tail'
'tee' 'test' 'timeout' 'touch' 'tr' 'true' 'truncate' 'tsort'
'tty' 'uname' 'unexpand' 'uniq' 'unlink' 'uptime' 'users' 'vdir'
'[' 'b2sum' 'base32' 'base64' 'basename' 'basenc' 'cat' 'chcon' 'chgrp'
'chmod' 'chown' 'chroot' 'cksum' 'comm' 'cp' 'csplit' 'cut'
'date' 'dd' 'df' 'dir' 'dircolors' 'dirname' 'du' 'echo' 'env' 'expand' 'expr'
'factor' 'false' 'fmt' 'fold' 'groups' 'head' 'hostid' 'id' 'install' 'join'
'kill' 'link' 'ln' 'logname' 'ls' 'md5sum' 'mkdir' 'mkfifo'
'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc' 'numfmt' 'od'
'paste' 'pathchk' 'pinky' 'pr' 'printenv' 'printf' 'ptx' 'pwd'
'readlink' 'realpath' 'rm' 'rmdir' 'runcon'
'seq' 'sha1sum' 'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf'
'sleep' 'sort' 'split' 'stat' 'stdbuf' 'stty' 'sum' 'sync' 'tac' 'tail'
'tee' 'test' 'timeout' 'touch' 'tr' 'true' 'truncate' 'tsort' 'tty'
'uname' 'unexpand' 'uniq' 'unlink' 'uptime' 'users' 'vdir'
'wc' 'who' 'whoami' 'yes'
# The following utilities are not part of Coreutils but installed separately.
# Binutils
'addr2line' 'ar' 'c++filt' 'elfedit' 'nm' 'objcopy' 'objdump'
'ranlib' 'readelf' 'size' 'strings' 'strip'
'addr2line' 'ar' 'c++filt' 'coffdump' 'dlltool' 'dllwrap' 'elfedit' 'nm'
'objcopy' 'objdump' 'ranlib' 'readelf'
'size' 'srconv' 'strings' 'strip' 'sysdump' 'windmc' 'windres'
# Findutils
'find' 'locate' 'oldfind' 'updatedb' 'xargs'
@ -42,16 +44,18 @@ _gnu_utility_cmds=(
'libtool' 'libtoolize'
# Miscellaneous
'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units' 'which'
'egrep' 'fgrep' 'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units'
'which'
)
# Wrap GNU utilities in functions.
for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do
_gnu_utility_pcmd="${_gnu_utility_p}${_gnu_utility_cmd}"
if (( ${+commands[${_gnu_utility_pcmd}]} && ! ${+builtins[${_gnu_utility_cmd}]} )); then
if (( $+commands[$_gnu_utility_pcmd] \
&& ! $+builtins[$_gnu_utility_cmd] )); then
eval "
function ${_gnu_utility_cmd} {
'${commands[${_gnu_utility_pcmd}]}' \"\$@\"
function $_gnu_utility_cmd {
'$commands[$_gnu_utility_pcmd]' \"\$@\"
}
"
fi

View File

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

View File

@ -12,7 +12,7 @@ fi
# Set the default paths to gpg-agent files.
_gpg_agent_conf="${GNUPGHOME:-$HOME/.gnupg}/gpg-agent.conf"
_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env.$UID"
_gpg_agent_env="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/gpg-agent.env"
# Load environment variables from previous run
source "$_gpg_agent_env" 2> /dev/null
@ -21,12 +21,13 @@ source "$_gpg_agent_env" 2> /dev/null
if [[ -z "$GPG_AGENT_INFO" && ! -S "${GNUPGHOME:-$HOME/.gnupg}/S.gpg-agent" ]]; then
# Start gpg-agent if not started.
if ! ps -U "$LOGNAME" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then
mkdir -p "$_gpg_agent_env:h"
eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
fi
fi
# Inform gpg-agent of the current TTY for user prompts.
export GPG_TTY="$(tty)"
export GPG_TTY=$TTY
# Integrate with the SSH module.
if grep '^enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then

View File

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

View File

@ -10,8 +10,11 @@ if (( ! $+commands[ghc] )); then
return 1
fi
# Load dependencies.
pmodload 'helper'
# Prepend Cabal per user directories to PATH.
if [[ "$OSTYPE" == darwin* && -d $HOME/Library/Haskell ]]; then
if is-darwin && [[ -d $HOME/Library/Haskell ]]; then
path=($HOME/Library/Haskell/bin(/N) $path)
else
path=($HOME/.cabal/bin(/N) $path)

View File

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

View File

@ -29,3 +29,28 @@ function coalesce {
done
return 1
}
# Checks if running on macOS Darwin.
function is-darwin {
[[ "$OSTYPE" == darwin* ]]
}
# Checks if running on Linux.
function is-linux {
[[ "$OSTYPE" == linux* ]]
}
# Checks if running on BSD.
function is-bsd {
[[ "$OSTYPE" == *bsd* ]]
}
# Checks if running on Cygwin (Windows).
function is-cygwin {
[[ "$OSTYPE" == cygwin* ]]
}
# Checks if running on termux (Android).
function is-termux {
[[ "$OSTYPE" == linux-android ]]
}

View File

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

View File

@ -10,7 +10,9 @@
pmodload 'editor'
# Source module files.
if (( ! $+functions[history-substring-search-up] )); then
source "${0:h}/external/zsh-history-substring-search.zsh" || return 1
fi
#
# Search

View File

@ -1,43 +1,79 @@
History
=======
# History
Sets [history][1] options and defines history aliases.
Variables
---------
**Note:** Default path of `HISTFILE` has changed from
_`${ZDOTDIR:-$HOME}/.zhistory`_ to _`${ZDOTDIR:-$HOME}/.zsh_history`_. The file
will be automatically renamed if possible (when the new one doesn't exist).
Otherwise, if you want to preserve previous history, you will need to move them
from _`${ZDOTDIR:-$HOME}/.zhistory`_ to _`${ZDOTDIR:-$HOME}/.zsh_history`_.
- `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.
Alternately, you can set `HISTFILE` manually to _`${ZDOTDIR:-$HOME}/.zhistory`_.
Options
-------
## Options
- `BANG_HIST` treats the **!** character specially during expansion.
- `EXTENDED_HISTORY` writes the history file in the *:start:elapsed;command* format.
- `INC_APPEND_HISTORY` writes to the history file immediately, not when the shell exits.
- `SHARE_HISTORY` shares history between all sessions.
- `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_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.
Aliases
-------
## Variables
- `HISTFILE` stores the path to the history file.
- `HISTSIZE` stores the maximum number of events to save in the internal history.
- `SAVEHIST` stores the maximum number of events to save in the history file.
## Aliases
- `history-stat` lists the ten most used commands
Authors
-------
## Settings
*The authors of this module should be contacted via the [issue tracker][2].*
### histfile
Can be configured either by setting HISTFILE manually before loading this
module or by using zstyle:
```sh
zstyle ':prezto:module:history' histfile "<file_name>"
```
defaults to "${ZDOTDIR:-$HOME}/.zsh_history".
## histsize
```sh
zstyle ':prezto:module:history' histsize <number>
```
defaults to 10000.
## savehist
```sh
zstyle ':prezto:module:history' savehist <number>
```
defaults to histsize
## Authors
_The authors of this module should be contacted via the [issue tracker][2]._
- [Robby Russell](https://github.com/robbyrussell)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Indrajit Raychaudhuri](https://github.com/indrajitr)
[1]: http://zsh.sourceforge.net/Guide/zshguide02.html#l16
[1]: https://zsh.sourceforge.net/Guide/zshguide02.html#l16
[2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -6,21 +6,12 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
#
# Variables
#
HISTFILE="${ZDOTDIR:-$HOME}/.zhistory" # The path to the history file.
HISTSIZE=10000 # The maximum number of events to save in the internal history.
SAVEHIST=10000 # The maximum number of events to save in the history file.
#
# Options
#
setopt BANG_HIST # Treat the '!' character specially during expansion.
setopt EXTENDED_HISTORY # Write the history file in the ':start:elapsed;command' format.
setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits.
setopt SHARE_HISTORY # Share history between all sessions.
setopt HIST_EXPIRE_DUPS_FIRST # Expire a duplicate event first when trimming history.
setopt HIST_IGNORE_DUPS # Do not record an event that was just recorded again.
@ -31,9 +22,46 @@ setopt HIST_SAVE_NO_DUPS # Do not write a duplicate event to the history
setopt HIST_VERIFY # Do not execute immediately upon history expansion.
setopt HIST_BEEP # Beep when accessing non-existent history.
#
# Variables
#
zstyle -s ':prezto:module:history' histfile '_pmh_histfile' || _pmh_histfile="${HISTFILE:-${ZDOTDIR:-$HOME}/.zsh_history}"
zstyle -s ':prezto:module:history' histsize '_pmh_histsize' || _pmh_histsize=10000
zstyle -s ':prezto:module:history' savehist '_pmh_savehist' || _pmh_savehist=${_pmh_histsize}
HISTFILE="${_pmh_histfile}" # The path to the history file.
HISTSIZE="${_pmh_histsize}" # The maximum number of events to save in the internal history.
SAVEHIST="${_pmh_savehist}" # The maximum number of events to save in the history file.
unset _pmh_{hist{file,size},savehist}
#
# Aliases
#
# Lists the ten most used commands.
alias history-stat="history 0 | awk '{print \$2}' | sort | uniq -c | sort -n -r | head"
if [[ -s "${OLD_HISTFILE::=${HISTFILE:h}/.zhistory}" ]]; then
# New 'HISTFILE' doesn't exist yet, rename legacy one if available and notify.
if [[ ! -s "$HISTFILE" ]]; then
<<EON
NOTICE: Default path of 'HISTFILE' has changed from '${OLD_HISTFILE/#$HOME/~}'
to '${HISTFILE/#$HOME/~}'.
Attempting to rename the existing 'HISTFILE' ...
EON
command mv -v "$OLD_HISTFILE" "$HISTFILE"
# New 'HISTFILE' does exist and is older than legacy one, just warn.
elif [[ "$OLD_HISTFILE" -nt "$HISTFILE" ]]; then
<<EOW
WARNING: Default path of 'HISTFILE' has changed from '${OLD_HISTFILE/#$HOME/~}'
to '${HISTFILE/#$HOME/~}'.
Either set 'HISTFILE' in '${${0:h}/#$HOME/~}'
or move previous history from '${OLD_HISTFILE/#$HOME/~}' to
'${HISTFILE/#$HOME/~}'.
EOW
fi
unset OLD_HISTFILE
fi

View File

@ -1,37 +1,41 @@
Homebrew
========
# Homebrew
Defines Homebrew aliases.
Defines Homebrew specific environment variables and aliases.
Aliases
-------
## Variables
### Homebrew
Execute the following to list the environment variables loaded in the shell:
```sh
brew shellenv
```
## Aliases
### Homebrew Core
- `brewc` cleans outdated brews and their cached archives.
- `brewC` cleans outdated brews, including keg-only, and their cached archives.
- `brewi` installs a formula.
- `brewL` lists installed formulae that are not dependencies of another
installed formula.
- `brewl` lists installed formulae.
- `brewo` lists brews which have an update available.
- `brews` searches for a formula.
- `brewu` updates and upgrades Homebrew packages and formulae.
- `brewu` upgrades outdated formulae.
- `brewx` uninstalls a formula.
### Homebrew Cask
- `cask` is aliased to `brew cask`.
- `caskc` cleans up old cached downloads.
- `caskC` cleans up all cached downloads.
- `caski` installs a cask.
- `caskl` lists installed casks.
- `casko` lists casks which have an update available.
- `casks` searches for a cask.
- `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)
- [Griffin Yourick](https://github.com/tough-griff)

View File

@ -5,31 +5,43 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Load dependencies.
pmodload 'helper'
# Return if requirements are not found.
if [[ "$OSTYPE" != (darwin|linux)* ]]; then
if ! is-darwin && ! is-linux; then
return 1
fi
#
# Variables
#
# Load standard Homebrew shellenv into the shell session.
# Load 'HOMEBREW_' prefixed variables only. Avoid loading 'PATH' related
# variables as they are already handled in standard zsh configuration.
if (( $+commands[brew] )); then
eval "${(@M)${(f)"$(brew shellenv 2> /dev/null)"}:#export HOMEBREW*}"
fi
#
# Aliases
#
# Homebrew
alias brewc='brew cleanup'
alias brewC='brew cleanup --force'
alias brewi='brew install'
alias brewL='brew leaves'
alias brewl='brew list'
alias brewo='brew outdated'
alias brews='brew search'
alias brewu='brew update && brew upgrade'
alias brewx='brew remove'
alias brewu='brew upgrade'
alias brewx='brew uninstall'
# Homebrew Cask
alias cask='brew cask'
alias caskc='brew cask cleanup --outdated'
alias caskC='brew cask cleanup'
alias caski='brew cask install'
alias caskl='brew cask list'
alias casko='brew cask outdated'
alias casks='brew cask search'
alias caskx='brew cask uninstall'
alias caski='brew install --cask'
alias caskl='brew list --cask'
alias casko='brew outdated --cask'
alias casks='brew search --cask'
alias casku='brew upgrade --cask'
alias caskx='brew uninstall --cask'

View File

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

View File

@ -6,8 +6,11 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Load dependencies.
pmodload 'helper'
# Return if requirements are not found.
if [[ "$OSTYPE" != darwin* ]]; then
if ! is-darwin; then
return 1
fi

View File

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

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
# 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,13 +15,15 @@ local version_formatted
unset node_info
typeset -gA node_info
if (( $+functions[nvm_version] )); then
version="${$(nvm_version)#v}"
elif (( $+commands[nodenv] )); then
if (( $+commands[nodenv] )); then
version="${${$(nodenv version)#v}[(w)0]}"
elif (( $+functions[nvm_version] )); then
version="${$(nvm_version)#v}"
elif (( $+commands[node] )) ; then
version="${$(node -v)#v}"
fi
if [[ "$version" != (none|) ]]; then
if [[ "$version" != (none|system) ]]; then
zstyle -s ':prezto:module:node:info:version' format 'version_format'
zformat -f version_formatted "$version_format" "v:$version"
node_info[version]="$version_formatted"

View File

@ -1,43 +1,65 @@
#
# Loads the Node Version Manager and enables npm completion.
# Configures Node local installation, loads version managers, and defines
# variables and aliases.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
# Zeh Rizzatti <zehrizzatti@gmail.com>
# Indrajit Raychaudhuri <irc@indrajit.com>
#
# Load manually installed NVM into the shell session.
if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
source "$HOME/.nvm/nvm.sh"
# Possible lookup locations for manually installed nodenv and nvm.
local_nodenv_paths=({$NODENV_ROOT,{$XDG_CONFIG_HOME/,$HOME/.}nodenv}/bin/nodenv(N))
local_nvm_paths=({$NVM_DIR,{$XDG_CONFIG_HOME/,$HOME/.}nvm}/nvm.sh(N))
# Load package manager installed NVM into the shell session.
elif (( $+commands[brew] )) && [[ -d "$(brew --prefix nvm 2> /dev/null)" ]]; then
source "$(brew --prefix nvm)/nvm.sh"
# Load manually installed or package manager installed nodenv into the shell
# session.
if (( $#local_nodenv_paths || $+commands[nodenv] )); then
# Load manually installed nodenv into the shell session.
elif [[ -s "$HOME/.nodenv/bin/nodenv" ]]; then
path=("$HOME/.nodenv/bin" $path)
eval "$(nodenv init - --no-rehash zsh)"
# Ensure manually installed nodenv is added to path when present.
[[ -s $local_nodenv_paths[1] ]] && path=($local_nodenv_paths[1]:h $path)
# Load package manager installed nodenv into the shell session.
elif (( $+commands[nodenv] )); then
eval "$(nodenv init - --no-rehash zsh)"
eval "$(nodenv init - zsh)"
# Load manually installed nvm into the shell session.
elif (( $#local_nvm_paths )); then
source "$local_nvm_paths[1]" --no-use
# Load package manager installed nvm into the shell session.
elif (( $+commands[brew] )) \
&& [[ -d "${nvm_path::="$(brew --prefix 2> /dev/null)"/opt/nvm}" ]]; then
source "$nvm_path/nvm.sh" --no-use
fi
unset local_n{odenv,vm}_paths nvm_path
# Return if requirements are not found.
elif (( ! $+commands[node] )); then
if (( ! $+commands[node] && ! $#functions[(i)n(odenv|vm)] )); then
return 1
fi
# Load NPM completion.
if (( $+commands[npm] )); then
cache_file="${TMPDIR:-/tmp}/prezto-node-cache.$UID.zsh"
#
# Variables
#
if [[ "$commands[npm]" -nt "$cache_file" || ! -s "$cache_file" ]]; then
# npm is slow; cache its output.
npm completion >! "$cache_file" 2> /dev/null
fi
N_PREFIX="${XDG_CONFIG_HOME:-$HOME/.config}/n" # The path to 'n' cache.
source "$cache_file"
#
# Aliases
#
unset cache_file
fi
# 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'
alias npmci='npm ci'
alias npmcit='npm cit'
alias npmit='npm it'

View File

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

View File

@ -0,0 +1,23 @@
#
# Exposes information about the OpenStack environment via the $os_info associative
# array.
#
# function os-info {
local tenant
local tenant_format
local tenant_formatted
unset os_info
typeset -gA os_info
[[ -n "${OS_PROJECT_NAME+1}" ]] && tenant="${OS_PROJECT_NAME}"
if [[ "$tenant" != (none|) ]]; then
zstyle -s ':prezto:module:openstack:info:tenant' format 'tenant_format'
zformat -f tenant_formatted "$tenant_format" "v:$tenant"
os_info[tenant]="$tenant_formatted"
fi
# }

View File

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

View File

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

View File

@ -1,5 +1,5 @@
#
# Displays the Mac OS X download history.
# Displays the macOS download history.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>

View File

@ -1,5 +1,5 @@
#
# Deletes the Mac OS X download history.
# Deletes the macOS download history.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>

View File

@ -1,12 +1,15 @@
#
# Defines Mac OS X aliases and functions.
# Defines macOS aliases and functions.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Load dependencies.
pmodload 'helper'
# Return if requirements are not found.
if [[ "$OSTYPE" != darwin* ]]; then
if ! is-darwin; then
return 1
fi

View File

@ -1,11 +1,9 @@
Pacman
======
# Pacman
Provides aliases and functions for the [Pacman][1] package manager and
frontends.
Settings
--------
## Settings
It is possible to use a Pacman frontend with the pacman aliases provided by this
package as long as that frontend supports the same command line options (The
@ -17,15 +15,15 @@ supported by Archlinux. It is currently recommended to manually build AUR
packages using the [provided instructions][3]. The [aurutils][4] project has a
set of small utilities to make this easier.
To enable a Pacman frontend, add the following line to *zpreztorc*, substituting
`pacman_frontend` with the name of the frontent:
To enable a different Pacman frontend, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'<frontend>'` with the name
of the preferred frontend.
```sh
zstyle ':prezto:module:pacman' frontend 'pacman_frontend'
zstyle ':prezto:module:pacman' frontend '<frontend>'
```
Aliases
-------
## Aliases
### Pacman
@ -47,23 +45,21 @@ Aliases
### Frontends
Functions
---------
## Functions
- `aurget` clone an aur package
- `aurget` clone an aur package.
- `pacman-list-explicit` lists explicitly installed pacman packages.
- `pacman-list-disowned` lists pacman disowned files.
Authors
-------
## Authors
*The authors of this module should be contacted via the [issue tracker][5].*
_The authors of this module should be contacted via the [issue tracker][5]._
- [Benjamin Boudreau](https://github.com/dreur)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.archlinux.org/pacman/
[2]: https://wiki.archlinux.org/index.php/AUR_helpers#Comparison_table
[3]: https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages
[1]: https://www.archlinux.org/pacman/
[2]: https://wiki.archlinux.org/title/AUR_helpers#Comparison_tables
[3]: https://wiki.archlinux.org/title/Arch_User_Repository#Installing_and_upgrading_packages
[4]: https://github.com/AladW/aurutils
[5]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -8,11 +8,11 @@
# function pacman-list-disowned {
local tmp="${TMPDIR:-/tmp}/pacman-disowned-$UID-$$"
local tmp="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/pacman-disowned-$$"
local db="$tmp/db"
local fs="$tmp/fs"
mkdir "$tmp"
mkdir -p "$tmp"
trap 'rm -rf "$tmp"' EXIT
pacman --quiet --query --list | sort --unique > "$db"

View File

@ -1,18 +1,16 @@
Perl
====
# Perl
Enables local [Perl][1] module installation on Mac OS X 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
modules natively. This module allows for local installation of Perl modules on
Mac OS X in *~/Library/Perl/5.12* by altering the environment.
macOS in _`~/Library/Perl/5.12`_ by altering the environment.
### Usage
For Perl versions older than 5.14, install *local::lib*.
For Perl versions older than 5.14, install _`local::lib`_.
```console
curl -L -C - -O http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz
@ -22,28 +20,25 @@ perl Makefile.PL --bootstrap=$HOME/Library/Perl/5.12
make && make test && make install
```
Install *cpanminus*:
Install _cpanminus_:
```console
curl -L http://cpanmin.us | perl - --self-upgrade
```
Perlbrew
--------
## Perlbrew
An alternative to the above is to use [Perlbrew][2], which allows for the
management of multiple, isolated Perl installations in the home directory.
plenv
-----
## plenv
Yet another alternative is [plenv][3]. This is inspired from rbenv and enables
switching between multiple binary installations.
Yet another alternative is [_plenv_][3]. This is inspired from _rbenv_ and
enables switching between multiple binary installations.
The subcommands of plenv is similar with rbenv.
The subcommands of _plenv_ is similar with _rbenv_.
Aliases
-------
## Aliases
### General
@ -51,7 +46,7 @@ Aliases
- `pld` looks up Perl documentation (`perldoc`).
- `ple` executes a one line program in a loop (`perl -wlne`).
### Perlbrew
### Perlbrew (plb)
- `plb` manages Perl environments.
- `plba` lists available Perl versions.
@ -63,7 +58,7 @@ Aliases
- `plbu` uninstalls a Perl version.
- `plbx` temporarily sets the Perl version to use.
### plenv
### plenv (plv)
- `plv` manages Perl environments.
- `plvc` List all available plenv commands.
@ -81,14 +76,12 @@ Aliases
- `plvM` Migrate cpan modules from other version.
- `plvI` Install cpanm.
Functions
---------
## Functions
- `perl-info` exposes information about the Perl environment via the
`$perl_info` associative array.
Theming
-------
## Theming
To display the name of the current Perl version in a prompt, define the
following style in the `prompt_name_setup` function.
@ -101,14 +94,13 @@ zstyle ':prezto:module:perl:info:version' format 'version:%v'
Then add `$perl_info[version]` to `$PROMPT` or `$RPROMPT` and call
`perl-info` in the `prompt_name_precmd` hook function.
Authors
-------
## Authors
*The authors of this module should be contacted via the [issue tracker][4].*
_The authors of this module should be contacted via the [issue tracker][4]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.perl.org
[2]: http://perlbrew.pl
[1]: https://www.perl.org
[2]: https://perlbrew.pl
[3]: https://github.com/tokuhirom/plenv
[4]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,5 +1,5 @@
#
# Enables local Perl module installation on Mac OS X and defines aliases.
# Enables local Perl module installation on macOS and defines aliases.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
@ -10,6 +10,9 @@ if (( ! $+commands[perl] )); then
return 1
fi
# Load dependencies.
pmodload 'helper'
#
# Load Perlbrew or plenv
#
@ -37,13 +40,14 @@ fi
# Local Module Installation
#
if [[ "$OSTYPE" == darwin* ]]; then
if is-darwin; then
# Perl is slow; cache its output.
cache_file="${TMPDIR:-/tmp}/prezto-perl-cache.$UID.zsh"
cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/perl-cache.zsh"
perl_path="$HOME/Library/Perl/5.12"
if [[ -f "$perl_path/lib/perl5/local/lib.pm" ]]; then
if [[ ! -s "$cache_file" ]]; then
if [[ "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" || ! -s "$cache_file" ]]; then
mkdir -p "$cache_file:h"
perl -I$perl_path/lib/perl5 -Mlocal::lib=$perl_path >! "$cache_file"
fi

View File

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

View File

@ -28,3 +28,4 @@ unset current_pwd
print "$ret_directory"
# }
# vim: ft=zsh

View File

@ -9,7 +9,7 @@
# - The prompt is prefixed by a character sequence of your choice.
# - Only displays the current directory instead of the full path.
# - Displays the current branch when in a git project (this requires loading
# the git module before prompt in ~/.zpreztorc).
# the git module before prompt in ${ZDOTDIR:-$HOME}/.zpreztorc).
# - Displays a character at the end of the prompt when in a git project with
# "dirty" files.
#
@ -17,7 +17,7 @@
# This prompt's prefix symbol and colors are customizable:
# prompt cloud [<symbol>] [<color1>] [<color2>]
#
# In ~/.zpreztorc:
# In ${ZDOTDIR:-$HOME}/.zpreztorc:
# zstyle ':prezto:module:prompt' theme 'cloud' \
# ['<symbol>'] \
# ['<color1>'] \
@ -53,7 +53,7 @@ This prompt's prefix symbol and colors are customizable:
prompt cloud [<symbol>] [<color1>] [<color2>]
In ~/.zpreztorc:
In ${ZDOTDIR:-$HOME}/.zpreztorc:
zstyle ':prezto:module:prompt' theme 'cloud' ['<symbol>'] ['<color1>'] ['<color2>']
If these options are not provided, the symbol defaults to ☁ with colors cyan
@ -104,6 +104,9 @@ function prompt_cloud_setup {
# Add hook for calling git-info before each command.
add-zsh-hook precmd prompt_cloud_precmd
# Tell prezto we can manage this prompt
zstyle ':prezto:module:prompt' managed 'yes'
# Set git-info parameters.
zstyle ':prezto:module:git:info' verbose 'yes'
zstyle ':prezto:module:git:info:dirty' format "%%B%F{$secondary_color}]%f%%b %F{yellow}⚡%f"
@ -119,3 +122,4 @@ function prompt_cloud_setup {
}
prompt_cloud_setup "$@"
# vim: ft=zsh

View File

@ -27,6 +27,11 @@ prompt_damoekri_precmd() {
if (( $+functions[ruby-info] )); then
ruby-info
fi
# Get Openstack tenant information.
if (( $+functions[os-info] )); then
os-info
fi
}
function prompt_damoekri_setup {
@ -40,6 +45,9 @@ function prompt_damoekri_setup {
# Add hook for calling git-info and ruby-info before each command.
add-zsh-hook precmd prompt_damoekri_precmd
# Tell prezto we can manage this prompt
zstyle ':prezto:module:prompt' managed 'yes'
# Set editor-info parameters.
zstyle ':prezto:module:editor:info:keymap:primary' format ' %F{green}»%f'
@ -57,9 +65,13 @@ function prompt_damoekri_setup {
# Set ruby-info parameters.
zstyle ':prezto:module:ruby:info:version' format ' %F{yellow}%v%f'
# Set openstack tenant info
zstyle ':prezto:module:openstack:info:tenant' format '%s'
# Define prompts.
PROMPT='%F{cyan}${_prompt_damoekri_pwd}%f${editor_info[keymap]} '
PROMPT='${os_info:+${os_info[tenant]} }%F{cyan}${_prompt_damoekri_pwd}%f${editor_info[keymap]} '
RPROMPT='${git_info:+${(e)git_info[rprompt]}}${ruby_info:+${ruby_info[version]}}'
}
prompt_damoekri_setup "$@"
# vim: ft=zsh

View File

@ -47,6 +47,9 @@ function prompt_giddie_setup {
# Add hook to set up prompt parameters before each command.
add-zsh-hook precmd prompt_giddie_precmd
# Tell prezto we can manage this prompt
zstyle ':prezto:module:prompt' managed 'yes'
# Set editor-info parameters.
zstyle ':prezto:module:editor:info:completing' format '%F{green}...%f'
zstyle ':prezto:module:editor:info:keymap:alternate' format '%F{yellow}--- COMMAND ---%f'
@ -74,3 +77,4 @@ function prompt_giddie_setup {
}
prompt_giddie_setup "$@"
# vim: ft=zsh

View File

@ -40,6 +40,9 @@ function prompt_kylewest_setup {
# Add hook for calling git-info before each command.
add-zsh-hook precmd prompt_kylewest_precmd
# Tell prezto we can manage this prompt
zstyle ':prezto:module:prompt' managed 'yes'
# Set editor-info parameters.
zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b'
zstyle ':prezto:module:editor:info:keymap:primary' format "%B%F{green}%f%b"
@ -63,3 +66,4 @@ function prompt_kylewest_setup {
}
prompt_kylewest_setup "$@"
# vim: ft=zsh

View File

@ -32,6 +32,9 @@ function prompt_minimal_setup {
# Add hook for calling vcs_info before each command.
add-zsh-hook precmd prompt_minimal_precmd
# Tell prezto we can manage this prompt
zstyle ':prezto:module:prompt' managed 'yes'
# Set vcs_info parameters.
zstyle ':vcs_info:*' enable bzr git hg svn
zstyle ':vcs_info:*' check-for-changes true
@ -47,4 +50,14 @@ function prompt_minimal_setup {
RPROMPT=''
}
function prompt_minimal_preview {
local +h PROMPT=''
local +h RPROMPT=''
local +h SPROMPT=''
editor-info 2> /dev/null
prompt_preview_theme 'minimal'
}
prompt_minimal_setup "$@"
# vim: ft=zsh

View File

@ -35,6 +35,9 @@ function prompt_nicoulaj_setup {
# Add hook for calling vcs_info before each command.
add-zsh-hook precmd prompt_nicoulaj_precmd
# Tell prezto we can manage this prompt
zstyle ':prezto:module:prompt' managed 'yes'
# Customizable parameters.
local max_path_chars=30
local user_char=''
@ -58,3 +61,4 @@ function prompt_nicoulaj_setup {
}
prompt_nicoulaj_setup "$@"
# vim: ft=zsh

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