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

Compare commits

..

668 Commits

Author SHA1 Message Date
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
282b478fd2 Add vi-pound-insert as # in vicmd mode
Fixes #1534
2018-01-26 18:14:14 -08:00
904eef5fa5 Add pound-toggle zle widget to work around the buggy built-in pound-insert
Refs #1533, #1534
2018-01-26 14:52:11 -08:00
906ac99e20 Move INTERACTIVE_COMMENTS from editor to environment 2018-01-25 12:41:58 -08:00
0b62639ad5 Set INTERACTIVE_COMMENTS by default
This allows using # to comment lines in the interactive shell
2018-01-25 12:32:29 -08:00
54d2a76731 pacman: fix mistake where aurutils should be used, not aurtools 2018-01-24 14:01:14 -08:00
e32a96be72 pacman: Simplify support for AUR helpers
There are a number of things happening here.

- Extra support for yaourt has been removed
- Docs have been updated to explicitly call out that AUR helpers are not
  officially supported
- aurutils has been suggested to make common operations easier
- A utility function called aurget (similar to aurfetch from aurutils)
  has been added to make cloning AUR repos easier.

Fixes #1531
2018-01-24 13:47:22 -08:00
73e94b84bb Don't set auto_name_dirs because it messes up prompts
This was ported from Oh-My-Zsh and since have been disabled in it.

Explained in more detail
rvm/rvm/issues/3091#issuecomment-60083194

Related: #998, #1081
2018-01-16 02:47:03 -08:00
82d3265ad5 utility: remove usage of noremoteglob until bugs can be fixed
Fixes #1443, #1521
2017-12-18 13:35:23 -08:00
66bfe9be27 autosuggestions: ensure external submodule is the latest version 2017-12-14 22:26:13 -08:00
83085e5231 python: remove zstyle setting in favor of third party environment variable
Refs #1519, #1520
2017-12-14 17:23:44 -08:00
4c31107e3b python: only override virtualenv python if not set
Fixes #1520
2017-12-14 17:11:06 -08:00
d8d6b4d70a python: only override virtualenvwrapper python when needed
Fixes #1519
2017-12-12 23:11:55 -08:00
e021adeb4a python: make a reasonable guess about virtualenvwrapper python location
Fixes #1416
2017-12-11 11:01:42 -08:00
aa0395244d Update zsh-autosuggestions to v0.4.2 2017-12-07 10:13:04 -08:00
3ab569ff78 python-info: add support for pyenv and only do extra work if the prompt needs it 2017-12-04 15:08:58 -08:00
3a0bd28e0c ruby-info: only run commands if the prompt needs the info 2017-12-04 15:08:23 -08:00
64d57ec71f python-info: avoid setting python_info[version] if python is not on the PATH 2017-12-04 12:08:45 -08:00
b407ba0c3a python-info: provide python version info for theming
Closes #1173
Closes #958
2017-12-04 12:05:21 -08:00
e2785cc246 Better TTY logic for zlogin and zlogout 2017-12-04 11:38:16 -08:00
029414581e Add support for loading plugins in the oh-my-zsh format
Closes #1484
2017-12-03 00:41:48 -08:00
7cdde9b631 pacman: Update README to recommend pacaur over yaourt 2017-12-01 14:51:05 -08:00
8ed2c78de8 editor: Avoid prompt redisplay on completion when there is no indicator
Refs #1512
2017-12-01 10:55:58 -08:00
043d09bbfe [git] Support short-code and improve completion in 'git-hub-shorten-url'
Changes:
- Add optional short-code support
- Improve completion for github.com URL (`http(s)://*.github.com` only)
- Return with non-zero exit code appropriately
2017-11-28 16:45:28 -08:00
df3468e957 Update zsh-async to v1.6.0 2017-11-28 15:10:13 -08:00
65bcbae8bc Update zsh-autosuggestions to v0.4.1 2017-11-28 09:19:35 -08:00
64d6ae805c Source correct module's init.zsh
Now that modules can be located in different directories, the `init.zsh` should be loaded from the `$module_location` and not `$ZPREZTODIR/modules/$pmodule`
2017-11-27 20:27:41 -08:00
221c6cd128 Remove BRACE_CCL as default
Fixes #1162
2017-11-14 00:34:19 -08:00
cbe4815189 Allow module to be a symbolic link to a non-empty directory (#1510) 2017-11-13 16:41:54 -08:00
a3f40a7479 Fix README formatting 2017-11-12 17:54:49 -08:00
d725233bb1 Add basic documentation on external module directories 2017-11-12 17:53:10 -08:00
2436806fce [utility] Simplify enabling 'diff' color conditions in wrapper function
Nested `if` can be removed for simple cases like these.
Also, doc cleanup.
2017-11-12 16:51:24 -08:00
96bbb31cc8 Added conda virtualenv support to python module. (#1505)
* Added conda virtualenv support to python module
* Added instructions for Python module options to README

Thanks to @egpbos for the original feature and @ickc for fixing the merge conflicts.
2017-11-12 16:20:52 -08:00
ce349dff81 Allow modules to be loaded from multiple places (#1458)
* Allow modules to be loaded from multiple places
* Add setting for user specified module dirs

This is initial work for the contrib repo, mentioned in #1424
2017-11-12 16:01:39 -08:00
ad79f78fbe prompt: fix async usage in sorin prompt
Fixes #1509
2017-11-11 20:57:03 -08:00
e159c1a439 prompt: update sorin prompt async usage to be closer to pure 2017-11-11 15:18:31 -08:00
f02dc1af57 gpg: potential fix for #1252 2017-11-10 12:23:37 -08:00
105e9658bb gnu-utility: avoid overriding shell builtins
Fixes #1263
2017-11-10 11:54:54 -08:00
948d9b3aa5 Store cache files in a user-writable location
Fixes #1122
2017-11-10 11:37:14 -08:00
79927ac73a editor: Fix Home and End in vicmd mode
Fixes #1160
2017-11-10 11:06:50 -08:00
485ad9e704 Add Alternatives section to archive module README (Fixes #705) 2017-11-10 10:38:15 -08:00
c7dcd21c9e Don't show ruby info if using system version
Based off a8fe1b3cb4 by @chauncey-garrett
2017-11-09 13:55:20 -08:00
7ebb5e9dda environment: Fix logic around url quoting in zsh >= 5.1
Closes #1015, Fixes #978

Thanks to @Eriner for pointing us in right direction.

The code for this comes from zim. This is the last commit with the code we're using:
537f076603 (diff-30465d78a41f73dc0f6967d3f34d7964)

Note that we need this workaround because we currently support back to
4.3.11.

I believe that originally came from here:
https://github.com/robbyrussell/oh-my-zsh/pull/4473
2017-11-06 11:58:05 -08:00
ff9b901394 Set key binding (^space) to expand all aliases including global (#1500) 2017-11-01 17:00:32 -07:00
4b0ecffaca prompt: update pure to 1.6.0
Refs #1487
2017-10-29 23:32:14 -07:00
87d39f5dd2 Update init.zsh
It seems that my older git does not support '@' yet.
2017-10-26 10:28:56 -07:00
cbcbedd694 prompt: Add basic troubleshooting information for fonts
This is related to #1495 and a number of other issues which have been
filed about font issues.
2017-10-24 12:52:42 -07:00
109864429c ssh: fix loading of ssh identities when none are explicitly defined 2017-10-18 17:30:16 -07:00
b5d09e2da7 Lower requirements down to 4.3.11 again (#1491)
There was an update with the syntax-highlighting module which fixed compatibility with 4.3.11.
2017-10-20 10:38:48 -07:00
fb903cb067 Document support for macOS
This adds docs for b0c85eddf6 which was added in https://github.com/sorin-ionescu/prezto/pull/1376/
2017-10-19 23:17:14 -07:00
6d5650eae7 [tmux] Avoid run tmux when the shell is executed on emacs
This avoid weird bugs to try running zsh through C-x M-x
and bug happens because obviously tmux is not designed to be
executed inside emacs.
2017-10-19 23:15:17 -07:00
25d8db301d Clarify that brewu updates AND upgrades
As homebrew includes both an update and upgrade command, it is beneficial to clarify that this performs both, rather than just the update.
2017-10-09 11:15:25 -07:00
63310f6403 ssh: update SSH_ASKPASS workaround to more closely match what ssh-add needs
Fixes #1478
2017-10-04 13:41:45 -07:00
1d0bee6098 Fix README.md for autosuggestions and history-substring-search (#1471) 2017-09-19 00:38:24 -07:00
9520f1be6f archive: fix unrar-free and add support for unar (#1383)
* archive: fix unrar check when using unrar-free

unrar-free returns the error code 1 when run without arguments, thus
failing the presence check. Replacing the current presence check with
(( $+commands[unrar] )) fixes the problem.

* archive: add unar support for lsarchive and unarchive

No `archive` support with unar.
2017-09-18 16:27:31 -07:00
cd703d3c3c Add make to gnu-utility commands 2017-09-17 14:57:18 -07:00
752f64f085 Bind more unbound keys in viins and vicmd to nothing
Unbound keys in viins or vicmd mode have undefined results. Bind
two more of these to nothing to avoid this.
2017-09-17 14:55:22 -07:00
00f1d92ed8 Fix typo in zprezto-update function 2017-09-08 12:46:02 -05:00
34d4897d0e Updates outdate Mac OS X to macOS 2017-09-07 11:30:05 -07:00
3faaffe7e9 Updating submodules
Updating `completition`, prompt `async` and `syntax-highlighting`. All
modules where checkout to their latest tag.
2017-09-06 11:39:43 -07:00
34482cb325 prompt: add documentation for return value display 2017-09-06 11:19:17 -07:00
2cfd366ba6 [prompt_sorin] Use ✘ and show return value for non-0 rtrns (#1460)
If you do not want it to show the return code, you can set:
`zstyle ':prezto:module:prompt' show-return-val false`
2017-09-06 11:14:35 -07:00
808d9d3579 Add zsh-help function for easily searching the zsh documentation (#1360)
* Add zsh-help function for easily searching the zsh documentation

Looks up things in the zsh documentation.
Usage: zsh-help [--all] search term(s)

Option --all will seach for the term anywhere, not just at the start of a
line. When not using --all it will search nicely for terms at the beginning
of the line, which in the zsh man pages is where terms that are explained
are located, allowing you to search the zsh man pages easily.

* Improve zsh-help to search section headings before other text

Provides a much easier way to search and access ZSH's manual. First checks for
terms at the start of the manual, then checks if it's at start of a line allowing
whitespace.

Clean up some of the code a bit and format it to have a proper header for the
zprezto project with author/email and description of the function.
2017-09-06 11:11:19 -07:00
76388a8cd1 Pin powerlevel9k submodule to latest release (v0.6.4) 2017-08-31 18:31:09 -05:00
6a8f1c6b16 Add powerlevel9k theme 2017-08-31 18:31:09 -05:00
ba0cb8afd8 Add missing highlighter to readme
This was added to `.zpreztorc` in 4f19700919 but forgot to add it here.
2017-08-29 16:54:12 -07:00
46de6fef77 Swap italics to code formatting and add hyperlink 2017-08-29 16:53:56 -07:00
37c61a058c Document that fasd is now bundled with prezto
Document that `fasd` is now bundled with prezto (19990c8025) and that it's a fallback to a manually installed version (04bfb5131b).
2017-08-29 16:52:22 -07:00
38fb41d66e Use backticks rather than italics for paths
This is more typical with what I observe elsewhere
2017-08-29 16:52:06 -07:00
727f094b0f [python] cleanup readme formatting
Anyone want some backticks? :-)
2017-08-29 16:51:27 -07:00
8fa14ed72f Drop easy_install in docs, everyone now uses pip (#1436) 2017-08-29 16:04:44 -07:00
58bcc43bf9 Fix typo 2017-08-29 15:18:30 -07:00
98f37b3c2f Update reference to Bombich's rsync 2017-08-29 16:33:06 -05:00
a7fb175b20 Fix English mistakes in the autosuggestions module README.md (#1444)
* Change 'conjuncture' to 'conjunction'
* Fix ambiguous pronoun references
2017-08-28 19:17:45 -07:00
9c528efa60 Explicitly set PYENV_ROOT 2017-08-26 16:21:45 -05:00
83ab314b77 [python] Refine pyenv based virtualenv management
Now that pyenv plugins availability is detected by directly probing
'pyenv', we need to rely on the same mechanism consistently.

Further, we perform available pyenv plugin scan with native zsh
techniques instead of relying on external commands.
2017-08-18 09:35:52 -05:00
5ffc8a07f1 [python] Ensure availability of virtualenvwrapper file before sourcing it 2017-08-18 07:56:10 -05:00
cab4ac54ec Update prompt_sorin_setup
Addressing a type - and switching from a custom orange to yellow (from default color list) for prompt.
2017-08-17 23:27:26 -05:00
4c272a20f6 Update prompt_sorin_setup
Moved ` ` after the virtual env info into the `zstyle` call and out of `RPROMPT`
2017-08-17 23:27:26 -05:00
5b244eeadb Update prompt_sorin_setup
Added python support
2017-08-17 23:27:26 -05:00
3194442759 Edit pyenv virtualenv-init check to support non-brew installations
If the pyenv virtualenv plugin is installed using the [pyenv-installer][1]
app script or directly via a [Git clone][2], then the pyenv-virtualenv-init
executable, that the `pyenv virtualenv-init` command uses, will not
exist in the user's PATH and therefore cannot be found using
`$commands[pyenv-virtualenv-init]`.
Installing the pyenv-virtualenv plugin in this manner is common among Linux users.

Using the pyenv `commands` command, which lists all commands pyenv can
run, we can find if the virtualenv-init command is available to pyenv
and subsequently the virtualenv plugin, without relying on
pyenv-virtualenv-init to exist in the user's PATH.

[1]: https://github.com/pyenv/pyenv-installer
[2]: https://github.com/pyenv/pyenv-virtualenv#installing-as-a-pyenv-plugin
2017-08-17 22:50:17 -05:00
9dfa8a67f6 Fix typo 2017-08-16 14:58:21 -07:00
e6af5f2e91 Fix typo 2017-08-16 13:52:40 -05:00
dd1133d32e prompt: remove unneeded prompt_opts from smiley prompt 2017-08-10 16:23:53 -07:00
2f867d6f22 Revert "prompt: remove prompt_sp from prompt_smiley_setup as it is not needed"
This reverts commit 24e5e49ff2.
2017-08-10 16:21:46 -07:00
24e5e49ff2 prompt: remove prompt_sp from prompt_smiley_setup as it is not needed 2017-08-10 13:39:49 -07:00
730fc4690e prompt: add sp option to prompt_setup functions
This was a change in zsh 5.4.1 where prompt_sp is now reset on calls to
prompt, unlike previous behavior where it was set by default. This
restores the previous default behavior.

Refs #1423, but is not a complete fix because we need to wait for
external prompts to update as well.
2017-08-10 11:23:30 -07:00
5e295b0835 [prompt] Remove spurious duplicate section
Remove duplication 'Prompt Display Length' section.
Also, adjust wrapping for `~`.
2017-08-09 15:07:38 -05:00
8d7e3e27c7 [python] Detect availability of virtualenv plugins as well as pyenv
Just having 'pyenv' available doesn't imply availability of virtualenv pyenv
plugins. Check for availability of virtualenv plugins as well before attempting
to use pyenv wrapper for virtualenv.
2017-08-04 13:46:14 -05:00
a60499f933 [general] Miscellaneous cleanup and formatting 2017-08-04 13:45:56 -05:00
7b5196ca66 ssh: check ssh-askpass presence under Linux
Check the presence of `ssh-askpass`, if `/usr/lib/ssh/x11-ssh-askpass`
is present I use it otherwise I require the passphrase in the standard
method
2017-08-01 10:05:58 -05:00
3f556400e7 Avoid setting TMPDIR and make sure all modules handle that properly
Fixes #1206
2017-07-28 10:24:51 -07:00
b3c7d21d31 Adjust GitHub templates with commented lines 2017-07-28 00:43:39 -05:00
591d087ccc [completion] Allow ignores for '/etc/hosts' entries to be dynamic
By keeping the variable `_etc_host_ignores` around, it can be resolved
lazily which is turn should allow selective ignores on a per invocation
basis.

Also, `'\#'` doesn't need to be added to `_etc_host_ignores` anymore.
It is enforced inline.
2017-07-27 12:43:22 -05:00
9b6bf4a7cd [completion] Support ignoring '/etc/hosts' entries in host completion
Entries from static '/etc/hosts' can now be ignored via 'zstyle' based
configuration. Both IP address and 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 ('~/.ssh/config') or history ('~/.ssh/ssh_hosts',
'~/.ssh/known_hosts' etc.).
2017-07-26 23:42:34 -05:00
19435b16ea [python] Improve and document virtualenvwrapper initialization flow
Changes:
* Simplify zstyle name `skip-virtualenvwrapper-init` to `initialize`
  avoiding double negation in name
* Always perform `eval (pyenv virtualenv-init -)` at initialization
* Prefer `virtualenvwrapper_lazy` over `virtualenvwrapper` when available
* Honor `VIRTUALENVWRAPPER_VIRTUALENV` if it is defined.
* Document about `VIRTUALENVWRAPPER_PYTHON` and `VIRTUALENVWRAPPER_VIRTUALENV`
  (this would be particularly important in macOS after recent homebrew update)
* Add additional documentation for `initialize` in _README.md_ and _zpreztorc_
* Add aliases `py2`, `py3` as shortcut for `python2`, `python3` respectively
2017-07-26 01:42:31 -05:00
7e7124e84a Update agnoster prompt to include security fix
Fixes #1267
2017-07-25 14:15:07 -07:00
09fe5191e7 Merge pull request #1404 from sorin-ionescu/jeffwidman-fix-typos
Fix typos
2017-07-25 03:08:45 -06:00
0fc49ac4f0 Fix typos 2017-07-25 03:07:59 -06:00
e364eac8f5 ssh: update README to reflect macOS changes 2017-07-24 11:56:48 -07:00
9bdc1b35d5 Migrate sorin prompt to zsh-async (#1385)
This includes some improvements by @indrajitr in addition to the main migration.

The first step was to avoid PROMPT and RPROMPT modification when possible (which may help resolve some other issues as well relating to zsh crashes with the sorin prompt) then update the displayed git information in a separate variable rather than a command.

We use zsh-async for creating and running background tasks. The sorin prompt uses it to update git info without blocking the prompt from displaying (because of how long it can take). In the future it may be worth moving more tasks and more prompts to using this.

The move to zsh-async does make the git prompt slower in some circumstances (most noticeable in large repos), but this is a worthwhile tradeoff to avoid the cache file which had a number of potential security holes.

We have also switched to adding zsh-async as an external submodule (rather than the version bundled with pure) which may cause some migration headaches, but it will be worth it in the long run.
2017-07-24 11:55:02 -07:00
9f1a41de90 Fix unbound keys in vicmd/viins mode
Previously I made a change to try and bind these unbound keys to the main
keymap in thoughts that in vicmd or viins mode it would fallback if it wasn't
bound in vicmd/viins mode. This turned out not to be the case.

Explicitly bind the keys in both viins and vicmd mode as works properly.
2017-07-24 10:26:19 -07:00
d6276e8025 [osx] Support custom keyword used by mand to open man pages in Dash.app
`zstyle` based customization is now avaialble in *zpreztorc*.
2017-07-23 13:19:04 -05:00
8846db9d4d [node] Always quote files when source-ing 2017-07-23 00:35:56 -05:00
eddbdd9416 Update submodules URLs to use git URLs explicitly
Even though GitHub redirects git calls based on user-agent, using git URLs
consistently is preferable.
2017-07-22 14:12:17 -05:00
24b710f545 [general] Fix incorrect fenced code indentation 2017-07-22 13:57:43 -05:00
a60fe47359 [utility] Refactor rsync_scp wrapper function and add completion support
Changes:
- Rename `rsync_scp_wrap` to `noremoteglob` and make it more generally usable
- Enable completion support for commands wrapped with `noremoteglob`
- Tighten up internal variable usages
- Update documentation for 'noremoteglob' function
2017-07-22 13:13:52 -05:00
17a59bada7 [prompt] Rename helper function promptpwd to prompt-pwd for consistency
Changes:
* In prezto, function names are hyphenated ('-') by convention,
  rename `promptpwd` to `prompt-pwd` accordingly.
* Unset local variable `current_pwd` proactively.
* Tweak additional documentation for `prompt-pwd`.
2017-07-22 13:13:00 -05:00
ac628c9059 [general] Switch code block formatting to use fence formatting
Changes:
* Indented code block doesn't support syntax highlighting, use fenced
formatting (```) instead for better syntax highlighting
* Wrap commands/functions in backticks
* Typo fixes
2017-07-22 13:11:29 -05:00
bcbaea27af [python] Detect actual pip command available for generating completion cache
We cannot always assume availability of `pip`, it can be `pip2` or `pip3`
instead. We detect the first available one and use it for generating the
completion cache.
2017-07-22 13:08:33 -05:00
608f291ad3 [utility] Reuse interactive aliases when 'safe-ops' is set
When `safe-ops` is set, we can reuse the aliases that are already available.
2017-07-21 09:35:14 -07:00
2db7f62c2b [homebrew] Add documentation for brewo and casko 2017-07-19 10:41:39 -07:00
46e34d30b8 module(homebrew): add outdated options for cask and brew commands 2017-07-19 08:26:18 -05:00
cb4be65d29 [utility] Update documentation for 'safe-ops'
Update formatting and wordings to be more consistent with rest of prezto
documentation.
2017-07-17 19:57:32 -05:00
f236344fc8 [utility] Remove premature call to compdef
This is a temporary fix to work-around a minor regression in 90071d3.
2017-07-15 00:54:15 -05:00
90071d3ad0 utility: fix completion for rsync and scp 2017-07-14 13:28:29 -07:00
c1a8fc0469 Cleanup spurious whitespace 2017-07-13 16:41:33 -05:00
b0c85eddf6 [command-not-found] Load brew 'command-not-found' if homebrew tap is available
Homebrew has _official_ tap that supports `command-not-found`.
Enable it when possible.
2017-07-12 20:51:44 -07:00
04bfb5131b fasd: fall back to submodule only if command is missing 2017-07-11 12:42:55 -07:00
19990c8025 Add fasd as an external module 2017-07-11 12:40:37 -07:00
d25b251ef7 git: Add revert to special action contexts
revert is very similar to cherry-pick and has a sequence variant.
2017-07-11 12:18:19 -07:00
0f3a5f745e Detach from tmux if attached, before attach (#1088)
If you are in a tmux session, and auto-start is enabled
Then you `sudo su` and then `su <username>` it will re-attach, in a loop.
This resolves that problem, by forcing a detach before a (re)attach.
2017-07-11 12:15:24 -07:00
ebae698f70 change alias to gfcr 2017-07-11 12:10:18 -07:00
d69070268a add alias for cloning a repo including all submodules 2017-07-11 12:10:18 -07:00
86de7a8d2e Small editorconfig file cleanup 2017-07-11 12:07:09 -07:00
1221e4030d Add a .editorconfig file to setup tabstyle preferences
With editors that support it it will setup preferences so that it
will use 2 spaces as the indent, except in .gitignore and .gitmodules
which in our files use tabs.

For more info see http://EditorConfig.org
2017-07-11 12:05:16 -07:00
17bc7530ba Update documentation on safeops 2017-07-11 11:58:56 -07:00
aad91beb3c [utility] Move the safeops aliases into their own section and add XXi variants 2017-07-11 11:52:47 -07:00
2a75fba6a8 [utility] Add safe-ops zstyle option to disable safe rm/cp/ln/mv
Currently rm/cp/ln/mv are aliased to rm/cp/ln/mv -i so that it will
prompt before removing files.

Some people would not like this functionality and wish for an easy way to
disable it. This adds a new option:

zstyle ':prezto:module:utility' safe-ops yes/no

It is enabled by default even if zstyle is not set, but can be set to no
to disable these aliases.

This should resolve issue #205
2017-07-11 11:48:05 -07:00
6e1f4ddd19 [completion] Minor cleanup of zstyle completion 'tag-order'
De-duplicate common zstyle 'tag-order' for ssh, scp and rsync.
2017-07-10 10:47:54 -07:00
7d109fb3fa [editor] Ensure unbound_keys is defined as an array
Somewhere around zsh 5.1, there was a change which turned typeset (and
most likely local) into a keyword. In older versions of zsh, using
`local x=()` will cause the () to be treated as a glob qualifier.

Fixes #1373
2017-07-10 10:30:23 -07:00
899c176942 python: add ubuntu locations for virtualenvwrapper.sh 2017-07-10 00:03:36 -07:00
3f99519021 Prefer evaluation over test for arithmetic expression
Usage of `(( ... ))` over `[[ ... ]]` is preferred for arithmetic expression
since the former is less error prone.

Also, unset local variable whenever possible.
2017-07-08 00:32:31 -07:00
e3520b737f [editor] Fix undefined results with unbound keys in viins/vicmd
Bind the remaining unbound keys in the main mode so that they
don't result in undefined functionality when pressed. (Often this
will change the casing of one/most/all of the characters you've
typed or even stranger things). In emacs mode this usually just
inserts a tilde, but this will fix that as well so nothing happens
when unbound keys are pressed.

Since there isn't any binding which does "nothing", create a noop
ZLE widget and bind them to that.

The user or other modules are still able to override these bindings
either by overriding the main keymap or setting a keymap in one
of the other modes which will take precedence over the main fallback.
2017-07-07 14:10:54 -07:00
db48a22c74 gpg: fix enable-ssh-support detection
That line may be commented in the config file.
2017-07-07 13:54:19 -07:00
e6136a517b [git] Fix 'git-hub-shorten-url' helper
Changes:
- Use git.io over 'https'
- Add extra check to conform to *.github.com URLs
- Use built-in _urls function for completion
- Update readme with GitHub blog URL
2017-07-07 13:52:17 -07:00
7d5beeab51 Add comments into each of the function files to make them easier to find 2017-07-06 16:13:36 -07:00
a70bce3ea6 Ensure we use the same function definition syntax everywhere 2017-07-06 16:13:36 -07:00
75a60bc7bf [editor] Add bindkey-all function to show all bound keys (#1358)
* [editor] Add bindkey-all function to show all bound keys

Function which allows you to see all the bound keys for all of
the different keymaps. It does accept arguments and passes them
through to bindkey -m "$keymap" so you could set a shortcut to
all keymaps as well if you wished.

Makes it much easier to see and grep what keys are bound to each of
the different keymaps.

When no arguments are given it will print keymap headers to stderr,
if given arguments it will not print anything extra to the screen.

* [editor] Update README to include information about bindkey-all funct.
2017-07-05 23:05:31 -07:00
5cd3380d9d [prompt/sorin] Fix branch code exploit vulnerability
Escape all $ except the first $. Escape all backtick `'s. This prevents
variable names or shell expansions placed as branch names from
remotely exploiting code.

Fixes issue #1267 for sorin prompt.
2017-07-05 13:06:36 -07:00
c6124d4d37 Updater: fix bug regarding source init in new updater logic 2017-07-05 11:44:26 -07:00
09b333eb41 Fix README example on tmux's default session name 2017-07-03 17:44:14 -07:00
a876890afd [utility] scp/rsync glob local paths but don't glob remote paths
Adds a function which wraps rsync and scp so that remote paths are not globbed
but local paths are globbed. This is because the programs have their own
globbing for remote paths. The wrap function globs args starting in / and ./
and doesn't glob paths with : in it as these are interpreted as remote paths
by these programs unless the path starts with / or ./

Fixes issue #1125
2017-07-03 17:20:34 -07:00
dbe9a5ea28 [editor] set forward/backward word for Ctrl+Right Ctrl+Left
Set forward/backward word to be mapped the same as they are in vim,
instead of having weird functionality when unset.
2017-07-03 17:18:25 -07:00
5ef10f7658 Fixed ssh-add not using SSH_ASKPASS 2017-06-30 11:28:17 -07:00
87868441eb [zprezto-update] Add convenience function to update zprezto (#1344)
* [zprezto-update] Add convenience function to update zprezto

This function checks if there is any update to zprezto, and if so
will pull in the changes. It will not attempt a pull unless
it is fastforwardable. It also makes sure the user is on the master
branch before attempting.

* [zprezto-update] Improve resilience of the function

Better error checking of status of the git repository
and better error producing.

Fit columns into mostly 80 width and add a missing printf
argument.

Use ( ) around the function so changing directory does not affect
the outer scope.

* [README] Add instructions on using zprezto-update function
2017-06-29 23:26:53 -07:00
eb47b45a0d [CONTRUBITING] Add section on using a secondary devel directory
Add a section on how to use a separate directory than your normal
ZDOTDIR for development with its own zprezto.
2017-06-26 15:39:55 -07:00
a4ff6acd56 [runcoms/zprofile+zshenv] Ensure TMPDIR is always set
In some cases TMPDIR may not be set, in which case it could cause issues
for zsh modules.

This change was prompted by issue #1331.

Also when creating a missing TMPDIR, use mkdir --mode=700 instead
of creating the directory and then chmoding it afterward.
2017-06-26 14:58:37 -07:00
e52523204b Remove redundant style rules from CONTRIBUTING.md 2017-06-26 14:44:00 -07:00
961326f8e9 [editor] Set Delete key in vicmd mode to delete character
Delete key deletes character in vimcmd cmd mode instead of weird
default functionality. The default functionality in vicmd mode
is the Delete key will change the case of many of the characters
on the screen, which is not the default thing that vim does.

This could be confusing and frustrating to users, so set it to delete
a character instead.
2017-06-23 13:37:48 -07:00
7fe28574a8 [syntax-highlighting] Bump external repository to get bug fixes
ad522a0 driver: Fix printing error message to file when cannot resolve highlighters directory location
73cb832 'main': Highlight mismatched 'if'/'fi'.
be083d7 driver: Improve «unhandled ZLE widget 'foo'» error message.
237f89a 'main': Don't consider «$*» a glob.
835fec7 workaround for PAT_STATIC bug in zsh
9523d6d tests: zsh 5.4-to-be compatibility: Set a new "I am shooting myself in the foot" option.
aac4a44 driver: Fix duplicated slash in error message
4f49c4a docs: Update zplug install instruction
5efd062 tests: Add a regression test for issue #392 (aliases beginning with a '+' are lost).
67be621 tests: Move some code in preparation for next commit. No functional change.
74949c2 driver: Don't undefine aliases that begin with a '+', to workaround an upstream bug.
8d5afe4 driver: Be immune to 'alias' having been redefined.
76ea9e1 'main': Highlight possible history expansions in double-quoted strings.
50fbb5f docs: Update Homebrew link.
2dce602 driver: Be immune to weird aliases in the calling scope.
347cf0e 'main': Add regression test for previous commit.
5625e30 'main': Fix bug: no start_pos=$end_pos in comment short path
fed37a9 'main': Fix a bug concerning command word with embedded colon-space sequences.
626c034 Add FreeBSD port
3d74aa4 Add Fedora package
5398949 changelog: Update for changes pulled out of 0.5.x.
2017-06-22 10:35:44 -07:00
d101b0a319 [autosuggestions] Bump external repository to version v0.4.0
14179d8 Bump version
281ed9b v0.4.0 changelog updates
83129dd Make asynchronous suggestions disabled by default
a2f0ffb Enabling suggestions should not fetch a suggestion if buffer is empty
7d4a1d9 Add enable/disable/toggle widgets to disable suggestion functionality
e1959d0 Put in a general fix for #219 - Handling input from `zle -U`
c52c428 Fix issues with widgets wrapped by other plugins
ea505b0 Add a spec for unlisted widgets fetching a new suggestion
502fb4a Make tmux_socket_name public so you can access easily from binding.pry
ce36224 Use pry-byebug instead of pry for more functionality
39762ec Set up circle ci
468b740 Test should be passing block to RSpec wait_for
c9a51e0 Handle dashes at the beginning of commands
48a21bf [cleanup] Remove an extra newline
4afbbba We only need to run the feature detection if starting async
e3fa4e4 Don't do anything but re-bind widgets on each precmd
2cd99e6 Add a test for modifying widget list vars after sourcing plugin
c70d685 Clean up widget list spec
255359d Use `+=` to be a bit more true to the spec language
4321fc0 We need to bind on every precmd to ensure we wrap other wrappers
75e8505 Gracefully handle being sourced multiple times
a0fcd81 Destroy zpty on load if it already exists
39ca3da Use a different name for feature detection zpty
dcce973 Remove support for long-deprecated options
0c940e7 Don't bind any zle-* methods
23ef16c Do not show suggestions if the buffer is empty
9381445 Fix tests
c4bfd8e Need to prevent zpty feature detection from HUPing existing zptys
c959408 Only wait a max of 2 seconds for content to match after clearing screen
06fca77 Readme updates for v0.4.0
9feac57 Do not show any error output from async zpty server process
ed8056c Lots of async changes
38eb7cd Update license date
64e7ec5 Rename internal term session method
98f926d Clean up TerminalSession constructor a bit
51e8755 TerminalSession methods return self to support chaining
5151adf Make TerminalSession#clear block until the screen is cleared
2c465a9 Rename async pty name config var
e3eb286 Lots of little async cleanups
c342587 Wait for the terminal.clear to go through before continuing
89dd69d Add pry gem for debugging support
40bb2e7 little cleanup
16666da Handle versions of zsh where zpty does not set REPLY to fd of opened pty
f33b605 Move async initialization into `start` function to keep in one place
78ba071 Add feature detection
3f57198 Only bind widgets once, on initial sourcing
2dbd261 Allow configuring of zsh binary to run integration tests against
6c5cd42 Go back to tracking last pid because `kill %1` didn't seem to be working
54e1eee Optimize case where manually typing in a suggestion
21d9eda Wrap suggestion fetch command in parens to actually run in background
50e6832 Escape the prefix passed into the match_prev_cmd strategy
0305908 Revert `fc` usage in calculating suggestion
8e06a54 Add test for string with "\n" in it
b3208b0 Pass the chosen strategy into the suggestion server pty
ab27425 Quote the suggestion to support sh_split_word option
e5a5b0c Output only newlines in the pty
0337005 Disable word splitting while reading to preserve whitespace
b530b0c Use `zpty -r` with pattern matching to fetch suggestion
5c891af Reset zsh options inside pty (from zsh-async)
e33eb57 Send only the prefix to the suggestion server
fba20b0 Use %1 instead of tracking pid
0308ed7 Rename worker to server
e72c2d8 add a bunch of comments
ab8f295 First pass at async functionality
debbffc Add rspec test around accepting suggestions
4850119 Add separate test task for RSpec
c22ab0e Implement suggestion integration tests in RSpec + tmux
07a6768 Add TerminalSession helper for managing a tmux session
e6591d5 Add RSpec for high-level integration testing
af671fb Add ruby settings to editor config
2017-06-22 10:35:44 -07:00
f8f4953dce [completion] Bump external repository to version 0.25.0
8cdf60b Updated rkt commands and arguments
f9d7d9d Implemented autocompletion for rkt pods and images (Fixes #465)
9feab39 Added completion for yarn
a63a098 Update completion for mix, add completion for mix test, fix completion for mix help
6285e0e Add completions for bitcoin-cli
0ed2e86 Set proper description for gist -r
df5a3a1 Try to follow the style guide
d7a2972 Add gist completion for read flag
b0cb2ad Added _rclone
b7c11f4 drop ripgrep completion
907cba3 Update repository infos
ccb53f4 Support newer versions of OpenSSL
f02dc8f add licence information
ceaff68 Add completion for ffind
2017-06-22 10:35:44 -07:00
7c172fc9a7 Fix #1337 by removing top alias to htop. (#1341)
Fixes #1337
2017-06-21 14:37:03 -07:00
ecc34e0051 Move virtualenv auto-switch cwd hook optional loader out from inside unrelated if statement (#1338) 2017-06-21 12:30:57 -07:00
1c041c0433 fixed vivisual key binding (#1148)
Fixes #1236
2017-06-19 15:52:54 -07:00
d9a1380263 Change print to printf in init.zsh error (#1335)
When my zsh had issues, and I was debugging it, this line would
end up being run but no output would be made to the screen.

Changing it from print to printf caused the error to properly be
displayed.
2017-06-19 14:18:14 -07:00
a75c63768c Add git aliases for signing commits (#1126) 2017-06-19 01:40:44 -07:00
a0541ce7a5 Default sorin theme to /tmp when TMPDIR is not set
Fixes #1331
2017-06-16 10:37:54 -07:00
2f20a80f72 sorin theme: Use a proper temp file for async data 2017-06-13 10:36:35 -07:00
5bcc223e95 zprofile: Use non-random static TMPDIR
Closes #1319
2017-06-13 10:36:35 -07:00
14670f40f0 replace the deprecated abs call in the pacu alias. 2017-06-08 11:10:07 -07:00
7ae7a0266c Update python docs to include info on virtualenv auto-switching 2017-05-30 17:29:32 -07:00
08e39a587f Python virtualenv auto workon cwd hook (#1300)
* Command to activate virtualenvs on changing directory

Enables automatic activation of a virtualenv when jumping into a directory
This is done by looking in the current directory for a file or directory
named `.venv`. If it's not found in the current directory its parents will
also be examined. `.venv` can be either:
    1. A file containing the name of a virtualenv found in $WORKON_HOME
    2. A directory containing bin/activate (meaning that the directory is
       assumed to be a virtualenv.)
If $WORKON_HOME is set it is assumed that virtualenvwrapper is installed
and the `workon` command will be issued.
2017-05-30 17:26:18 -07:00
658fffb3a6 Allow ssh module to run on OSX 2017-05-05 09:58:19 -07:00
6975b119b6 Change the zstyle config name for #607 2017-05-02 18:02:28 -07:00
d02c2951b3 Add the ability to specify tmux session name 2017-05-02 17:57:14 -07:00
871b15663c Cache the completion for a quicker startup
The original idea was by @samjonester in #1210. This version aims to avoid
relying on the stat or date programs because they have different flags depending
on the OS and if it uses BSD or GNU coreutils.
2017-05-02 17:50:24 -07:00
42d9b78907 broken $path and $PATH if nodenv exists (#1315)
This change fixes a bug where no command can be found
(e.g. `ls`) due to the $path array being set to two elements,
one of them with all the previous paths separated by spaces.
This makes zsh break $PATH, instead of colons there are
spaces, and nothing works.

The idea is to have the array be set leveraging the word splitting
that we usually are told to avoid by quoting.
2017-05-02 11:38:19 -07:00
2794f95d3e Use the lazy-loaded version of virtualenvwrapper if available
This shouldn't cause problems for anyone and should improve startup times for
anyone using python with virtualenvwrapper because it will wait for the first
command to load rather than right away.
2017-05-02 10:08:06 -07:00
46a1ffaf7e Add gbr and gbR aliases to module readme 2017-05-01 09:43:12 -07:00
3d7a8c2870 Add some new git aliases, modify a few more. (#1301)
* Add some new git aliases, modify a few more.
* Add `gbV` command to show more verbose git branch info.
* Add `gcam` to make it possible to execute `gca; gcm '<your message
  here>'` more simply.
* Add `gii` command to temporarily untrack (ignore) a file.
* Add `giI` command to uningore a file.
* Change alias of `gbl` to `gbv`. Personally, I think aliases that
  include a switch in the command should include the switch in the alias
  if possible.  This makes them easier to remember.
* Change alias of `gbL` to `gba`. I think the `-a` switch is more
  salient to what this alias does than the `-v`.  Furthermore, with this
  PR there are already `gbv` and `gbV` aliases, so those are out.
* Change implementation of `gCl` alias to use built-in capabilities of
  git, rather than sed.
* Rename gbx and gbX to gbd and gbD respectively
* Mostly revert alias changes
* Add gbr and gbR aliases to gbm and gbM commands
2017-05-01 09:41:17 -07:00
1050a0a290 Add better support for pyenv virtualenvs 2017-05-01 01:04:16 -07:00
723b3812e1 Convert long-pwd to pwd-length 2017-04-27 13:33:40 -07:00
7c509a264f Add zstyle option to show pwd in long format 2017-04-26 11:30:10 -07:00
850ad42c96 rsync: Update reference to Bombich's rsync page
Seems like Bombich's rsync page moved with the previous link doing 404.
Adjusted to fix this.
2017-04-26 13:02:08 -05:00
4f87376b50 Add support for 'pip', 'pip2', 'pip3' completion
Since `pip completion --zsh` might be slow, we cache it beforehand.
The implementation is along the lines of 'npm' completion in 'node' module.
2017-04-23 23:03:53 -05:00
876f426581 Update ssh module for multi session hosts
create ssh_agent_env with current user id in file name to avoid collisions with other users
create ssh_agent_sock with current user id in file name to avoid collisions with other users
2017-04-18 02:48:27 -07:00
f15557159a New alias gfa=git fetch --all for git module
Also includes an updated README.md !
2017-04-18 02:44:01 -07:00
81b41d2367 Add utility alias for pydf 2017-04-18 02:37:23 -07:00
cf7d3cffbd Add perl-info function & plenv subcommand aliases (#1303)
* Add perl-info function
* Add alias for plenv subcommands
* Load perlbrew if needed
* Load plenv if needed
* Use PERLBREW_ROOT as priority to detect Perlbrew
2017-04-18 01:57:35 -07:00
fb37539f43 archive: add archive function 2017-04-17 22:44:47 -07:00
7242b4ed49 archive: add support for *.jar files (#1302) 2017-04-17 22:04:28 -07:00
c38c2dd909 Move python-info call in paradox from preexec to precmd 2017-04-15 16:44:05 -07:00
600b4cc9e6 Add missing alias to utility README 2017-04-15 14:16:15 -07:00
38f0d2f34e Rework diff function
This removes --unified from the default options to make it possible to pass -y
without worrying about conflicting output formats.

diffu has also been added as an alias to make it easier to get output as a
unified diff.

Fixes #1231
2017-04-15 14:06:07 -07:00
40853f23c2 Remove additional newlines in issue and pull request templates 2017-04-15 01:47:58 -07:00
a622652f73 Add initial issue and pull request templates 2017-04-15 01:45:46 -07:00
a8ce3da782 Add note to CONTRIBUTING.md about zstyle 2017-04-15 01:36:15 -07:00
19d11ab1d0 Add code style to CONTRIBUTING.md
Closes #1296
2017-04-15 01:14:12 -07:00
e606b09c9e Update is-callable to also check builtins
Fixes #1037
2017-04-13 04:05:20 -07:00
d035e4cf1e Fix indentation in README 2017-04-13 03:27:59 -07:00
8a4333103d Feat (docker): add docker aliases (#1147)
Thanks to @malikoth and @saoula for their input.
2017-04-13 03:18:54 -07:00
bb168c5881 Doc (ruby): add doc on bundle clean alias 2017-04-13 03:04:21 -07:00
7c64584629 Add bundle clean alias 2017-04-13 03:04:21 -07:00
7011031a87 Don't use a deprecated argument as a python example
Thanks to @jeffwidman for pointing this out

Closes #1141
2017-04-13 03:02:07 -07:00
2e20eb8571 Add note about working around preexisting runcoms
Closes #955
2017-04-13 02:53:07 -07:00
5c0e68f75f completion: Cap max-errors at 7 to avoid hanging (#953)
7 is pretty arbitrarily chosen, but seems like a reasonable tradeoff, at
least the completion no longer shows symptoms of exponential
time-growth when trying to complete something completely wrong.

This fixes #946.
2017-04-13 02:47:51 -07:00
1c0f95c08e Allow syntax highlighting pattern styles (#1192) 2017-04-13 02:25:45 -07:00
fb6f3f7ee9 Feat (aliases): add aliases for git flow 2017-04-13 02:23:05 -07:00
95036c908c Update fasd README with basic installation information 2017-04-13 01:55:02 -07:00
9a70a1675c Remove manb from completion filename 2017-04-13 01:51:15 -07:00
8655cd543b Ensure extendedglob is set in promptpwd 2017-04-13 01:16:44 -07:00
60c433d4ce Move common promptpwd code to external function 2017-04-13 01:15:01 -07:00
b963484fe7 Only try to run python-info if it exists for the paradox prompt 2017-04-11 15:12:09 -07:00
ee249e50ee FIXED: syntax error in osx module tab function 2017-04-11 10:23:21 -07:00
412af29808 Merge pull request #1272 from sorin-ionescu/issue/1246-ps-context-config
Adds additional support for PS prompt context expansion
2017-04-11 00:14:08 -05:00
94708f6b50 Fix path in node module 2017-04-10 11:43:17 -07:00
8dafaae5a4 Use patterns from ruby module for initializing nodenv 2017-04-10 11:36:56 -07:00
e413ef5a97 Add support for iTerm2 v3 in tab function 2017-04-10 11:30:27 -07:00
909006638d Bump license years and tidy up readme (#1273) 2017-04-05 09:34:31 -07:00
464a8d20a1 utility module: fix/improve colordiff call in diff
The new call is compatible with colordiff v1.0.8 - v.1.0.15 (might be
compatible with even earlier versions, but not tested), while the
original one breaks down under v1.0.14 and v1.0.15. See
https://github.com/daveewart/colordiff/issues/22.
2017-04-05 00:23:37 -07:00
95d19b37c1 Added support for python venv display in paradox prompt 2017-04-04 23:52:12 -07:00
c0049855c5 Added option to skip git aliases definition
Fixes #947
2017-04-04 23:43:46 -07:00
27c2ccd8b9 Update external prompt modules 2017-04-04 23:00:28 -07:00
fd0b627a8b Update zsh-users submodules to latest stable versions 2017-04-04 23:00:28 -07:00
076e29e97d Update zsh-autosuggestions submodule location
Thanks to @naibaf0. Closes #1096.
2017-04-04 23:00:28 -07:00
013668f484 Improve and simplify titling functions.
Multiplexer titles can be set independent of window and tab titles.
Add auto-title always option to have dynamic titling inside terminal
multiplexers. Setting auto-title to yes continues to ignore dynamic
titling inside terminal multiplexers.

This patch should not alter behavior under Apple terminals.
2017-04-04 22:27:13 -07:00
ddfc870f9a Use less destructive git push --force-with-lease. 2017-04-04 22:06:57 -07:00
65b05c0220 Add notice about potential shadowing of the gb command (#1124) 2017-04-04 22:03:47 -07:00
12d48dfcf9 Remove extra use of grep in git-hub-shorten-url (#904) 2017-04-04 21:36:28 -07:00
fb689449a7 Prefer $(COMMAND) syntax over backticks (#1012) 2017-04-04 21:30:48 -07:00
483447082b Add nodenv support to Node.js module
- Implementation from https://github.com/sorin-ionescu/prezto/pull/1001
- Documentation from https://github.com/sorin-ionescu/prezto/pull/1178
2017-04-04 21:26:33 -07:00
2c1ad5bed1 Avoid unsetting nonexistent variables (#1075) 2017-04-04 21:24:50 -07:00
4e35f701ca Add "sa" alias to make it easy to search aliases 2017-04-04 21:11:36 -07:00
3a6ae0fc6c Change $TMPDIR for non-interactive shells
This commit changes the way $TMPDIR is set by using `mktemp` rather
than a fixed string.
2017-04-04 20:49:00 -07:00
dcd8596192 Don't load pfunctions from vi swap files 2017-04-04 08:46:06 -07:00
a7729561e8 Add support for skipping VIRTUALENVWRAPPER init in modules/python (#598)
* Support skip-virtualenvwrapper-init zstyle in python module to avoid auto-sourcing of virtualenvwrapper.sh
* Don't overwrite the WORKON_HOME env var if the user has already set it
2017-04-03 23:06:02 -07:00
5271af8180 Ensure code blocks are formatted properly for GitHub (#1271) 2017-04-03 13:29:58 -07:00
8913bcccd2 Use python3 for http-serve alias if available (#1193) 2017-04-03 13:27:06 -07:00
2ba060a426 update brewu method
Homebrew decided to not change the behaviour of `brew upgrade` so
`brew upgrade --all` is equivalent to `brew upgrade` without any other
arguments (so the `--all` is a no-op and can be removed).
2017-04-03 13:12:15 -07:00
8820b71f37 Update pure prompt to v1.5.2
This fixes a security issue with malicious branch names
2017-04-03 11:42:05 -07:00
0be0ff565a Set ZPREZTODIR to ${0:h} 2017-04-03 11:37:13 -07:00
7346efd206 Allow setting ZPREZTODIR to make prezto easier to integrate with 2017-04-03 11:37:13 -07:00
b38ced856a Adds additional support for PS prompt context expansion 2017-04-02 14:09:58 -05:00
4f19700919 Add missing syntax highlighter 2016-03-02 23:29:51 -05:00
c8b8397728 [Fix #532] Integrate autosuggestions 2016-03-02 16:31:33 -05:00
8bd720b0c7 Update pure theme 2016-02-28 22:32:40 -05:00
38baf39513 Update external syntax-highlighting 2016-02-28 22:32:12 -05:00
e36eed9c8a Update external history-substring-search 2016-02-28 22:31:46 -05:00
64aa907087 Update external completions 2016-02-28 22:31:21 -05:00
7227c4f0be Fix unarchive for .deb which uses xz, and absolute paths 2015-11-12 12:01:37 -05:00
2ad1b2f5b1 Load add-zsh-hook in GPG module
Fixes this error:

    ~/.zprezto/modules/gpg/init.zsh:43: command not found: add-zsh-hook
2015-11-12 11:49:41 -05:00
a7e4b447b3 Fix typo in yum module README 2015-11-11 22:58:22 -05:00
02b3d329ac Fix typo in dnf module README 2015-11-11 22:58:22 -05:00
e641c2111a [Fix #940] Update agnoster theme remote URL 2015-11-11 22:56:39 -05:00
165879d4b3 Update pure theme 2015-11-09 02:09:48 -05:00
de9ed0610b Update external syntax-highlighting 2015-11-09 02:09:30 -05:00
c05fbedd8d Update external history-substring-search 2015-11-09 02:08:59 -05:00
e137068cac Update external completions 2015-11-09 02:08:40 -05:00
f2a826e963 Add preview function to sorin theme 2015-05-31 16:51:29 -04:00
bdec6c4e20 Redraw only when called from subprocess 2015-05-31 16:50:03 -04:00
ef634f38a4 Replace signal TERM with KILL 2015-05-31 16:47:16 -04:00
b761261b11 Replace signal USR1 with WINCH 2015-05-31 16:46:42 -04:00
02c5f776fc [Fix #892] Symlink prompt pure async dependency 2015-05-28 20:24:58 -04:00
a275db55d6 Fix MacPorts typo 2015-05-26 22:12:55 -04:00
b6efdc1ea4 Add DNF module
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2015-05-26 22:12:55 -04:00
904c94469e Consolidate brew update and upgrade aliases 2015-05-26 22:12:55 -04:00
159418835f Add Linux as as requirement 2015-05-25 22:01:57 -04:00
f7ea78078f Update pure theme 2015-05-25 21:58:43 -04:00
fe64f91f52 Update sorin screenshot 2015-05-19 18:25:40 -04:00
b46769149b Remove Emacs indicator
The user always knows that he is inside Emacs making the indicator
unnecessary.
2015-05-19 18:25:40 -04:00
999f0d1a74 Use numerical colors 2015-05-19 18:25:40 -04:00
f6a2c73423 Remove 'git:' prefix 2015-05-19 18:25:40 -04:00
a1dea6ae43 Get Git status asynchronously 2015-05-19 18:25:39 -04:00
cd5067668c Substitute command when alias is undefined 2015-05-19 18:24:04 -04:00
6a812ed36b Correct typos in completion module 2015-05-19 17:50:40 -04:00
ca03fd670a Skip setting terminal title inside Emacs 2015-05-19 17:49:46 -04:00
08676a273e Update pure theme 2015-05-03 13:44:41 -04:00
20766138cb Update external history-substring-search 2015-05-03 13:44:41 -04:00
e9f86bf4db Update the link to iTerm2 and tmux integration
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2015-05-03 13:44:40 -04:00
c98da90662 Update external history-substring-search 2015-04-07 19:24:44 -04:00
ac8bc74ef0 Update pure theme 2015-04-01 16:32:38 -04:00
ccca57f2ac Update external history-substring-search 2015-04-01 16:32:38 -04:00
4016f0c7c1 Update external completions 2015-04-01 16:32:37 -04:00
c34098af20 Update copyright 2015-03-08 23:38:06 -04:00
ee0b02464c [Fix #819] Check for node as a last resort 2015-02-24 15:29:25 -05:00
e144abb285 Fix node-module
The change recently introduced for #777 was actually breaking the module
completely, as it was only loaded if neither `node` nor `nvm`
were available.
2015-02-23 12:11:21 -05:00
b41f485528 Add missing parenthesis
The bug was introduced in 933c61b.
2015-02-22 23:52:41 -05:00
ab45ade380 [Fix #801] Make $TMPPREFIX a file path 2015-02-22 21:56:12 -05:00
1292587f95 [Fix #777] Check for nvm or node 2015-02-22 21:53:40 -05:00
933c61b8f1 [Fix #776] Support GNU top 2015-02-22 21:42:11 -05:00
88aee30ae8 [Fix #762] Use $LOGNAME instead of $USER
$USER is deprecated.
2015-02-13 00:00:27 -05:00
4411c95a83 Update pure theme 2015-02-12 19:17:38 -05:00
62d87cae32 Update external completions 2015-02-12 19:15:47 -05:00
d43bcb9720 Revert "Remove extra git-dir call in git-info and use git_dir variable instead"
This reverts commit 3012c0984b.
2014-12-08 18:21:00 -05:00
ba351df9fb [Fix #748] Set grep color for BSD and GNU 2014-12-08 18:13:25 -05:00
925b94b6e2 Fix Powerline unicode characters
Branch & separator characters are updated to display properly.
2014-12-08 18:02:22 -05:00
c171621747 Fix issue with several themes where errors occur
if the git module is not loaded.
2014-12-08 17:58:15 -05:00
0148ee6a4d Check for S.gpg-agent to see if gpg-agent is running
From GnuPG changelog:

>  Removed the GPG_AGENT_INFO related code.  GnuPG does now
>  always use a fixed socket name in its home directory.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-12-08 17:54:41 -05:00
fc3f8025ea Add a preexec hook to set the GPG-Agent TTY
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-12-08 16:38:20 -05:00
9539341e1e [Fix #732] Replace $GREP_OPTIONS with an alias 2014-11-24 13:05:34 -05:00
13d1ed160e Use $GNUPGHOME if it exists 2014-11-22 14:51:06 -05:00
2a33581e80 [Fix #724] Unquote variable
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-15 14:16:00 -05:00
3dd4cbc3c0 Fix typo
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-14 17:24:07 -05:00
7a92046c86 Create a new tmux session if none exists 2014-11-13 19:40:41 -05:00
3012c0984b Remove extra git-dir call in git-info and use git_dir variable instead 2014-11-12 19:19:19 -05:00
00a5639e65 Enable iTerm2 tmux integration
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-12 18:19:58 -05:00
3cb1f7c4c9 Inform how to add SSH identities to Keychain
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-11 22:52:40 -05:00
90eae2b491 If a default Ruby is set, switch to it
Set PATH variables to allow gems such as Bundler to be found and for the
`ruby-info` function to properly work.

A default Ruby must be set in ~/.ruby-version; for more information, see
https://github.com/postmodern/chruby#default-ruby.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-11 22:52:40 -05:00
d349c1cec7 Convert the PeepCode theme to git-info 2014-11-11 20:51:47 -05:00
a7a4912940 Add paradox theme 2014-11-11 20:51:46 -05:00
82710c29fc Fix theme function declaration style 2014-11-11 20:51:46 -05:00
9f82926f6e Add pure theme 2014-11-11 20:51:46 -05:00
61e91b8fb0 Add agnoster theme 2014-11-11 20:51:46 -05:00
967c91a351 Add powerline theme 2014-11-11 20:51:46 -05:00
087fce8548 Update sorin theme screenshot 2014-11-11 20:51:45 -05:00
2ae905a625 Indicate inside Emacs 2014-11-11 20:51:45 -05:00
19fc31c342 Indicate SSH connections 2014-11-11 20:51:45 -05:00
e76df6022d Add cloud theme
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-11 20:51:44 -05:00
c2d62c3b47 Add ruby-info to smiley theme 2014-11-11 20:51:44 -05:00
03336db523 Add smiley theme
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-11 20:51:44 -05:00
1bc4235a5e Escape '%' in path 2014-11-11 20:51:44 -05:00
c078c47c9d Add damoekri theme
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-11 20:51:44 -05:00
0bede677e6 Add kylewest theme 2014-11-11 20:51:44 -05:00
ad09f29fd5 Add skwp theme 2014-11-11 20:51:42 -05:00
567506f7e7 Update giddie theme
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-11-05 22:52:38 -05:00
13ed3a1bf7 Add giddie theme 2014-11-05 22:52:38 -05:00
6f9c1666e1 Use short apothegms only in fortune 2014-11-05 17:43:43 -05:00
ab7f697734 [Fix #713] Set prompt theme off in unsupported terminal 2014-11-05 17:41:36 -05:00
d020d34e59 Fix node-info to show right node version
Currently, node-info shows nothing if $version is different than 'none'.
2014-10-19 17:21:54 +07:00
17a6124b43 Fix git log pretty format argument 2014-10-18 16:32:49 +02:00
3c47c57c87 [Fix #698] Describe module in README the same as in code 2014-10-15 18:54:24 -04:00
ff0cdd3ed7 Fix typo in Perl module readme 2014-10-15 18:49:47 -04:00
b948e3630b Load Homebrew installed NVM 2014-10-13 11:57:20 -04:00
55e4db9429 Enable 'acls', 'xattrs' support in rsync whenever available
rsync has support for these available in most cases and isn't
specific to Mac OS X any more.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-12 19:20:55 -04:00
53bd555c6d Try lesspipe in addition to lesspipe.sh for LESSOPEN
Debian based systems have `lesspipe`, without '.sh' suffix.
Since `$commands` is an associative array, we do index search and set
the input preprocessor on first match.
2014-10-10 19:00:46 -04:00
86ba5b69d3 Ignore case in filenames
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-10 18:55:26 -04:00
5791c07d48 Only print fortunes in terminals 2014-10-10 18:53:44 -04:00
34a50c2550 Add homebrew-cask aliases to homebrew module
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-10 18:51:14 -04:00
417b9d429d Update OPAM setup
Recent OPAM versions generate more elaborate setup code.
2014-10-10 18:38:32 -04:00
fea08d4e50 [Fix #669] Do not use lazy virtualenvwrapper
Lazy virtualenvwrapper completion crashes Zsh.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-10 18:35:33 -04:00
d3f1441481 [Fix #595] Simplify the handling of the Terminal.app proxy icon 2014-10-09 23:38:15 -04:00
a84ac5b002 Only one newline at end of file 2014-10-09 23:38:15 -04:00
10c33ec9a4 Convert tabs to spaces 2014-10-09 23:38:13 -04:00
9b1f39f267 [Fix #563] Control+Arrow keys are not in the terminfo database 2014-10-09 13:08:21 -04:00
36ade25eb6 [Fix #652] Execute abs with sudo 2014-10-09 00:02:56 -04:00
8f711d64b5 [Fix #594] Remove quotes surrounding associative array key 2014-10-06 23:36:33 -04:00
c4b50ec1a0 [Fix #635] Use $BROWSER to open node documentation 2014-10-06 18:02:45 -04:00
62198b0326 Display full command line on suggestion for the kill command
For the zsh suggestion for the 'kill' command, show full command line
(command: usually with arguments) instead of only the executable name (comm).
2014-10-06 17:03:53 -04:00
b4884d4d45 [Fix #626] Escape '%' in path 2014-10-06 16:54:21 -04:00
abfc4ab6e5 [Fix #648] Do not instruct users to call editor-info 2014-10-06 16:50:03 -04:00
657e8a16f4 [Fix #689] Use GPG_AGENT_INFO instead of GPG_AGENT_PID
GPG_AGENT_PID may not be defined. Also, source gpg-agent.env before
checking the PID.
2014-10-06 16:42:22 -04:00
ea25ccf62c Set default GPG_AGENT_PID for grep
If `GPG_AGENT_PID` is unset, grep will succeed if another gpg-agent is
running as it will match the string `gpg-agent` where the PID was an
empty string. Set a default value for grep to a value that will never
match if unset, i.e. -1.
2014-10-05 21:46:58 -04:00
3e88b8bcdc Set default SSH_AGENT_PID for grep
If `SSH_AGENT_PID` is unset, grep will succeed if another ssh-agent is
running as it will match the string `ssh-agent` where the PID was an
empty string. Set a default value for grep to a value that will never
match if unset, i.e. -1.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 21:44:20 -04:00
e892d7f3c7 Fix broken link to 256 color formatting blogpost
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 21:26:08 -04:00
4e4a6fcc63 Don't set node-info if version is 'none'
This is done to make it easier to not show node-info in themes
when no node version is currently in use. This is consistent with
how the Python module's python-info works.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 21:22:38 -04:00
3e8349ddde Use the x command for unrar and rar to preserve paths
unrar and rar will discard everything up to the file name when extracting
with `e`. This breaks extraction of archives that have files with duplicate
file names and ones where the paths are important. The `x` command
extracts with the full path instead.
2014-10-05 21:14:01 -04:00
fdb406f917 Fix typo 2014-10-05 21:12:54 -04:00
493bf302f6 Ensure dircolors uses sh syntax
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 21:12:54 -04:00
a217af99f3 Prezto only enables the main syntax highlighter
Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 21:12:53 -04:00
06cc5088aa [Fix #630] Zsh v4.3.17 is the minimum required 2014-10-05 21:12:42 -04:00
5088ca4839 Bump minimum supported Zsh to v4.3.11
zsh-syntax-highlighting requires this version.

Signed-off-by: Sorin Ionescu <sorin.ionescu@gmail.com>
2014-10-05 20:25:25 -04:00
0f696fc206 Update external syntax-highlighting 2014-10-05 20:16:26 -04:00
96bcf813b7 Update external history-substring-search 2014-10-05 20:15:43 -04:00
fe8f9a9b5b Update external completions 2014-10-05 20:14:25 -04:00
198 changed files with 6207 additions and 2312 deletions

9
.editorconfig Normal file
View File

@ -0,0 +1,9 @@
[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
[{.gitattributes,.gitignore,.gitmodules}]
indent_style = tab

24
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,24 @@
<!-- Please check if a similar issue already exists or has been closed before before opening your issue. -->
### Description
<!-- Provide a general description of the bug or feature -->
### Expected behavior
<!-- What you expected to happen -->
### Actual behavior
<!-- What actually happened -->
### Steps to Reproduce
1. [First Step]
2. [Second Step]
3. [and so on...]
### Versions
- Prezto commit:
- ZSH version:
- OS information:

10
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,10 @@
Please be sure to check out our [contributing guidelines](https://github.com/sorin-ionescu/prezto/blob/master/CONTRIBUTING.md)
before submitting your pull request.
Fixes #
## Proposed Changes
-
-
-

1
.gitignore vendored
View File

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

25
.gitmodules vendored
View File

@ -1,3 +1,6 @@
[submodule "modules/autosuggestions/external"]
path = modules/autosuggestions/external
url = https://github.com/zsh-users/zsh-autosuggestions.git
[submodule "modules/history-substring-search/external"]
path = modules/history-substring-search/external
url = https://github.com/zsh-users/zsh-history-substring-search.git
@ -7,6 +10,22 @@
[submodule "modules/completion/external"]
path = modules/completion/external
url = https://github.com/zsh-users/zsh-completions.git
[submodule "modules/opp/external"]
path = modules/opp/external
url = https://github.com/hchbaw/opp.zsh.git
[submodule "modules/prompt/external/powerline"]
path = modules/prompt/external/powerline
url = https://github.com/davidjrice/prezto_powerline.git
[submodule "modules/prompt/external/agnoster"]
path = modules/prompt/external/agnoster
url = https://github.com/agnoster/agnoster-zsh-theme.git
[submodule "modules/prompt/external/pure"]
path = modules/prompt/external/pure
url = https://github.com/sindresorhus/pure.git
[submodule "modules/fasd/external"]
path = modules/fasd/external
url = https://github.com/clvv/fasd.git
[submodule "modules/prompt/external/async"]
path = modules/prompt/external/async
url = https://github.com/mafredri/zsh-async.git
[submodule "modules/prompt/external/powerlevel10k"]
path = modules/prompt/external/powerlevel10k
url = https://github.com/romkatv/powerlevel10k.git
shallow = true

View File

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

20
LICENSE Normal file
View File

@ -0,0 +1,20 @@
Copyright (c) 2009-2011 Robby Russell and contributors
Copyright (c) 2011-2017 Sorin Ionescu and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE

195
README.md
View File

@ -1,117 +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 recommended
version is 4.3.11.
Prezto will work with any recent release of Zsh, but the minimum required
version is **4.3.11**.
1. Launch Zsh:
01. Launch Zsh:
zsh
```console
zsh
```
2. Clone the repository:
02. Clone the repository:
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
```console
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
```
3. Create a new Zsh configuration by copying the Zsh configuration files
provided:
<details>
<summary><em>Optional: Installing in <code>$XDG_CONFIG_HOME</code></em></summary>
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
Optionally, if you already have `$XDG_CONFIG_HOME` configured (usually as
_`$HOME/.config`_ by default) and intend to install Prezto under
_`$XDG_CONFIG_HOME/zsh`_ instead, you can clone the repository there and
configure `$ZDOTDIR` separately if not already configured.
4. Set Zsh as your default shell:
- Clone the repository:
chsh -s /bin/zsh
```console
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}/.zprezto"
```
5. Open a new Zsh terminal window or tab.
- Configure `$XDG_CONFIG_HOME` and `$ZDOTDIR` in _`$HOME/.zshenv`_:
```sh
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:=$HOME/.config}"
export ZDOTDIR="${ZDOTDIR:=$XDG_CONFIG_HOME/zsh}"
source "$ZDOTDIR/.zshenv"
```
</details>
03. Create a new Zsh configuration by copying/linking the Zsh configuration
files provided:
```console
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
```
**Note:** If you already have any of the given configuration files, `ln` in
the above operation will cause an error. In simple cases, you can load
Prezto by adding the line `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to
the bottom of your _`${ZDOTDIR:-$HOME}/.zshrc`_ and keep the rest of your
Zsh configuration intact. For more complicated setups, we recommend that you
back up your original configs and replace them with the provided Prezto
[_`runcoms`_][10].
04. Set Zsh as your default shell:
```console
chsh -s /bin/zsh
```
05. Open a new Zsh terminal window or tab.
### 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
Pull the latest changes and update submodules.
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.
git pull && git submodule update --init --recursive
To pull the latest changes and update submodules manually:
Usage
-----
```console
cd $ZPREZTODIR
git pull
git submodule sync --recursive
git submodule update --init --recursive
```
Prezto has many features disabled by default. Read the source code and
accompanying README files to learn of what is available.
## Usage
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]
![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.
Customization
-------------
### External Modules
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].
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`_.
Resources
---------
Note that module names need to be unique or they will cause an error when
loading.
```sh
zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib
```
## Customization
The project is managed via [Git][3]. We highly recommend that you fork this
project so that you can commit your changes and push them to your fork on
[GitHub][4] to preserve them. If you do not know how to use Git, follow this
[tutorial][5] and bookmark this [reference][6].
## Resources
The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable.
License
-------
## License
(The MIT License)
This project is licensed under the MIT License.
Copyright (c) 2009-2011 Robby Russell and contributors.
Copyright (c) 2011-2014 Sorin Ionescu and contributors.
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
[1]: http://www.zsh.org
[2]: http://i.imgur.com/nBEEZ.png "sorin theme"
[3]: http://git-scm.com
[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

133
init.zsh
View File

@ -12,11 +12,60 @@
# Check for the minimum supported version.
min_zsh_version='4.3.11'
if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
print "prezto: old shell detected, minimum required: $min_zsh_version" >&2
printf "prezto: old shell detected, minimum required: %s\n" "$min_zsh_version" >&2
return 1
fi
unset min_zsh_version
# zprezto convenience updater
# The function is surrounded by ( ) instead of { } so it starts in a subshell
# and won't affect the environment of the calling shell
function zprezto-update {
(
function cannot-fast-forward {
local STATUS="$1"
[[ -n "${STATUS}" ]] && printf "%s\n" "${STATUS}"
printf "Unable to fast-forward the changes. You can fix this by "
printf "running\ncd '%s' and then\n'git pull' " "${ZPREZTODIR}"
printf "to manually pull and possibly merge in changes\n"
}
cd -q -- "${ZPREZTODIR}" || return 7
local orig_branch="$(git symbolic-ref HEAD 2> /dev/null | cut -d '/' -f 3)"
if [[ "$orig_branch" == "master" ]]; then
git fetch || return "$?"
local UPSTREAM=$(git rev-parse '@{u}')
local LOCAL=$(git rev-parse HEAD)
local REMOTE=$(git rev-parse "$UPSTREAM")
local BASE=$(git merge-base HEAD "$UPSTREAM")
if [[ $LOCAL == $REMOTE ]]; then
printf "There are no updates.\n"
return 0
elif [[ $LOCAL == $BASE ]]; then
printf "There is an update available. Trying to pull.\n\n"
if git pull --ff-only; then
printf "Syncing submodules\n"
git submodule sync --recursive
git submodule update --init --recursive
return $?
else
cannot-fast-forward
return 1
fi
elif [[ $REMOTE == $BASE ]]; then
cannot-fast-forward "Commits in master that aren't in upstream."
return 1
else
cannot-fast-forward "Upstream and local have diverged."
return 1
fi
else
printf "zprezto install at '%s' is not on the master branch " "${ZPREZTODIR}"
printf "(you're on '%s')\nUnable to automatically update.\n" "${orig_branch}"
return 1
fi
return 1
)
}
#
# Module Loader
#
@ -24,44 +73,70 @@ unset min_zsh_version
# Loads Prezto modules.
function pmodload {
local -a pmodules
local -a pmodule_dirs
local -a locations
local pmodule
local pfunction_glob='^([_.]*|prompt_*_setup|README*)(-.N:t)'
local pmodule_location
local pfunction_glob='^([_.]*|prompt_*_setup|README*|*~)(-.N:t)'
# Load in any additional directories and warn if they don't exist
zstyle -a ':prezto:load' pmodule-dirs 'user_pmodule_dirs'
for user_dir in "$user_pmodule_dirs[@]"; do
if [[ ! -d "$user_dir" ]]; then
echo "$0: Missing user module dir: $user_dir"
fi
done
pmodule_dirs=("$ZPREZTODIR/modules" "$ZPREZTODIR/contrib" "$user_pmodule_dirs[@]")
# $argv is overridden in the anonymous function.
pmodules=("$argv[@]")
# Add functions to $fpath.
fpath=(${pmodules:+${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions(/FN)} $fpath)
function {
local pfunction
# Extended globbing is needed for listing autoloadable function directories.
setopt LOCAL_OPTIONS EXTENDED_GLOB
# Load Prezto functions.
for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions/$~pfunction_glob; do
autoload -Uz "$pfunction"
done
}
# Load Prezto modules.
for pmodule in "$pmodules[@]"; do
if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then
continue
elif [[ ! -d "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule" ]]; then
print "$0: no such module: $pmodule" >&2
continue
else
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" ]]; then
source "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh"
locations=(${pmodule_dirs:+${^pmodule_dirs}/$pmodule(-/FN)})
if (( ${#locations} > 1 )); then
if ! zstyle -t ':prezto:load' pmodule-allow-overrides 'yes'; then
print "$0: conflicting module locations: $locations"
continue
fi
elif (( ${#locations} < 1 )); then
print "$0: no such module: $pmodule"
continue
fi
# Grab the full path to this module
pmodule_location=${locations[-1]}
# Add functions to $fpath.
fpath=(${pmodule_location}/functions(-/FN) $fpath)
function {
local pfunction
# Extended globbing is needed for listing autoloadable function directories.
setopt LOCAL_OPTIONS EXTENDED_GLOB
# Load Prezto functions.
for pfunction in ${pmodule_location}/functions/$~pfunction_glob; do
autoload -Uz "$pfunction"
done
}
if [[ -s "${pmodule_location}/init.zsh" ]]; then
source "${pmodule_location}/init.zsh"
elif [[ -s "${pmodule_location}/${pmodule}.plugin.zsh" ]]; then
source "${pmodule_location}/${pmodule}.plugin.zsh"
fi
if (( $? == 0 )); then
zstyle ":prezto:module:$pmodule" loaded 'yes'
else
# Remove the $fpath entry.
fpath[(r)${ZDOTDIR:-$HOME}/.zprezto/modules/${pmodule}/functions]=()
fpath[(r)${pmodule_location}/functions]=()
function {
local pfunction
@ -71,7 +146,7 @@ function pmodload {
setopt LOCAL_OPTIONS EXTENDED_GLOB
# Unload Prezto functions.
for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/functions/$~pfunction_glob; do
for pfunction in ${pmodule_location}/functions/$~pfunction_glob; do
unfunction "$pfunction"
done
}
@ -86,6 +161,12 @@ function pmodload {
# Prezto Initialization
#
# This finds the directory prezto is installed to so plugin managers don't need
# to rely on dirty hacks to force prezto into a directory. Additionally, it
# needs to be done here because inside the pmodload function ${0:h} evaluates to
# the current directory of the shell rather than the prezto dir.
ZPREZTODIR=${0:h}
# Source the Prezto configuration file.
if [[ -s "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then
source "${ZDOTDIR:-$HOME}/.zpreztorc"
@ -102,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"
@ -111,4 +195,3 @@ unset zfunction{s,}
zstyle -a ':prezto:load' pmodule 'pmodules'
pmodload "$pmodules[@]"
unset pmodules

View File

@ -1,195 +1,166 @@
Modules
=======
# Modules
Load modules in *zpreztorc*. The order matters.
Load modules in _`${ZDOTDIR:-$HOME}/.zpreztorc`_. The order matters.
zstyle ':prezto:load' pmodule 'environment' 'terminal'
```sh
zstyle ':prezto:load' pmodule 'environment' 'terminal'
```
Archive
-------
## Archive
Provides functions to list and extract archives.
Command-Not-Found
-----------------
## Autosuggestions
Loads the command-not-found tool on Debian-based distributions.
Integrates zsh-autosuggestions into Prezto.
Completion
----------
## Command-Not-Found
Loads and configures tab completion and provides additional completions from
the zsh-completions project.
Loads the command-not-found tool on macOS or Debian-based distributions.
Directory
---------
## Completion
Loads and configures <kbd>TAB</kbd> completion and provides additional
completions from the zsh-completions project.
## Directory
Sets directory options and defines directory aliases.
Dpkg
----
## DNF
Defines dpkg aliases and functions.
Defines _dnf_ aliases.
Editor
------
## Dpkg
Defines _dpkg_ aliases and functions.
## 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.
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,41 +1,53 @@
Archive
=======
# Archive
Provides functions to list and extract archives.
Provides functions to create, list, and extract archives.
Functions
---------
This module must be loaded _before_ the [_`completion`_][1] module so that the
provided completion definitions are loaded automatically by _`completion`_
module.
- `lsarchive` lists the contents of one or more archives.
- `unarchive` extracts the contents of one or more archives.
## Functions
Supported Formats
-----------------
- `archive` creates an archive based on the provided archive name.
- `lsarchive` lists the contents of one or more archives.
- `unarchive` extracts the contents of one or more archives.
## Supported Formats
The following archive formats are supported when the required utilities are
installed:
- *.tar.gz*, *.tgz* require `tar`.
- *.tar.bz2*, *.tbz* require `tar`.
- *.tar.xz*, *.txz* require `tar` with *xz* support.
- *.tar.zma*, *.tlz* require `tar` with *lzma* support.
- *.tar* requires `tar`.
- *.gz* requires `gunzip`.
- *.bz2* requires `bunzip2`.
- *.xz* requires `unxz`.
- *.lzma* requires `unlzma`.
- *.Z* requires `uncompress`.
- *.zip* requires `unzip`.
- *.rar* requires `unrar` or `rar`.
- *.7z* requires `7za`.
- *.deb* requires `ar`, `tar`.
- _.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`.
Authors
-------
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.
*The authors of this module should be contacted via the [issue tracker][1].*
## Alternatives
- [Sorin Ionescu](https://github.com/sorin-ionescu)
Specifically on macOS, [The Unarchiver][2] provides a similar command line tool
which doesn't depend on a number of other programs being installed.
[1]: https://github.com/sorin-ionescu/prezto/issues
## Authors
_The authors of this module should be contacted via the [issue tracker][3]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Matt Hamilton](https://github.com/Eriner)
[1]: ../completion#readme
[2]: https://theunarchiver.com/command-line
[3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -10,5 +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|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,5 +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|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

@ -0,0 +1,75 @@
#
# Creates archive file
#
# Authors:
# Matt Hamilton <m@tthamilton.com>
#
# function archive {
local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin _zstd_bin
if (( $# < 2 )); then
cat >&2 <<EOF
usage: $0 [archive_name.zip] [/path/to/include/into/archive ...]
Where 'archive.zip' uses any of the following extensions:
.tar.gz, .tar.bz2, .tar.xz, .tar.lzma, .tar.zst, .tar, .zip, .rar, .7z
There is no '-v' switch; all operations are verbose.
EOF
return 1
fi
# we are quitting (above) if there are not exactly 2 vars,
# so we don't need any argc check here.
# strip the path, just in case one is provided for some reason
archive_name="${1:t}"
# let paths be handled by actual archive helper
path_to_archive="${@:2}"
# here, we check for dropin/multi-threaded replacements
# this should eventually be moved to modules/archive/init.zsh
# as a global alias
if (( $+commands[pigz] )); then
_gzip_bin='pigz'
else
_gzip_bin='gzip'
fi
if (( $+commands[pixz] )); then
_xz_bin='pixz'
else
_xz_bin='xz'
fi
if (( $+commands[lbzip2] )); then
_bzip2_bin='lbzip2'
elif (( $+commands[pbzip2] )); then
_bzip2_bin='pbzip2'
else
_bzip2_bin='bzip2'
fi
_zstd_bin='zstd'
case "${archive_name}" in
(*.tar.gz|*.tgz) tar -cvf "${archive_name}" --use-compress-program="${_gzip_bin}" "${=path_to_archive}" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar -cvf "${archive_name}" --use-compress-program="${_bzip2_bin}" "${=path_to_archive}" ;;
(*.tar.xz|*.txz) tar -cvf "${archive_name}" --use-compress-program="${_xz_bin}" "${=path_to_archive}" ;;
(*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${=path_to_archive}" ;;
(*.tar.zst|*.tzst) tar -cvf "${archive_name}" --use-compress-program="${_zstd_bin}" "${=path_to_archive}" ;;
(*.tar) tar -cvf "${archive_name}" "${=path_to_archive}" ;;
(*.zip|*.jar) zip -r "${archive_name}" "${=path_to_archive}" ;;
(*.rar) rar a "${archive_name}" "${=path_to_archive}" ;;
(*.7z) 7za a "${archive_name}" "${=path_to_archive}" ;;
(*.gz) print "\n.gz is only useful for single files, and does not capture permissions. Use .tar.gz" ;;
(*.bz2) print "\n.bzip2 is only useful for single files, and does not capture permissions. Use .tar.bz2" ;;
(*.xz) print "\n.xz is only useful for single files, and does not capture permissions. Use .tar.xz" ;;
(*.lzma) print "\n.lzma is only useful for single files, and does not capture permissions. Use .tar.lzma" ;;
(*) print "\nunknown archive type for archive: ${archive_name}" ;;
esac
# }

View File

@ -5,6 +5,8 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function lsarchive {
local verbose
if (( $# == 0 )); then
@ -30,7 +32,7 @@ while (( $# > 0 )); do
continue
fi
case "$1" in
case "$1:l" in
(*.tar.gz|*.tgz) tar t${verbose:+v}vzf "$1" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar t${verbose:+v}jf "$1" ;;
(*.tar.xz|*.txz) tar --xz --help &> /dev/null \
@ -39,14 +41,17 @@ 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) unzip -l${verbose:+v} "$1" ;;
(*.rar) unrar &> /dev/null \
&& unrar ${${verbose:+v}:-l} "$1" \
|| rar ${${verbose:+v}:-l} "$1" ;;
(*.zip|*.jar) unzip -l${verbose:+v} "$1" ;;
(*.rar) ( (( $+commands[unrar] )) \
&& unrar ${${verbose:+v}:-l} "$1" ) \
|| ( (( $+commands[rar] )) \
&& rar ${${verbose:+v}:-l} "$1" ) \
|| lsar ${verbose:+-l} "$1" ;;
(*.7z) 7za l "$1" ;;
(*)
print "$0: cannot list: $1" >&2
print "$0: cannot list: $1" >&2
success=1
;;
esac
@ -54,3 +59,4 @@ while (( $# > 0 )); do
shift
done
# }

View File

@ -5,10 +5,14 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function unarchive {
local remove_archive
local success
local file_name
local file_path
local extract_dir
local _gzip_bin _bzip2_bin _xz_bin _zstd_bin
if (( $# == 0 )); then
cat >&2 <<EOF
@ -27,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'
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
@ -36,34 +65,36 @@ while (( $# > 0 )); do
success=0
file_name="${1:t}"
file_path="${1:A}"
extract_dir="${file_name:r}"
case "$1" in
(*.tar.gz|*.tgz) tar xvzf "$1" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;;
(*.tar.xz|*.txz) tar --xz --help &> /dev/null \
&& tar --xz -xvf "$1" \
|| xzcat "$1" | tar xvf - ;;
case "$1:l" in
(*.tar.gz|*.tgz) tar -xvf "$1" --use-compress-program="${_gzip_bin}" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar -xvf "$1" --use-compress-program="${_bzip2_bin}" ;;
(*.tar.xz|*.txz) tar -xvf "$1" --use-compress-program="${_xz_bin}" ;;
(*.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" ;;
(*.lzma) unlzma "$1" ;;
(*.Z) uncompress "$1" ;;
(*.zip) unzip "$1" -d $extract_dir ;;
(*.rar) unrar &> /dev/null \
&& unrar e -ad "$1" \
|| rar e -ad "$1" ;;
(*.zip|*.jar) unzip "$1" -d $extract_dir ;;
(*.rar) ( (( $+commands[unrar] )) \
&& unrar x -ad "$1" ) \
|| ( (( $+commands[rar] )) \
&& rar x -ad "$1" ) \
|| unar -d "$1" ;;
(*.7z) 7za x "$1" ;;
(*.deb)
mkdir -p "$extract_dir/control"
mkdir -p "$extract_dir/data"
cd "$extract_dir"; ar vx "../${1}" > /dev/null
cd control; tar xzvf ../control.tar.gz
cd ../data; tar xzvf ../data.tar.gz
cd ..; rm *.tar.gz debian-binary
cd "$extract_dir"; ar vx "${file_path}" > /dev/null
cd control; tar xvf ../control.tar.*
cd ../data; tar xvf ../data.tar.*
cd ..; rm control.tar.* data.tar.* debian-binary
cd ..
;;
(*)
@ -77,3 +108,4 @@ while (( $# > 0 )); do
shift
done
# }

View File

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

View File

@ -0,0 +1,35 @@
#
# Integrates zsh-autosuggestions into Prezto.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Load dependencies.
pmodload 'editor'
# Source module files.
source "${0:h}/external/zsh-autosuggestions.zsh" || return 1
#
# Highlighting
#
# Set highlight color, default 'fg=8'.
zstyle -s ':prezto:module:autosuggestions:color' found \
'ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE' || ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8'
# Disable highlighting.
if ! zstyle -t ':prezto:module:autosuggestions' color; then
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=''
fi
#
# Key Bindings
#
if [[ -n "$key_info" ]]; then
# vi
bindkey -M viins "$key_info[Control]F" vi-forward-word
bindkey -M viins "$key_info[Control]E" vi-add-eol
fi

View File

@ -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,16 +1,23 @@
Command-Not-Found
=================
# Command-Not-Found
Displays installation information for not found commands by loading the
[command-not-found][1] tool on Debian-based and Arch Linux-based distributions.
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.
Authors
-------
Debian and Arch Linux based distributions use the [`command-not-found`][1] tool.
*The authors of this module should be contacted via the [issue tracker][2].*
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].
- [Joseph Booker](https://github.com/sargas)
## Authors
_The authors of this module should be contacted via the [issue tracker][4]._
- [Joseph Booker](https://github.com/sargas)
- [Indrajit Raychaudhuri](https://github.com/indrajitr)
[1]: https://code.launchpad.net/command-not-found
[2]: https://github.com/sorin-ionescu/prezto/issues
[2]: https://github.com/Homebrew/homebrew-command-not-found
[3]: https://github.com/Homebrew/homebrew-command-not-found#install
[4]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -3,6 +3,7 @@
#
# Authors:
# Joseph Jon Booker <joe@neoturbine.net>
# Indrajit Raychaudhuri <irc+code@indrajit.com>
#
# Load command-not-found on Debian-based distributions.
@ -11,8 +12,12 @@ if [[ -s '/etc/zsh_command_not_found' ]]; then
# Load command-not-found on Arch Linux-based distributions.
elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then
source '/usr/share/doc/pkgfile/command-not-found.zsh'
# Load command-not-found on macOS when Homebrew tap is configured.
elif (( $+commands[brew] )) \
&& [[ -s "${hb_cnf_handler::="$(brew --repository 2> /dev/null)"/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
fi

View File

@ -1,24 +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.
Contributors
------------
## Options
Completions should be submitted to the [zsh-completions][1] project according
to its rules and regulations. This module will be synchronized against it.
- `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.
Authors
-------
## Variables
*The authors of this module should be contacted via the [issue tracker][2].*
- `LS_COLORS` used by default for Zsh [standard style][2] 'list-colors'.
- [Sorin Ionescu](https://github.com/sorin-ionescu)
## Settings
### Ignore _`/etc/hosts`_ Entries
To ignore certain entries from static _`/etc/hosts`_ for host completion, add
the following lines in _`${ZDOTDIR:-$HOME}/.zpreztorc`_ with the IP addresses of
the hosts as they appear in _`/etc/hosts`_. Both IP address and the associated
hostname(s) will be ignored during host completion. However, some of the entries
ignored from _`/etc/hosts`_ still might appear during completion because of
their presence in _ssh_ configuration or history).
```sh
zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \
'0.0.0.0' '127.0.0.1'
```
## Contributors
Completions should be submitted to the [zsh-completions][1] project according to
its rules and regulations. This module will be synchronized against it.
## Authors
_The authors of this module should be contacted via the [issue tracker][3]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[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,36 +7,73 @@
#
# 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)
# Load and initialize the completion system ignoring insecure directories.
autoload -Uz compinit && compinit -i
# Add completion for keg-only brewed curl when available.
if (( $+commands[brew] )) \
&& [[ -d "${curl_prefix::="$(brew --prefix 2> /dev/null)"/opt/curl}" ]]; then
fpath=($curl_prefix/share/zsh/site-functions $fpath)
fi
unset curl_prefix
#
# Options
#
setopt COMPLETE_IN_WORD # Complete from both ends of a word.
setopt ALWAYS_TO_END # Move cursor to the end of a completed word.
setopt PATH_DIRS # Perform path search even on command names with slashes.
setopt AUTO_MENU # Show completion menu on a succesive tab press.
setopt AUTO_LIST # Automatically list choices on ambiguous completion.
setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
setopt COMPLETE_IN_WORD # Complete from both ends of a word.
setopt ALWAYS_TO_END # Move cursor to the end of a completed word.
setopt PATH_DIRS # Perform path search even on command names with slashes.
setopt AUTO_MENU # Show completion menu on a successive tab press.
setopt AUTO_LIST # Automatically list choices on ambiguous completion.
setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit.
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
#
# Variables
#
# Standard style used by default for 'list-colors'
LS_COLORS=${LS_COLORS:-'di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'}
#
# Initialization
#
# Load and initialize the completion system ignoring insecure directories with a
# cache time of 20 hours, so it should almost always regenerate the first time a
# shell is opened each day.
autoload -Uz compinit
_comp_path="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump"
# #q expands globs in conditional expressions
if [[ $_comp_path(#qNmh-20) ]]; then
# -C (skip function check) implies -i (skip security check).
compinit -C -d "$_comp_path"
else
mkdir -p "$_comp_path:h"
compinit -i -d "$_comp_path"
# Keep $_comp_path younger than cache time even if it isn't regenerated.
touch "$_comp_path"
fi
unset _comp_path
#
# Styles
#
# Use caching to make completion for cammands such as dpkg and apt usable.
# 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
@ -56,7 +93,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
@ -66,8 +102,9 @@ zstyle ':completion:*' completer _complete _match _approximate
zstyle ':completion:*:match:*' original only
zstyle ':completion:*:approximate:*' max-errors 1 numeric
# Increase the number of errors based on the length of the typed word.
zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)'
# Increase the number of errors based on the length of the typed word. But make
# sure to cap (at 7) the max-errors to avoid hanging.
zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3>7?7:($#PREFIX+$#SUFFIX)/3))numeric)'
# Don't complete unavailable commands.
zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))'
@ -76,7 +113,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'
@ -88,14 +124,17 @@ 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.
# Populate hostname completion. But allow ignoring custom entries from static
# */etc/hosts* which might be uninteresting.
zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores'
zstyle -e ':completion:*:hosts' hosts 'reply=(
${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*}
${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
${=${=${=${${(f)"$(cat {/etc/ssh/ssh_,~/.ssh/}known_hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ }
${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2> /dev/null))"}%%(\#${_etc_host_ignores:+|${(j:|:)~_etc_host_ignores}})*}
${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2> /dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}}
)'
# Don't complete uninteresting users...
@ -116,7 +155,7 @@ zstyle ':completion:*:(rm|kill|diff):*' ignore-line other
zstyle ':completion:*:rm:*' file-patterns '*:all-files'
# Kill
zstyle ':completion:*:*:*:*:processes' command 'ps -u $USER -o pid,user,comm -w'
zstyle ':completion:*:*:*:*:processes' command 'ps -u $LOGNAME -o pid,user,command -w'
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01'
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:*:kill:*' force-list always
@ -139,11 +178,9 @@ if [[ -s "$HOME/.mutt/aliases" ]]; then
fi
# SSH/SCP/RSYNC
zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
zstyle ':completion:*:(ssh|scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'

View File

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

View File

@ -16,7 +16,6 @@ setopt PUSHD_IGNORE_DUPS # Do not store duplicates in the stack.
setopt PUSHD_SILENT # Do not print the directory stack after pushd or popd.
setopt PUSHD_TO_HOME # Push to home directory when no argument is given.
setopt CDABLE_VARS # Change directory to a path stored in a variable.
setopt AUTO_NAME_DIRS # Auto add variable-stored paths to ~ list.
setopt MULTIOS # Write to multiple descriptors.
setopt EXTENDED_GLOB # Use extended globbing syntax.
unsetopt CLOBBER # Do not overwrite existing files with > and >>.
@ -28,4 +27,3 @@ unsetopt CLOBBER # Do not overwrite existing files with > and >>.
alias d='dirs -v'
for index ({1..9}) alias "$index"="cd +${index}"; unset index

25
modules/dnf/README.md Normal file
View File

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

28
modules/dnf/init.zsh Normal file
View File

@ -0,0 +1,28 @@
#
# Defines dnf aliases.
#
# Authors:
# FireWave <firewave@free.fr>
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Return if requirements are not found.
if (( ! $+commands[dnf] )); then
return 1
fi
#
# Aliases
#
alias dnfc='sudo dnf clean all' # Cleans the cache.
alias dnfh='dnf history' # Displays history.
alias dnfi='sudo dnf install' # Installs package(s).
alias dnfl='dnf list' # Lists packages.
alias dnfL='dnf list installed' # Lists installed packages.
alias dnfq='dnf info' # Displays package information.
alias dnfr='sudo dnf remove' # Removes package(s).
alias dnfs='dnf search' # Searches for a package.
alias dnfu='sudo dnf update' # Updates packages.
alias dnfU='sudo dnf upgrade' # Upgrades packages.

196
modules/docker/README.md Normal file
View File

@ -0,0 +1,196 @@
# Docker
Defines [Docker][1] aliases and functions.
## Aliases
### Docker
- `dk` is short for `docker`
- `dka` Attach to a running container
- `dkb` Build an image from a Dockerfile
- `dkd` Inspect changes on a container's filesystem
- `dkdf` Show docker filesystem usage
- `dke` Run a command in a running container
- `dkE` Run an interactive command in a running container
- `dkh` Show the history of an image
- `dki` List images
- `dkin` Return low-level information on a container, image or task
- `dkk` Kill a running container
- `dkl` Fetch the logs of a container
- `dkli` Log in to a Docker registry
- `dklo` Log out from a Docker registry
- `dkls` is alias for `dkps`
- `dkp` Pause all processes within one or more containers
- `dkP` Unpause all processes within one or more containers
- `dkpl` Pull an image or a repository from a registry
- `dkph` Push an image or a repository to a registry
- `dkps` List containers
- `dkpsa` List all containers (default lists just running)
- `dkr` Run a command in a new container
- `dkR` Run an interactive command in a new container and automatically remove
the container when it exits
- `dkRe` like `dkR` and set entry point to `/bin/bash`
- `dkrm` Remove one or more containers
- `dkrmi` Remove one or more images
- `dkrmC` Clean up exited containers
- `dkrmI` Clean up dangling images
- `dkrmV` Clean up unused volumes ( Docker >= 1.9 )
- `dkrn` Rename a container
- `dks` Start one or more stopped containers
- `dkS` Restart a container
- `dkss` Display a live stream of container(s) resource usage statistics
- `dksv` Save one or more images to a tar archive (streamed to STDOUT by
default)
- `dkt` Tag an image into a repository
- `dktop` Display the running processes of a container
- `dkup` Update configuration of one or more containers
- `dkV` Manage Docker volumes
- `dkv` Show the Docker version information
- `dkw` Block until a container stops, then print its exit code
- `dkx` Stop a running container
#### container (C)
- `dkC` Manage containers
- `dkCa` Attach to a running container
- `dkCcp` Copy files/folders between a container and the local filesystem
- `dkCd` Inspect changes on a container's filesystem
- `dkCe` Run a command in a running container
- `dkCin` Display detailed information on one or more containers
- `dkCk` Kill one or more running containers
- `dkCl` Fetch the logs of a container
- `dkCls` List containers
- `dkCp` Pause all processes within one or more containers
- `dkCpr` Remove all stopped containers
- `dkCrn` Rename a container
- `dkCS` Restart one or more containers
- `dkCrm` Remove one or more containers
- `dkCr` Run a command in a new container
- `dkCR` Run an interactive command in a new container and automatically remove
the container when it exits
- `dkCRe` like `dkCR` and set entry point to `/bin/bash`
- `dkCs` Start one or more stopped containers
- `dkCss` Display a live stream of container(s) resource usage statistics
- `dkCx` Stop one or more running containers
- `dkCtop` Display the running processes of a container
- `dkCP` Unpause all processes within one or more containers
- `dkCup` Update configuration of one or more containers
- `dkCw` Block until one or more containers stop, then print their exit codes
#### image (I)
- `dkI` Manage images
- `dkIb` Build an image from a Dockerfile
- `dkIh` Show the history of an image
- `dkIim` Import the contents from a tarball to create a filesystem image
- `dkIin` Display detailed information on one or more images
- `dkIls` List images
- `dkIpr` Remove unused images
- `dkIpl` Pull an image or a repository from a registry
- `dkIph` Push an image or a repository to a registry
- `dkIrm` Remove one or more images
- `dkIsv` Save one or more images to a tar archive (streamed to STDOUT by
default)
- `dkIt` Tag an image into a repository
#### volume (V)
- `dkV` Manage volumes
- `dkVin` Display detailed information on one or more volumes
- `dkVls` List volumes
- `dkVpr` Remove all unused volumes
- `dkVrm` Remove one or more volumes
#### network (N)
- `dkN` Manage networks
- `dkNs` Connect a container to a network
- `dkNx` Disconnects a container from a network
- `dkNin` Displays detailed information on a network
- `dkNls` Lists all the networks created by the user
- `dkNpr` Remove all unused networks
- `dkNrm` Deletes one or more networks
#### system (Y)
- `dkY` Manage Docker
- `dkYdf` Show docker filesystem usage
- `dkYpr` Remove unused data
#### stack (K)
- `dkK` Manage Docker stacks
- `dkKls` List stacks
- `dkKps` List the tasks in the stack
- `dkKrm` Remove the stack
#### swarm (W)
- `dkW` Manage Docker Swarm
### Docker Machine
- `dkm` is short for `docker-machine`
- `dkma` Get or set the active machine
- `dkmcp` Copy files between machines
- `dkmd` Set up the default machine ; alowing you to use `dkme` without
arguments
- `dkme` Set up the environment for the Docker client (eg: `dkme staging` to
toggle to staging)
- `dkmin` Inspect information about a machine
- `dkmip` Get the IP address of a machine
- `dkmk` Kill a machine
- `dkmls` List machines
- `dkmpr` Re-provision existing machines
- `dkmps` is alias for `dkmls`
- `dkmrg` Regenerate TLS Certificates for a machine
- `dkmrm` Remove a machine
- `dkms` Start a machine
- `dkmsh` Log into or run a command on a machine with SSH
- `dkmst` Get the status of a machine
- `dkmS` Restart a machine
- `dkmu` Get the URL of a machine
- `dkmup` Upgrade a machine to the latest version of Docker
- `dkmV` Show the Docker Machine version or a machine docker version
- `dkmx` Stop a machine
### Docker Compose
- `dkc` is short for `docker-compose`
- `dkcb` Build or rebuild services
- `dkcB` Build or rebuild services and do not use cache when building the image
- `dkcd` Stop and remove containers, networks, images, and volumes
- `dkce` Execute a command in a running container
- `dkck` Kill containers
- `dkcl` View output from containers
- `dkcls` is alias for `dkcps`
- `dkcp` Pause services
- `dkcP` Unpause services
- `dkcpl` Pull service images
- `dkcph` Push service images
- `dkcps` List containers
- `dkcr` Run a one-off command
- `dkcR` Run a one-off command and remove container after run.
- `dkcrm` Remove stopped containers
- `dkcs` Start services
- `dkcsc` Set number of containers for a service
- `dkcS` Restart services
- `dkcu` Create and start containers
- `dkcU` Create and start containers in detached mode: Run containers in the
background, print new container names
- `dkcV` Show the Docker-Compose version information
- `dkcx` Stop services
## Support
If you're having problems, use the [Prezto issue tracker][2].
## Acknowledgements
This module is a copy of [akarzim/zsh-docker-aliases][3] by [François Vantomme][4] (MIT License).
[1]: https://www.docker.com/
[2]: https://github.com/zsh-users/prezto/issues
[3]: https://github.com/akarzim/zsh-docker-aliases
[4]: https://github.com/akarzim

177
modules/docker/alias.zsh Normal file
View File

@ -0,0 +1,177 @@
#
# Defines Docker aliases.
#
# Author:
# François Vantomme <akarzim@gmail.com>
#
#
# Aliases
#
# Docker
alias dk='docker'
alias dka='docker attach'
alias dkb='docker build'
alias dkd='docker diff'
alias dkdf='docker system df'
alias dke='docker exec'
alias dkE='docker exec -it'
alias dkh='docker history'
alias dki='docker images'
alias dkin='docker inspect'
alias dkim='docker import'
alias dkk='docker kill'
alias dkl='docker logs'
alias dkli='docker login'
alias dklo='docker logout'
alias dkls='docker ps'
alias dkp='docker pause'
alias dkP='docker unpause'
alias dkpl='docker pull'
alias dkph='docker push'
alias dkps='docker ps'
alias dkpsa='docker ps -a'
alias dkr='docker run'
alias dkR='docker run -it --rm'
alias dkRe='docker run -it --rm --entrypoint /bin/bash'
alias dkRM='docker system prune'
alias dkrm='docker rm'
alias dkrmi='docker rmi'
alias dkrn='docker rename'
alias dks='docker start'
alias dkS='docker restart'
alias dkss='docker stats'
alias dksv='docker save'
alias dkt='docker tag'
alias dktop='docker top'
alias dkup='docker update'
alias dkV='docker volume'
alias dkv='docker version'
alias dkw='docker wait'
alias dkx='docker stop'
## Container (C)
alias dkC='docker container'
alias dkCa='docker container attach'
alias dkCcp='docker container cp'
alias dkCd='docker container diff'
alias dkCe='docker container exec'
alias dkCin='docker container inspect'
alias dkCk='docker container kill'
alias dkCl='docker container logs'
alias dkCls='docker container ls'
alias dkCp='docker container pause'
alias dkCpr='docker container prune'
alias dkCrn='docker container rename'
alias dkCS='docker container restart'
alias dkCrm='docker container rm'
alias dkCr='docker container run'
alias dkCR='docker container run -it --rm'
alias dkCRe='docker container run -it --rm --entrypoint /bin/bash'
alias dkCs='docker container start'
alias dkCss='docker container stats'
alias dkCx='docker container stop'
alias dkCtop='docker container top'
alias dkCP='docker container unpause'
alias dkCup='docker container update'
alias dkCw='docker container wait'
## Image (I)
alias dkI='docker image'
alias dkIb='docker image build'
alias dkIh='docker image history'
alias dkIim='docker image import'
alias dkIin='docker image inspect'
alias dkIls='docker image ls'
alias dkIpr='docker image prune'
alias dkIpl='docker image pull'
alias dkIph='docker image push'
alias dkIrm='docker image rm'
alias dkIsv='docker image save'
alias dkIt='docker image tag'
## Volume (V)
alias dkV='docker volume'
alias dkVin='docker volume inspect'
alias dkVls='docker volume ls'
alias dkVpr='docker volume prune'
alias dkVrm='docker volume rm'
## Network (N)
alias dkN='docker network'
alias dkNs='docker network connect'
alias dkNx='docker network disconnect'
alias dkNin='docker network inspect'
alias dkNls='docker network ls'
alias dkNpr='docker network prune'
alias dkNrm='docker network rm'
## System (Y)
alias dkY='docker system'
alias dkYdf='docker system df'
alias dkYpr='docker system prune'
## Stack (K)
alias dkK='docker stack'
alias dkKls='docker stack ls'
alias dkKps='docker stack ps'
alias dkKrm='docker stack rm'
## Swarm (W)
alias dkW='docker swarm'
## CleanUp (rm)
# Clean up exited containers (docker < 1.13)
alias dkrmC='docker rm $(docker ps -qaf status=exited)'
# Clean up dangling images (docker < 1.13)
alias dkrmI='docker rmi $(docker images -qf dangling=true)'
# Clean up dangling volumes (docker < 1.13)
alias dkrmV='docker volume rm $(docker volume ls -qf dangling=true)'
# Docker Machine (m)
alias dkm='docker-machine'
alias dkma='docker-machine active'
alias dkmcp='docker-machine scp'
alias dkmin='docker-machine inspect'
alias dkmip='docker-machine ip'
alias dkmk='docker-machine kill'
alias dkmls='docker-machine ls'
alias dkmpr='docker-machine provision'
alias dkmps='docker-machine ps'
alias dkmrg='docker-machine regenerate-certs'
alias dkmrm='docker-machine rm'
alias dkms='docker-machine start'
alias dkmsh='docker-machine ssh'
alias dkmst='docker-machine status'
alias dkmS='docker-machine restart'
alias dkmu='docker-machine url'
alias dkmup='docker-machine upgrade'
alias dkmv='docker-machine version'
alias dkmx='docker-machine stop'
# Docker Compose (c)
alias dkc='docker-compose'
alias dkcb='docker-compose build'
alias dkcB='docker-compose build --no-cache'
alias dkcd='docker-compose down'
alias dkce='docker-compose exec'
alias dkck='docker-compose kill'
alias dkcl='docker-compose logs'
alias dkcls='docker-compose ps'
alias dkcp='docker-compose pause'
alias dkcP='docker-compose unpause'
alias dkcpl='docker-compose pull'
alias dkcph='docker-compose push'
alias dkcps='docker-compose ps'
alias dkcr='docker-compose run'
alias dkcR='docker-compose run --rm'
alias dkcrm='docker-compose rm'
alias dkcs='docker-compose start'
alias dkcsc='docker-compose scale'
alias dkcS='docker-compose restart'
alias dkcu='docker-compose up'
alias dkcU='docker-compose up -d'
alias dkcv='docker-compose version'
alias dkcx='docker-compose stop'

57
modules/docker/init.zsh Normal file
View File

@ -0,0 +1,57 @@
#
# Defines Docker aliases.
#
# Author:
# François Vantomme <akarzim@gmail.com>
#
# Return if requirements are not found.
if (( ! $+commands[docker] )); then
return 1
fi
#
# Functions
#
# Set Docker Machine environment
function dkme {
if (( ! $+commands[docker-machine] )); then
return 1
fi
eval $(docker-machine env $1)
}
# Set Docker Machine default machine
function dkmd {
if (( ! $+commands[docker-machine] )); then
return 1
fi
pushd ~/.docker/machine/machines
if [[ ! -d $1 ]]; then
echo "Docker machine '$1' does not exists. Abort."
popd
return 1
fi
if [[ -L default ]]; then
eval $(rm -f default)
elif [[ -d default ]]; then
echo "A default machine already exists. Abort."
popd
return 1
elif [[ -e default ]]; then
echo "A file named 'default' already exists. Abort."
popd
return 1
fi
eval $(ln -s $1 default)
popd
}
# Source module files.
source "${0:h}/alias.zsh"

View File

@ -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,23 +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)
- [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

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

View File

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

View File

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

View File

@ -54,5 +54,4 @@ fi
alias deb-build='time dpkg-buildpackage -rfakeroot -us -uc'
# Removes all kernel images and headers, except for the ones in use.
alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))"'
alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n$(uname -r)))"'

View File

@ -1,63 +1,102 @@
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'`.
zstyle ':prezto:module:editor' key-bindings 'bindings'
```sh
zstyle ':prezto:module:editor' key-bindings '<bindings>'
```
### Dot Expansion
To enable the auto conversion of .... to ../.., add the following to
*zpreztorc*.
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
zstyle ':prezto:module:editor' dot-expansion 'yes'
```sh
zstyle ':prezto:module:editor' dot-expansion 'yes'
```
Theming
-------
### PS Context
To enable the prompt context to be set, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh
zstyle ':prezto:module:editor' ps-context 'yes'
```
## Theming
To indicate when the editor is in the primary keymap (emacs or viins), add
the following to your `theme_prompt_setup` function.
zstyle ':prezto:module:editor:info:keymap:primary' format '>>>'
```sh
zstyle ':prezto:module:editor:info:keymap:primary' format '>>>'
```
To indicate when the editor is in the primary keymap (emacs or viins) insert
mode, add the following to your `theme_prompt_setup` function.
zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I'
```sh
zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I'
```
To indicate when the editor is in the primary keymap (emacs or viins) overwrite
mode, add the following to your `theme_prompt_setup` function.
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O'
```sh
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O'
```
To indicate when the editor is in the alternate keymap (vicmd), add the
following to your `theme_prompt_setup` function.
zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<'
```sh
zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<'
```
To indicate when the editor is completing, add the following to your
`theme_prompt_setup` function.
zstyle ':prezto:module:editor:info:completing' format '...'
```sh
zstyle ':prezto:module:editor:info:completing' format '...'
```
Then add `$editor_info[context]`, where context is *keymap*, *insert*, or
*overwrite*, to `$PROMPT` or `$RPROMPT` and call `editor-info` in the
`prompt_name_preexec` hook function.
Then add `$editor_info[context]`, where context is _keymap_, _insert_, or
_overwrite_, to `$PROMPT` or `$RPROMPT`.
Authors
-------
## Convenience Functions
*The authors of this module should be contacted via the [issue tracker][1].*
### bindkey-all
- [Sorin Ionescu](https://github.com/sorin-ionescu)
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.
[1]: https://github.com/sorin-ionescu/oh-my-zsh/issues
It will also pass through arguments so you can use bindkey-all to set bindings
for all keymaps at once. If provided arguments it will _not_ print out the
names of each of the keymaps, and just run the command for each keymap.
## Authors
_The authors of this module should be contacted via the [issue tracker][1]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -14,8 +14,7 @@ fi
# Options
#
# Beep on error in line editor.
setopt BEEP
setopt BEEP # Beep on error in line editor.
#
# Variables
@ -28,40 +27,44 @@ WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
zmodload zsh/terminfo
typeset -gA key_info
key_info=(
'Control' '\C-'
'Escape' '\e'
'Meta' '\M-'
'Backspace' "^?"
'Delete' "^[[3~"
'F1' "$terminfo[kf1]"
'F2' "$terminfo[kf2]"
'F3' "$terminfo[kf3]"
'F4' "$terminfo[kf4]"
'F5' "$terminfo[kf5]"
'F6' "$terminfo[kf6]"
'F7' "$terminfo[kf7]"
'F8' "$terminfo[kf8]"
'F9' "$terminfo[kf9]"
'F10' "$terminfo[kf10]"
'F11' "$terminfo[kf11]"
'F12' "$terminfo[kf12]"
'Insert' "$terminfo[kich1]"
'Home' "$terminfo[khome]"
'PageUp' "$terminfo[kpp]"
'End' "$terminfo[kend]"
'PageDown' "$terminfo[knp]"
'Up' "$terminfo[kcuu1]"
'Left' "$terminfo[kcub1]"
'Down' "$terminfo[kcud1]"
'Right' "$terminfo[kcuf1]"
'BackTab' "$terminfo[kcbt]"
'Control' '\C-'
'ControlLeft' '\e[1;5D \e[5D \e\e[D \eOd'
'ControlRight' '\e[1;5C \e[5C \e\e[C \eOc'
'ControlPageUp' '\e[5;5~'
'ControlPageDown' '\e[6;5~'
'Escape' '\e'
'Meta' '\M-'
'Backspace' "^?"
'Delete' "^[[3~"
'F1' "$terminfo[kf1]"
'F2' "$terminfo[kf2]"
'F3' "$terminfo[kf3]"
'F4' "$terminfo[kf4]"
'F5' "$terminfo[kf5]"
'F6' "$terminfo[kf6]"
'F7' "$terminfo[kf7]"
'F8' "$terminfo[kf8]"
'F9' "$terminfo[kf9]"
'F10' "$terminfo[kf10]"
'F11' "$terminfo[kf11]"
'F12' "$terminfo[kf12]"
'Insert' "$terminfo[kich1]"
'Home' "$terminfo[khome]"
'PageUp' "$terminfo[kpp]"
'End' "$terminfo[kend]"
'PageDown' "$terminfo[knp]"
'Up' "$terminfo[kcuu1]"
'Left' "$terminfo[kcub1]"
'Down' "$terminfo[kcud1]"
'Right' "$terminfo[kcuf1]"
'BackTab' "$terminfo[kcbt]"
)
# Set empty $key_info values to an invalid UTF-8 sequence to induce silent
# bindkey failure.
for key in "${(k)key_info[@]}"; do
if [[ -z "$key_info[$key]" ]]; then
key_info["$key"]='<27>'
key_info[$key]='<27>'
fi
done
@ -76,37 +79,64 @@ zle -N edit-command-line
#
# Functions
#
# Runs bindkey but for all of the keymaps. Running it with no arguments will
# print out the mappings for all of the keymaps.
function bindkey-all {
local keymap=''
for keymap in $(bindkey -l); do
[[ "$#" -eq 0 ]] && printf "#### %s\n" "${keymap}" 1>&2
bindkey -M "${keymap}" "$@"
done
}
# Exposes information about the Zsh Line Editor via the $editor_info associative
# array.
function editor-info {
# Clean up previous $editor_info.
unset editor_info
typeset -gA editor_info
# 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
if [[ "$KEYMAP" == 'vicmd' ]]; then
zstyle -s ':prezto:module:editor:info:keymap:alternate' format 'REPLY'
editor_info[keymap]="$REPLY"
else
zstyle -s ':prezto:module:editor:info:keymap:primary' format 'REPLY'
editor_info[keymap]="$REPLY"
if [[ "$ZLE_STATE" == *overwrite* ]]; then
zstyle -s ':prezto:module:editor:info:keymap:primary:overwrite' format 'REPLY'
editor_info[overwrite]="$REPLY"
if [[ "$KEYMAP" == 'vicmd' ]]; then
zstyle -s ':prezto:module:editor:info:keymap:alternate' format 'REPLY'
editor_info[keymap]="$REPLY"
else
zstyle -s ':prezto:module:editor:info:keymap:primary:insert' format 'REPLY'
editor_info[overwrite]="$REPLY"
zstyle -s ':prezto:module:editor:info:keymap:primary' format 'REPLY'
editor_info[keymap]="$REPLY"
if [[ "$ZLE_STATE" == *overwrite* ]]; then
zstyle -s ':prezto:module:editor:info:keymap:primary:overwrite' format 'REPLY'
editor_info[overwrite]="$REPLY"
else
zstyle -s ':prezto:module:editor:info:keymap:primary:insert' format 'REPLY'
editor_info[overwrite]="$REPLY"
fi
fi
unset REPLY
zle zle-reset-prompt
fi
unset REPLY
zle reset-prompt
zle -R
}
zle -N editor-info
# Reset the prompt based on the current context and
# the ps-context option.
function zle-reset-prompt {
if zstyle -t ':prezto:module:editor' ps-context; then
# If we aren't within one of the specified contexts, then we want to reset
# the prompt with the appropriate editor_info[keymap] if there is one.
if [[ $CONTEXT != (select|cont) ]]; then
zle reset-prompt
zle -R
fi
else
zle reset-prompt
zle -R
fi
}
zle -N zle-reset-prompt
# Updates editor information when the keymap changes.
function zle-keymap-select {
zle editor-info
@ -184,6 +214,14 @@ zle -N expand-dot-to-parent-directory-path
function expand-or-complete-with-indicator {
local indicator
zstyle -s ':prezto:module:editor:info:completing' format 'indicator'
# This is included to work around a bug in zsh which shows up when interacting
# with multi-line prompts.
if [[ -z "$indicator" ]]; then
zle expand-or-complete
return
fi
print -Pn "$indicator"
zle expand-or-complete
zle redisplay
@ -199,6 +237,35 @@ function prepend-sudo {
}
zle -N prepend-sudo
# Expand aliases
function glob-alias {
zle _expand_alias
zle expand-word
zle magic-space
}
zle -N glob-alias
# Toggle the comment character at the start of the line. This is meant to work
# around a buggy implementation of pound-insert in zsh.
#
# This is currently only used for the emacs keys because vi-pound-insert has
# been reported to work properly.
function pound-toggle {
if [[ "$BUFFER" = '#'* ]]; then
# Because of an oddity in how zsh handles the cursor when the buffer size
# changes, we need to make this check before we modify the buffer and let
# zsh handle moving the cursor back if it's past the end of the line.
if [[ $CURSOR != $#BUFFER ]]; then
(( CURSOR -= 1 ))
fi
BUFFER="${BUFFER:1}"
else
BUFFER="#$BUFFER"
(( CURSOR += 1 ))
fi
}
zle -N pound-toggle
# Reset to default key bindings.
bindkey -d
@ -206,10 +273,12 @@ bindkey -d
# Emacs Key Bindings
#
for key ("$key_info[Escape]"{B,b}) bindkey -M emacs "$key" emacs-backward-word
for key ("$key_info[Escape]"{F,f}) bindkey -M emacs "$key" emacs-forward-word
bindkey -M emacs "$key_info[Escape]$key_info[Left]" emacs-backward-word
bindkey -M emacs "$key_info[Escape]$key_info[Right]" emacs-forward-word
for key in "$key_info[Escape]"{B,b} "${(s: :)key_info[ControlLeft]}" \
"${key_info[Escape]}${key_info[Left]}"
bindkey -M emacs "$key" emacs-backward-word
for key in "$key_info[Escape]"{F,f} "${(s: :)key_info[ControlRight]}" \
"${key_info[Escape]}${key_info[Right]}"
bindkey -M emacs "$key" emacs-forward-word
# Kill to the beginning of the line.
for key in "$key_info[Escape]"{K,k}
@ -234,15 +303,22 @@ if (( $+widgets[history-incremental-pattern-search-backward] )); then
history-incremental-pattern-search-forward
fi
# Toggle comment at the start of the line. Note that we use pound-toggle which
# is similar to pount insert, but meant to work around some issues that were
# being seen in iTerm.
bindkey -M emacs "$key_info[Escape];" pound-toggle
#
# Vi Key Bindings
#
# Edit command in an external editor.
bindkey -M vicmd "v" edit-command-line
# Edit command in an external editor emacs style (v is used for visual mode)
bindkey -M vicmd "$key_info[Control]X$key_info[Control]E" edit-command-line
# Undo/Redo
bindkey -M vicmd "u" undo
bindkey -M viins "$key_info[Control]_" undo
bindkey -M vicmd "$key_info[Control]R" redo
if (( $+widgets[history-incremental-pattern-search-backward] )); then
@ -253,14 +329,61 @@ else
bindkey -M vicmd "/" history-incremental-search-forward
fi
# Toggle comment at the start of the line.
bindkey -M vicmd "#" vi-pound-insert
#
# Emacs and Vi Key Bindings
#
for keymap in 'emacs' 'viins'; do
# Unbound keys in vicmd and viins mode will cause really odd things to happen
# such as the casing of all the characters you have typed changing or other
# undefined things. In emacs mode they just insert a tilde, but bind these keys
# in the main keymap to a noop op so if there is no keybind in the users mode
# it will fall back and do nothing.
function _prezto-zle-noop { ; }
zle -N _prezto-zle-noop
local -a unbound_keys
unbound_keys=(
"${key_info[F1]}"
"${key_info[F2]}"
"${key_info[F3]}"
"${key_info[F4]}"
"${key_info[F5]}"
"${key_info[F6]}"
"${key_info[F7]}"
"${key_info[F8]}"
"${key_info[F9]}"
"${key_info[F10]}"
"${key_info[F11]}"
"${key_info[F12]}"
"${key_info[PageUp]}"
"${key_info[PageDown]}"
"${key_info[ControlPageUp]}"
"${key_info[ControlPageDown]}"
)
for keymap in $unbound_keys; do
bindkey -M viins "${keymap}" _prezto-zle-noop
bindkey -M vicmd "${keymap}" _prezto-zle-noop
done
# Keybinds for all keymaps
for keymap in 'emacs' 'viins' 'vicmd'; do
bindkey -M "$keymap" "$key_info[Home]" beginning-of-line
bindkey -M "$keymap" "$key_info[End]" end-of-line
done
# Keybinds for all vi keymaps
for keymap in viins vicmd; do
# Ctrl + Left and Ctrl + Right bindings to forward/backward word
for key in "${(s: :)key_info[ControlLeft]}"
bindkey -M "$keymap" "$key" vi-backward-word
for key in "${(s: :)key_info[ControlRight]}"
bindkey -M "$keymap" "$key" vi-forward-word
done
# Keybinds for emacs and vi insert mode
for keymap in 'emacs' 'viins'; do
bindkey -M "$keymap" "$key_info[Insert]" overwrite-mode
bindkey -M "$keymap" "$key_info[Delete]" delete-char
bindkey -M "$keymap" "$key_info[Backspace]" backward-delete-char
@ -303,8 +426,14 @@ for keymap in 'emacs' 'viins'; do
# Insert 'sudo ' at the beginning of the line.
bindkey -M "$keymap" "$key_info[Control]X$key_info[Control]S" prepend-sudo
# control-space expands all aliases, including global
bindkey -M "$keymap" "$key_info[Control] " glob-alias
done
# Delete key deletes character in vimcmd cmd mode instead of weird default functionality
bindkey -M vicmd "$key_info[Delete]" delete-char
# Do not expand .... to ../.. during incremental search.
if zstyle -t ':prezto:module:editor' dot-expansion; then
bindkey -M isearch . self-insert 2> /dev/null
@ -324,5 +453,4 @@ else
print "prezto: editor: invalid key bindings: $key_bindings" >&2
fi
unset key{,map,bindings}
unset key{,map,_bindings}

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

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*.
## Options
Authors
-------
### General
*The authors of this module should be contacted via the [issue tracker][1].*
- `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.
- [Sorin Ionescu](https://github.com/sorin-ionescu)
### Jobs
[1]: https://github.com/sorin-ionescu/prezto/issues
- `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]: ../../runcoms#zshenv
[2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -9,18 +9,35 @@
# Smart URLs
#
autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic
# This logic comes from an old version of zim. Essentially, bracketed-paste was
# added as a requirement of url-quote-magic in 5.1, but in 5.1.1 bracketed
# paste had a regression. Additionally, 5.2 added bracketed-paste-url-magic
# which is generally better than url-quote-magic so we load that when possible.
autoload -Uz is-at-least
if [[ ${ZSH_VERSION} != 5.1.1 && ${TERM} != "dumb" ]]; then
if is-at-least 5.2; then
autoload -Uz bracketed-paste-url-magic
zle -N bracketed-paste bracketed-paste-url-magic
elif is-at-least 5.1; then
autoload -Uz bracketed-paste-magic
zle -N bracketed-paste bracketed-paste-magic
fi
autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic
fi
#
# General
#
setopt BRACE_CCL # Allow brace character class list expansion.
setopt COMBINING_CHARS # Combine zero-length punctuation characters (accents)
# with the base character.
setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed.
setopt COMBINING_CHARS # Combine zero-length punctuation characters (accents)
# with the base character.
setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell.
setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'.
unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed.
# Allow mapping Ctrl+S and Ctrl+Q shortcuts
[[ -r ${TTY:-} && -w ${TTY:-} && $+commands[stty] == 1 ]] && stty -ixon <$TTY >$TTY
#
# Jobs
@ -33,15 +50,6 @@ unsetopt BG_NICE # Don't run all background jobs at a lower priority.
unsetopt HUP # Don't kill jobs on shell exit.
unsetopt CHECK_JOBS # Don't report on jobs when shell exit.
#
# Grep
#
if zstyle -t ':prezto:environment:grep' color; then
export GREP_COLOR='37;45'
export GREP_OPTIONS='--color=auto'
fi
#
# Termcap
#
@ -55,4 +63,3 @@ if zstyle -t ':prezto:environment:termcap' color; then
export LESS_TERMCAP_ue=$'\E[0m' # Ends underline.
export LESS_TERMCAP_us=$'\E[01;32m' # Begins underline.
fi

View File

@ -1,39 +1,41 @@
Fasd
====
# Fasd
[Fasd][1] is a command-line productivity booster, inspired by tools like
[autojump][2], [z][3] and [v][4], it offers quick access to files and
directories by keeping track of files and directories that were previously
directories by keeping track of files and directories that were previously
accessed.
For 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.
Aliases
-------
## Installation
- `j` changes the current working directory interactively.
`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.
Completion
----------
## Aliases
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>.
- `j` changes the current working directory interactively.
Authors
-------
## Completion
*The authors of this module should be contacted via the [issue tracker][5].*
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>.
- [Wei Dai](https://github.com/clvv)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
## Authors
_The authors of this module should be contacted via the [issue tracker][6]._
- [Wei Dai](https://github.com/clvv)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/clvv/fasd
[2]: https://github.com/joelthelion/autojump
[3]: https://github.com/rupa/z
[4]: https://github.com/rupa/v
[5]: https://github.com/sorin-ionescu/prezto/issues
[5]: ../completion#readme
[6]: https://github.com/sorin-ionescu/prezto/issues

1
modules/fasd/external Submodule

Submodule modules/fasd/external added at 48220241e7

View File

@ -9,17 +9,20 @@
# Load dependencies.
pmodload 'editor'
# Return if requirements are not found.
# If the command doesn't exist externally, we need to fall back to the bundled
# submodule.
if (( ! $+commands[fasd] )); then
return 1
source "${0:h}/external/fasd" || return 1
fi
#
# Initialization
#
cache_file="${0:h}/cache.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)
@ -28,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
@ -51,4 +55,3 @@ function fasd_cd {
# Changes the current working directory interactively.
alias j='fasd_cd -i'

View File

@ -1,219 +1,336 @@
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.
zstyle ':prezto:module:git:log:context' format ''
```sh
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'`.
zstyle ':prezto:module:git:status:ignore' submodules 'all'
```sh
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. To disable them, add the following to
_`${ZDOTDIR:-$HOME}/.zpreztorc`_.
```sh
zstyle ':prezto:module:git:alias' skip 'yes'
```
### Git
- `g` is short for `git`.
- `g` is short for `git`.
### Branch
### Branch (b)
- `gb` lists, creates, renames, and deletes branches.
- `gbc` creates a new branch.
- `gbl` lists branches and their commits.
- `gbL` lists local and remote branches and their commits.
- `gbs` lists branches and their commits with ancestry graphs.
- `gbS` lists local and remote branches and their commits with ancestry
graphs.
- `gbx` deletes a branch.
- `gbX` deletes a branch irrespective of its merged status.
- `gbm` renames a branch.
- `gbM` renames a branch even if the new branch name already exists.
- `gb` lists, creates, renames, and deletes branches.
- `gbc` creates a new branch.
- `gbl` lists branches and their commits. (also `gbv`)
- `gbL` lists all local and remote branches and their commits.
- `gbr` renames a branch. (also `gbm`)
- `gbR` renames a branch even if the new branch name already exists. (also
`gbM`)
- `gbs` lists branches and their commits with ancestry graphs.
- `gbS` lists local and remote branches and their commits with ancestry graphs.
- `gbV` lists branches with more verbose information about their commits.
- `gbx` deletes a branch. (also `gbd`)
- `gbX` deletes a branch irrespective of its merged status. (also `gbD`)
### Commit (c)
### Commit
- `gc` records changes to the repository.
- `gcS` records changes to the repository. (Signed)
- `gca` stages all modified and deleted files.
- `gcaS` stages all modified and deleted files. (Signed)
- `gcm` records changes to the repository with the given message.
- `gcmS` records changes to the repository with the given message. (Signed)
- `gcam` stages all modified and deleted files, and records changes to the
repository with the given message.
- `gco` checks out a branch or paths to work tree.
- `gcO` checks out hunks from the index or the tree interactively.
- `gcf` amends the tip of the current branch using the same log message as
_HEAD_.
- `gcfS` amends the tip of the current branch using the same log message as
_HEAD_. (Signed)
- `gcF` amends the tip of the current branch.
- `gcFS` amends the tip of the current branch. (Signed)
- `gcp` applies changes introduced by existing commits.
- `gcP` applies changes introduced by existing commits without committing.
- `gcr` reverts existing commits by reverting patches and recording new commits.
- `gcR` removes the _HEAD_ commit.
- `gcs` displays commits with various objects.
- `gcsS` displays commits with GPG signature.
- `gcl` lists lost commits.
- `gcy` displays commits yet to be applied to upstream in the short format.
- `gcY` displays commits yet to be applied to upstream.
- `gc` records changes to the repository.
- `gca` stages all modified and deleted files.
- `gcm` records changes to the repository with the given message.
- `gco` checks out a branch or paths to work tree.
- `gcO` checks out hunks from the index or the tree interactively.
- `gcf` amends the tip of the current branch using the same log message as
*HEAD*.
- `gcF` amends the tip of the current branch.
- `gcp` applies changes introduced by existing commits.
- `gcP` applies changes introduced by existing commits without committing.
- `gcr` reverts existing commits by reverting patches and recording new
commits.
- `gcR` removes the *HEAD* commit.
- `gcs` displays various types of objects.
- `gcl` lists lost commits.
### Conflict (C)
### Conflict
- `gCl` lists unmerged files.
- `gCa` adds unmerged file contents to the index.
- `gCe` executes merge-tool on all unmerged file.
- `gCo` checks out our changes for unmerged paths.
- `gCO` checks out our changes for all unmerged paths.
- `gCt` checks out their changes for unmerged paths.
- `gCT` checks out their changes for all unmerged paths.
- `gCl` lists unmerged files.
- `gCa` adds unmerged file contents to the index.
- `gCe` executes merge-tool on all unmerged file.
- `gCo` checks out our changes for unmerged paths.
- `gCO` checks out our changes for all unmerged paths.
- `gCt` checks out their changes for unmerged paths.
- `gCT` checks out their changes for all unmerged paths.
### Data (d)
### Data
- `gd` displays information about files in the index and the work tree.
- `gdc` lists cached files.
- `gdx` lists deleted files.
- `gdm` lists modified files.
- `gdu` lists untracked files.
- `gdk` lists killed files.
- `gdi` lists ignored files.
- `gd` displays information about files in the index and the work tree.
- `gdc` lists cached files.
- `gdx` lists deleted files.
- `gdm` lists modified files.
- `gdu` lists untracked files.
- `gdk` lists killed files.
- `gdi` lists ignored files.
### Fetch (f)
### Fetch
- `gf` downloads objects and references from another repository.
- `gfa` downloads objects and references from all remote repositories.
- `gfc` clones a repository into a new directory.
- `gfcr` clones a repository into a new directory including all submodules.
- `gfm` fetches from and merges with another repository or local branch.
- `gfr` fetches from and rebases on another repository or local branch.
- `gf` downloads objects and references from another repository.
- `gfc` clones a repository into a new directory.
- `gfm` fetches from and merges with another repository or local branch.
- `gfr` fetches from and rebases on another repository or local branch.
### Flow (F)
### Grep
- `gFi` is short for `git flow init`
- `gg` displays lines matching a pattern.
- `ggi` displays lines matching a pattern ignoring case.
- `ggl` lists files matching a pattern.
- `ggL` lists files that are not matching a pattern.
- `ggv` displays lines not matching a pattern.
- `ggw` displays lines matching a pattern at word boundary.
#### Feature (Ff)
### Index
- `gFf` is short for `git flow feature`
- `gFfl` is short for `git flow feature list`
- `gFfs` is short for `git flow feature start`
- `gFff` is short for `git flow feature finish`
- `gFfp` is short for `git flow feature publish`
- `gFft` is short for `git flow feature track`
- `gFfd` is short for `git flow feature diff`
- `gFfr` is short for `git flow feature rebase`
- `gFfc` is short for `git flow feature checkout`
- `gFfm` is short for `git flow feature pull`
- `gFfx` is short for `git flow feature delete`
- `gia` adds file contents to the index.
- `giA` adds file contents to the index interactively.
- `giu` adds file contents to the index (updates only known files).
- `gid` displays changes between the index and a named commit (diff).
- `giD` displays changes between the index and a named commit (word diff).
- `gir` resets the current HEAD to the specified state.
- `giR` resets the current index interactively.
- `gix` removes files/directories from the index (recursively).
- `giX` removes files/directories from the index (recursively and forced).
#### Bugfix (Fb)
### Log
- `gFb` is short for `git flow bugfix`
- `gFbl` is short for `git flow bugfix list`
- `gFbs` is short for `git flow bugfix start`
- `gFbf` is short for `git flow bugfix finish`
- `gFbp` is short for `git flow bugfix publish`
- `gFbt` is short for `git flow bugfix track`
- `gFbd` is short for `git flow bugfix diff`
- `gFbr` is short for `git flow bugfix rebase`
- `gFbc` is short for `git flow bugfix checkout`
- `gFbm` is short for `git flow bugfix pull`
- `gFbx` is short for `git flow bugfix delete`
- `gl` displays the log.
- `gls` displays the stats log.
- `gld` displays the diff log.
- `glo` displays the one line log.
- `glg` displays the graph log.
- `glb` displays the brief commit log.
- `glc` displays the commit count for each contributor in descending order.
#### Release (Fl)
### Merge
- `gFl` is short for `git flow release`
- `gFll` is short for `git flow release list`
- `gFls` is short for `git flow release start`
- `gFlf` is short for `git flow release finish`
- `gFlp` is short for `git flow release publish`
- `gFlt` is short for `git flow release track`
- `gFld` is short for `git flow release diff`
- `gFlr` is short for `git flow release rebase`
- `gFlc` is short for `git flow release checkout`
- `gFlm` is short for `git flow release pull`
- `gFlx` is short for `git flow release delete`
- `gm` joins two or more development histories together.
- `gmC` joins two or more development histories together but does not commit.
- `gmF` joins two or more development histories together but does not commit
generating a merge commit even if the merge resolved as a fast-forward.
- `gma` aborts the conflict resolution, and reconstructs the pre-merge state.
- `gmt` runs the merge conflict resolution tools to resolve conflicts.
#### Hotfix (Fh)
### Push
- `gFh` is short for `git flow hotfix`
- `gFhl` is short for `git flow hotfix list`
- `gFhs` is short for `git flow hotfix start`
- `gFhf` is short for `git flow hotfix finish`
- `gFhp` is short for `git flow hotfix publish`
- `gFht` is short for `git flow hotfix track`
- `gFhd` is short for `git flow hotfix diff`
- `gFhr` is short for `git flow hotfix rebase`
- `gFhc` is short for `git flow hotfix checkout`
- `gFhm` is short for `git flow hotfix pull`
- `gFhx` is short for `git flow hotfix delete`
- `gp` updates remote refs along with associated objects.
- `gpf` forcefully updates remote refs along with associated objects.
- `gpa` updates remote branches along with associated objects.
- `gpA` updates remote branches and tags along with associated objects.
- `gpt` updates remote tags along with associated objects.
- `gpc` updates remote refs along with associated objects and adds *origin*
as an upstream reference for the current branch.
- `gpp` pulls and pushes from origin to origin.
#### Support (Fs)
### Rebase
- `gFs` is short for `git flow support`
- `gFsl` is short for `git flow support list`
- `gFss` is short for `git flow support start`
- `gFsf` is short for `git flow support finish`
- `gFsp` is short for `git flow support publish`
- `gFst` is short for `git flow support track`
- `gFsd` is short for `git flow support diff`
- `gFsr` is short for `git flow support rebase`
- `gFsc` is short for `git flow support checkout`
- `gFsm` is short for `git flow support pull`
- `gFsx` is short for `git flow support delete`
- `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.
### Grep (g)
### Remote
- `gg` displays lines matching a pattern.
- `ggi` displays lines matching a pattern ignoring case.
- `ggl` lists files matching a pattern.
- `ggL` lists files that are not matching a pattern.
- `ggv` displays lines not matching a pattern.
- `ggw` displays lines matching a pattern at word boundary.
- `gR` manages tracked repositories.
- `gRl` lists remote names and their URLs.
- `gRa` adds a new remote.
- `gRx` removes a remote.
- `gRm` renames a remote.
- `gRu` fetches remotes updates.
- `gRp` prunes all stale remote tracking branches.
- `gRs` displays information about a given remote.
- `gRb` opens a remote on [GitHub][3] in the default browser.
### Index (i)
### Stash
- `gia` adds file contents to the index.
- `giA` adds file contents to the index interactively.
- `giu` adds file contents to the index (updates only known files).
- `gid` displays changes between the index and a named commit (diff).
- `giD` displays changes between the index and a named commit (word diff).
- `gii` temporarily ignore differences in a given file.
- `giI` unignore differences in a given file.
- `gir` resets the current HEAD to the specified state.
- `giR` resets the current index interactively.
- `gix` removes files/directories from the index (recursively).
- `giX` removes files/directories from the index (recursively and forced).
- `gs` stashes the changes of the dirty working directory.
- `gsa` applies the changes recorded in a stash to the working directory.
- `gsx` drops a stashed state.
- `gsX` drops all the stashed states.
- `gsl` lists stashed states.
- `gsL` lists dropped stashed states.
- `gsd` displays changes between the stash and its original parent.
- `gsp` removes and applies a single stashed state from the stash list.
- `gsr` recovers a given stashed state.
- `gss` stashes the changes of the dirty working directory, including untracked.
- `gsS` stashes the changes of the dirty working directory interactively.
- `gsw` stashes the changes of the dirty working directory retaining the index.
### Log (l)
### Submodule
- `gl` displays the log.
- `gls` displays the stats log.
- `gld` displays the diff log.
- `glo` displays the one line log.
- `glg` displays the graph log.
- `glb` displays the brief commit log.
- `glc` displays the commit count for each contributor in descending order.
- `glS` displays the log and checks the validity of signed commits.
- `gS` initializes, updates, or inspects submodules.
- `gSa` adds given a repository as a submodule.
- `gSf` evaluates a shell command in each of checked out submodules.
- `gSi` initializes submodules.
- `gSI` initializes and clones submodules recursively.
- `gSl` lists the commits of all submodules.
- `gSm` moves a submodule.
- `gSs` synchronizes submodules' remote URL to the value specified in
.gitmodules.
- `gSu` fetches and merges the latest changes for all submodule.
- `gSx` removes a submodule.
### Merge (m)
### Working directory
- `gm` joins two or more development histories together.
- `gmC` joins two or more development histories together but does not commit.
- `gmF` joins two or more development histories together but does not commit
generating a merge commit even if the merge resolved as a fast-forward.
- `gma` aborts the conflict resolution, and reconstructs the pre-merge state.
- `gmt` runs the merge conflict resolution tools to resolve conflicts.
- `gws` displays working-tree status in the short format.
- `gwS` displays working-tree status.
- `gwd` displays changes between the working tree and the index (diff).
- `gwD` displays changes between the working tree and the index (word diff).
- `gwr` resets the current HEAD to the specified state, does not touch the
index nor the working tree.
- `gwR` resets the current HEAD, index and working tree to the specified state.
- `gwc` removes untracked files from the working tree (dry-run).
- `gwC` removes untracked files from the working tree.
- `gwx` removes files from the working tree and from the index recursively.
- `gwX` removes files from the working tree and from the index recursively and
forcefully.
### Push (p)
- `gp` updates remote refs along with associated objects.
- `gpf` forcefully updates remote refs along with associated objects using the
safer `--force-with-lease` option.
- `gpF` forcefully updates remote refs along with associated objects using the
riskier `--force` option.
- `gpa` updates remote branches along with associated objects.
- `gpA` updates remote branches and tags along with associated objects.
- `gpt` updates remote tags along with associated objects.
- `gpc` updates remote refs along with associated objects and adds _origin_ as
an upstream reference for the current branch.
- `gpp` pulls and pushes from origin to origin.
### Rebase (r)
- `gr` forward-ports local commits to the updated upstream _HEAD_.
- `gra` aborts the rebase.
- `grc` continues the rebase after merge conflicts are resolved.
- `gri` makes a list of commits to be rebased and opens the editor.
- `grs` skips the current patch.
### Remote (R)
- `gR` manages tracked repositories.
- `gRl` lists remote names and their URLs.
- `gRa` adds a new remote.
- `gRx` removes a remote.
- `gRm` renames a remote.
- `gRu` fetches remotes updates.
- `gRp` prunes all stale remote tracking branches.
- `gRs` displays information about a given remote.
- `gRb` opens a remote on [GitHub][3] in the default browser.
### Stash (s)
- `gs` stashes the changes of the dirty working directory.
- `gsa` applies the changes recorded in a stash to the working directory.
- `gsx` drops a stashed state.
- `gsX` drops all the stashed states.
- `gsl` lists stashed states.
- `gsL` lists dropped stashed states.
- `gsd` displays changes between the stash and its original parent.
- `gsp` removes and applies a single stashed state from the stash list.
- `gsr` recovers a given stashed state.
- `gss` stashes the changes of the dirty working directory, including untracked.
- `gsS` stashes the changes of the dirty working directory interactively.
- `gsw` stashes the changes of the dirty working directory retaining the index.
### Submodule (S)
- `gS` initializes, updates, or inspects submodules.
- `gSa` adds given a repository as a submodule.
- `gSf` evaluates a shell command in each of checked out submodules.
- `gSi` initializes submodules.
- `gSI` initializes and clones submodules recursively.
- `gSl` lists the commits of all submodules.
- `gSm` moves a submodule.
- `gSs` synchronizes submodules' remote URL to the value specified in
_.gitmodules_.
- `gSu` fetches and merges the latest changes for all submodule.
- `gSx` removes a submodule.
### Tag (t)
- `gt` lists tags or creates tag.
- `gtl` lists tags matching pattern.
- `gts` creates a signed tag.
- `gtv` validate a signed tag.
### Working directory (w)
- `gws` displays working-tree status in the short format.
- `gwS` displays working-tree status.
- `gwd` displays changes between the working tree and the index (diff).
- `gwD` displays changes between the working tree and the index (word diff).
- `gwr` resets the current HEAD to the specified state, does not touch the
index nor the working tree.
- `gwR` resets the current HEAD, index and working tree to the specified state.
- `gwc` removes untracked files from the working tree (dry-run).
- `gwC` removes untracked files from the working tree.
- `gwx` removes files from the working tree and from the index recursively.
- `gwX` removes files from the working tree and from the index recursively and
forcefully.
### Shadows
The following aliases may shadow system commands:
- `gpt` shadows the [GUID partition table maintenance utility][4].
- `gs` shadows the [Ghostscript][5].
- `gb` shadows the [GB][10].
- `gm` shadows the [GraphicsMagick image processor][11].
- `gpt` shadows the [GUID partition table maintenance utility][4].
- `gs` shadows the [Ghostscript interpreter and previewer][5].
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`.
@ -221,115 +338,127 @@ 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.
- `git-info` exposes repository information via the `$git_info` associative
array.
- `git-root` displays the path to the working tree root.
- `git-stash-clear-interactive` asks for confirmation before clearing the stash.
- `git-stash-dropped` lists dropped stashed states.
- `git-stash-recover` recovers given dropped stashed states.
- `git-submodule-move` moves a submodule.
- `git-submodule-remove` removes a submodule.
- `git-branch-current` displays the current branch.
- `git-commit-lost` lists lost commits.
- `git-dir` displays the path to the Git directory.
- `git-hub-browse` opens the [GitHub][3] repository in the default browser.
- `git-hub-shorten-url` shortens [GitHub URLs][12].
- `git-info` exposes repository information via the `$git_info` associative
array.
- `git-root` displays the path to the working tree root.
- `git-stash-clear-interactive` asks for confirmation before clearing the stash.
- `git-stash-dropped` lists dropped stashed states.
- `git-stash-recover` recovers given dropped stashed states.
- `git-submodule-move` moves a submodule.
- `git-submodule-remove` removes a submodule.
Theming
-------
## Theming
To display information about the current repository in a prompt, define the
following styles in the `prompt_name_setup` function, where the syntax for
setting a style is as follows.
zstyle ':prezto:module:git:info:context:subcontext' format 'string'
```sh
zstyle ':prezto:module:git:info:context:subcontext' format 'string'
```
### Main Contexts
| Name | Format Code | Description
| --------- | :---------: | ---------------------------------------------------
| action | %s | Special action name
| ahead | %A | Commits ahead of remote count
| behind | %B | Commits behind of remote count
| branch | %b | Branch name
| commit | %c | Commit hash
| position | %p | Commits from the nearest tag count
| remote | %R | Remote name
| stashed | %S | Stashed states count
| 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:
zstyle ':prezto:module:git:info' verbose 'yes'
```sh
zstyle ':prezto:module:git:info' verbose 'yes'
```
### Verbose Contexts
| Name | Format Code | Description
| --------- | :---------: | ---------------------------------------------------
| added | %a | Added files count
| clean | %C | Clean state
| deleted | %d | Deleted files count
| dirty | %D | Dirty files count
| modified | %m | Modified files count
| renamed | %r | Renamed files count
| unmerged | %U | Unmerged files count
| untracked | %u | Untracked files count
| 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
| 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.
zstyle ':prezto:module:git:info:branch' format 'branch:%b'
zstyle ':prezto:module:git:info:remote' format 'remote:%R'
```sh
zstyle ':prezto:module:git:info:branch' format 'branch:%b'
zstyle ':prezto:module:git:info:remote' format 'remote:%R'
```
Second, format how the above attributes are displayed in prompts.
zstyle ':prezto:module:git:info:keys' format \
'prompt' ' git(%b)' \
'rprompt' '[%R]'
```sh
zstyle ':prezto:module:git:info:keys' format \
'prompt' ' git(%b)' \
'rprompt' '[%R]'
```
Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to
`$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook
function.
Authors
-------
## Authors
*The authors of this module should be contacted via the [issue tracker][6].*
_The authors of this module should be contacted via the [issue tracker][6]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Colin Hebert](https://github.com/ColinHebert)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Colin Hebert](https://github.com/ColinHebert)
[1]: 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
[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,175 +8,268 @@
#
# Settings
#
#
# Log
zstyle -s ':prezto:module:git:log:medium' format '_git_log_medium_format' \
|| _git_log_medium_format='%C(bold)Commit:%C(reset) %C(green)%H%C(red)%d%n%C(bold)Author:%C(reset) %C(cyan)%an <%ae>%n%C(bold)Date:%C(reset) %C(blue)%ai (%ar)%C(reset)%n%+B'
|| _git_log_medium_format='%C(bold)Commit:%C(reset) %C(green)%H%C(red)%d%n%C(bold)Author:%C(reset) %C(cyan)%an <%ae>%n%C(bold)Date:%C(reset) %C(blue)%ai (%ar)%C(reset)%n%+B'
zstyle -s ':prezto:module:git:log:oneline' format '_git_log_oneline_format' \
|| _git_log_oneline_format='%C(green)%h%C(reset) %s%C(red)%d%C(reset)%n'
|| _git_log_oneline_format='%C(green)%h%C(reset) %s%C(red)%d%C(reset)%n'
zstyle -s ':prezto:module:git:log:brief' format '_git_log_brief_format' \
|| _git_log_brief_format='%C(green)%h%C(reset) %s%n%C(blue)(%ar by %an)%C(red)%d%C(reset)%n'
|| _git_log_brief_format='%C(green)%h%C(reset) %s%n%C(blue)(%ar by %an)%C(red)%d%C(reset)%n'
# Status
zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_submodules' \
|| _git_status_ignore_submodules='none'
|| _git_status_ignore_submodules='none'
#
# Aliases
#
# Git
alias g='git'
if ! zstyle -t ':prezto:module:git:alias' skip; then
# Git
alias g='git'
# Branch (b)
alias gb='git branch'
alias gbc='git checkout -b'
alias gbl='git branch -v'
alias gbL='git branch -av'
alias gbx='git branch -d'
alias gbX='git branch -D'
alias gbm='git branch -m'
alias gbM='git branch -M'
alias gbs='git show-branch'
alias gbS='git show-branch -a'
# Branch (b)
alias gb='git branch'
alias gba='git branch --all --verbose'
alias gbc='git checkout -b'
alias gbd='git branch --delete'
alias gbD='git branch --delete --force'
alias gbl='git branch --verbose'
alias gbL='git branch --all --verbose'
alias gbm='git branch --move'
alias gbM='git branch --move --force'
alias gbr='git branch --move'
alias gbR='git branch --move --force'
alias gbs='git show-branch'
alias gbS='git show-branch --all'
alias gbv='git branch --verbose'
alias gbV='git branch --verbose --verbose'
alias gbx='git branch --delete'
alias gbX='git branch --delete --force'
# Commit (c)
alias gc='git commit --verbose'
alias gca='git commit --verbose --all'
alias gcm='git commit --message'
alias gco='git checkout'
alias gcO='git checkout --patch'
alias gcf='git commit --amend --reuse-message HEAD'
alias gcF='git commit --verbose --amend'
alias gcp='git cherry-pick --ff'
alias gcP='git cherry-pick --no-commit'
alias gcr='git revert'
alias gcR='git reset "HEAD^"'
alias gcs='git show'
alias gcl='git-commit-lost'
# Commit (c)
alias gc='git commit --verbose'
alias gcS='git commit --verbose --gpg-sign'
alias gca='git commit --verbose --all'
alias gcaS='git commit --verbose --all --gpg-sign'
alias gcm='git commit --message'
alias gcmS='git commit --message --gpg-sign'
alias gcam='git commit --all --message'
alias gco='git checkout'
alias gcO='git checkout --patch'
alias gcf='git commit --amend --reuse-message HEAD'
alias gcfS='git commit --amend --reuse-message HEAD --gpg-sign'
alias gcF='git commit --verbose --amend'
alias gcFS='git commit --verbose --amend --gpg-sign'
alias gcp='git cherry-pick --ff'
alias gcP='git cherry-pick --no-commit'
alias gcr='git revert'
alias gcR='git reset "HEAD^"'
alias gcs='git show'
alias gcsS='git show --pretty=short --show-signature'
alias gcl='git-commit-lost'
alias gcy='git cherry --verbose --abbrev'
alias gcY='git cherry --verbose'
# Conflict (C)
alias gCl='git status | sed -n "s/^.*both [a-z]*ed: *//p"'
alias gCa='git add $(gCl)'
alias gCe='git mergetool $(gCl)'
alias gCo='git checkout --ours --'
alias gCO='gCo $(gCl)'
alias gCt='git checkout --theirs --'
alias gCT='gCt $(gCl)'
# Conflict (C)
alias gCl='git --no-pager diff --name-only --diff-filter=U'
alias gCa='git add $(gCl)'
alias gCe='git mergetool $(gCl)'
alias gCo='git checkout --ours --'
alias gCO='gCo $(gCl)'
alias gCt='git checkout --theirs --'
alias gCT='gCt $(gCl)'
# Data (d)
alias gd='git ls-files'
alias gdc='git ls-files --cached'
alias gdx='git ls-files --deleted'
alias gdm='git ls-files --modified'
alias gdu='git ls-files --other --exclude-standard'
alias gdk='git ls-files --killed'
alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"'
# Data (d)
alias gd='git ls-files'
alias gdc='git ls-files --cached'
alias gdx='git ls-files --deleted'
alias gdm='git ls-files --modified'
alias gdu='git ls-files --other --exclude-standard'
alias gdk='git ls-files --killed'
alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"'
# Fetch (f)
alias gf='git fetch'
alias gfc='git clone'
alias gfm='git pull'
alias gfr='git pull --rebase'
# Fetch (f)
alias gf='git fetch'
alias gfa='git fetch --all'
alias gfc='git clone'
alias gfcr='git clone --recurse-submodules'
alias gfm='git pull'
alias gfma='git pull --autostash'
alias gfr='git pull --rebase'
alias gfra='git pull --rebase --autostash'
# Grep (g)
alias gg='git grep'
alias ggi='git grep --ignore-case'
alias ggl='git grep --files-with-matches'
alias ggL='git grep --files-without-matches'
alias ggv='git grep --invert-match'
alias ggw='git grep --word-regexp'
# Flow (F)
alias gFi='git flow init'
alias gFf='git flow feature'
alias gFb='git flow bugfix'
alias gFl='git flow release'
alias gFh='git flow hotfix'
alias gFs='git flow support'
# Index (i)
alias gia='git add'
alias giA='git add --patch'
alias giu='git add --update'
alias gid='git diff --no-ext-diff --cached'
alias giD='git diff --no-ext-diff --cached --word-diff'
alias gir='git reset'
alias giR='git reset --patch'
alias gix='git rm -r --cached'
alias giX='git rm -rf --cached'
alias gFfl='git flow feature list'
alias gFfs='git flow feature start'
alias gFff='git flow feature finish'
alias gFfp='git flow feature publish'
alias gFft='git flow feature track'
alias gFfd='git flow feature diff'
alias gFfr='git flow feature rebase'
alias gFfc='git flow feature checkout'
alias gFfm='git flow feature pull'
alias gFfx='git flow feature delete'
# Log (l)
alias gl='git log --topo-order --pretty=format:${_git_log_medium_format}'
alias gls='git log --topo-order --stat --pretty=format:${_git_log_medium_format}'
alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:${_git_log_medium_format}'
alias glo='git log --topo-order --pretty=format:${_git_log_oneline_format}'
alias glg='git log --topo-order --all --graph --pretty=format:${_git_log_oneline_format}'
alias glb='git log --topo-order --pretty=format:${_git_log_brief_format}'
alias glc='git shortlog --summary --numbered'
alias gFbl='git flow bugfix list'
alias gFbs='git flow bugfix start'
alias gFbf='git flow bugfix finish'
alias gFbp='git flow bugfix publish'
alias gFbt='git flow bugfix track'
alias gFbd='git flow bugfix diff'
alias gFbr='git flow bugfix rebase'
alias gFbc='git flow bugfix checkout'
alias gFbm='git flow bugfix pull'
alias gFbx='git flow bugfix delete'
# Merge (m)
alias gm='git merge'
alias gmC='git merge --no-commit'
alias gmF='git merge --no-ff'
alias gma='git merge --abort'
alias gmt='git mergetool'
alias gFll='git flow release list'
alias gFls='git flow release start'
alias gFlf='git flow release finish'
alias gFlp='git flow release publish'
alias gFlt='git flow release track'
alias gFld='git flow release diff'
alias gFlr='git flow release rebase'
alias gFlc='git flow release checkout'
alias gFlm='git flow release pull'
alias gFlx='git flow release delete'
# Push (p)
alias gp='git push'
alias gpf='git push --force'
alias gpa='git push --all'
alias gpA='git push --all && git push --tags'
alias gpt='git push --tags'
alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"'
alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"'
alias gFhl='git flow hotfix list'
alias gFhs='git flow hotfix start'
alias gFhf='git flow hotfix finish'
alias gFhp='git flow hotfix publish'
alias gFht='git flow hotfix track'
alias gFhd='git flow hotfix diff'
alias gFhr='git flow hotfix rebase'
alias gFhc='git flow hotfix checkout'
alias gFhm='git flow hotfix pull'
alias gFhx='git flow hotfix delete'
# Rebase (r)
alias gr='git rebase'
alias gra='git rebase --abort'
alias grc='git rebase --continue'
alias gri='git rebase --interactive'
alias grs='git rebase --skip'
alias gFsl='git flow support list'
alias gFss='git flow support start'
alias gFsf='git flow support finish'
alias gFsp='git flow support publish'
alias gFst='git flow support track'
alias gFsd='git flow support diff'
alias gFsr='git flow support rebase'
alias gFsc='git flow support checkout'
alias gFsm='git flow support pull'
alias gFsx='git flow support delete'
# Remote (R)
alias gR='git remote'
alias gRl='git remote --verbose'
alias gRa='git remote add'
alias gRx='git remote rm'
alias gRm='git remote rename'
alias gRu='git remote update'
alias gRp='git remote prune'
alias gRs='git remote show'
alias gRb='git-hub-browse'
# Grep (g)
alias gg='git grep'
alias ggi='git grep --ignore-case'
alias ggl='git grep --files-with-matches'
alias ggL='git grep --files-without-matches'
alias ggv='git grep --invert-match'
alias ggw='git grep --word-regexp'
# Stash (s)
alias gs='git stash'
alias gsa='git stash apply'
alias gsx='git stash drop'
alias gsX='git-stash-clear-interactive'
alias gsl='git stash list'
alias gsL='git-stash-dropped'
alias gsd='git stash show --patch --stat'
alias gsp='git stash pop'
alias gsr='git-stash-recover'
alias gss='git stash save --include-untracked'
alias gsS='git stash save --patch --no-keep-index'
alias gsw='git stash save --include-untracked --keep-index'
# Index (i)
alias gia='git add'
alias giA='git add --patch'
alias giu='git add --update'
alias gid='git diff --no-ext-diff --cached'
alias giD='git diff --no-ext-diff --cached --word-diff'
alias gii='git update-index --assume-unchanged'
alias giI='git update-index --no-assume-unchanged'
alias gir='git reset'
alias giR='git reset --patch'
alias gix='git rm -r --cached'
alias giX='git rm -r --force --cached'
# Submodule (S)
alias gS='git submodule'
alias gSa='git submodule add'
alias gSf='git submodule foreach'
alias gSi='git submodule init'
alias gSI='git submodule update --init --recursive'
alias gSl='git submodule status'
alias gSm='git-submodule-move'
alias gSs='git submodule sync'
alias gSu='git submodule foreach git pull origin master'
alias gSx='git-submodule-remove'
# Log (l)
alias gl='git log --topo-order --pretty=format:"$_git_log_medium_format"'
alias gls='git log --topo-order --stat --pretty=format:"$_git_log_medium_format"'
alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"$_git_log_medium_format"'
alias glo='git log --topo-order --pretty=format:"$_git_log_oneline_format"'
alias glg='git log --topo-order --graph --pretty=format:"$_git_log_oneline_format"'
alias glb='git log --topo-order --pretty=format:"$_git_log_brief_format"'
alias glc='git shortlog --summary --numbered'
alias glS='git log --show-signature'
# Working Copy (w)
alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short'
alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}'
alias gwd='git diff --no-ext-diff'
alias gwD='git diff --no-ext-diff --word-diff'
alias gwr='git reset --soft'
alias gwR='git reset --hard'
alias gwc='git clean -n'
alias gwC='git clean -f'
alias gwx='git rm -r'
alias gwX='git rm -rf'
# Merge (m)
alias gm='git merge'
alias gmC='git merge --no-commit'
alias gmF='git merge --no-ff'
alias gma='git merge --abort'
alias gmt='git mergetool'
# Push (p)
alias gp='git push'
alias gpf='git push --force-with-lease'
alias gpF='git push --force'
alias gpa='git push --all'
alias gpA='git push --all && git push --tags'
alias gpt='git push --tags'
alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"'
alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"'
# Rebase (r)
alias gr='git rebase'
alias gra='git rebase --abort'
alias grc='git rebase --continue'
alias gri='git rebase --interactive'
alias grs='git rebase --skip'
# Remote (R)
alias gR='git remote'
alias gRl='git remote --verbose'
alias gRa='git remote add'
alias gRx='git remote rm'
alias gRm='git remote rename'
alias gRu='git remote update'
alias gRp='git remote prune'
alias gRs='git remote show'
alias gRb='git-hub-browse'
# Stash (s)
alias gs='git stash'
alias gsa='git stash apply'
alias gsx='git stash drop'
alias gsX='git-stash-clear-interactive'
alias gsl='git stash list'
alias gsL='git-stash-dropped'
alias gsd='git stash show --patch --stat'
alias gsp='git stash pop'
alias gsr='git-stash-recover'
alias gss='git stash save --include-untracked'
alias gsS='git stash save --patch --no-keep-index'
alias gsw='git stash save --include-untracked --keep-index'
# Submodule (S)
alias gS='git submodule'
alias gSa='git submodule add'
alias gSf='git submodule foreach'
alias gSi='git submodule init'
alias gSI='git submodule update --init --recursive'
alias gSl='git submodule status'
alias gSm='git-submodule-move'
alias gSs='git submodule sync'
alias gSu='git submodule update --remote --recursive'
alias gSx='git-submodule-remove'
# Tag (t)
alias gt='git tag'
alias gtl='git tag --list'
alias gts='git tag --sign'
alias gtv='git verify-tag'
# Working Copy (w)
alias gws='git status --ignore-submodules=$_git_status_ignore_submodules --short'
alias gwS='git status --ignore-submodules=$_git_status_ignore_submodules'
alias gwd='git diff --no-ext-diff'
alias gwD='git diff --no-ext-diff --word-diff'
alias gwr='git reset --soft'
alias gwR='git reset --hard'
alias gwc='git clean --dry-run'
alias gwC='git clean --force'
alias gwx='git rm -r'
alias gwX='git rm -r --force'
fi

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,10 +39,9 @@ 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
return $ret

View File

@ -8,5 +8,9 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
_arguments '1:url:' && return 0
local service="$service"
zstyle ":completion:*:${service}:*:prefixes" ignored-patterns '^http(|s)://'
zstyle ":completion:*:${service}:*:hosts" ignored-patterns '^*github.com'
_arguments '1::GitHub URL:_urls' '2::code:' && return 0

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

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-
)
@ -38,4 +38,3 @@ case "$state" in
esac
return $ret

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,10 +18,9 @@ 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-
)
_describe -t submodule 'submodules' submodules && return 0

View File

@ -5,12 +5,14 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! git rev-parse 2> /dev/null; then
# function git-branch-current {
if ! command git rev-parse 2> /dev/null; then
print "$0: not a repository: $PWD" >&2
return 1
fi
local ref="$(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/}"
@ -19,3 +21,4 @@ else
return 1
fi
# }

View File

@ -5,17 +5,20 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-commit-lost {
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
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 \
--pretty=format:${_git_log_oneline_format}
# }

View File

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

View File

@ -5,7 +5,9 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-hub-browse {
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
@ -13,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
@ -21,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
@ -37,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
@ -57,3 +59,4 @@ else
return 1
fi
# }

View File

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

View File

@ -5,7 +5,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Gets the Git special action (am, bisect, cherry, merge, rebase).
# Gets the Git special action (am, bisect, cherry, merge, rebase, revert).
# Borrowed from vcs_info and edited.
function _git-action {
local action_dir
@ -18,22 +18,26 @@ function _git-action {
local rebase_formatted
local rebase_interactive_formatted
local rebase_merge_formatted
local revert_formatted
local revert_sequence_formatted
for action_dir in \
"${git_dir}/rebase-apply" \
"${git_dir}/rebase" \
"${git_dir}/../.dotest"
"$git_dir/rebase-apply" \
"$git_dir/rebase" \
"$git_dir/../.dotest"
do
if [[ -d "$action_dir" ]] ; then
zstyle -s ':prezto:module:git:info:action:apply' format 'apply_formatted' || apply_formatted='apply'
zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' || rebase_formatted='rebase'
zstyle -s ':prezto:module:git:info:action:apply' format 'apply_formatted' \
|| apply_formatted='apply'
zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' \
|| rebase_formatted='rebase'
if [[ -f "${action_dir}/rebasing" ]] ; then
if [[ -f "$action_dir/rebasing" ]] ; then
print "$rebase_formatted"
elif [[ -f "${action_dir}/applying" ]] ; then
elif [[ -f "$action_dir/applying" ]] ; then
print "$apply_formatted"
else
print "${rebase_formatted}/${apply_formatted}"
print "$rebase_formatted/$apply_formatted"
fi
return 0
@ -41,47 +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}/BISECT_LOG" ]]; then
zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect'
if [[ -f "$git_dir/REVERT_HEAD" ]]; then
if [[ -d "$git_dir/sequencer" ]] ; then
zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' \
|| revert_sequence_formatted='revert-sequence'
print "$revert_sequence_formatted"
else
zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' \
|| revert_formatted='revert'
print "$revert_formatted"
fi
return 0
fi
if [[ -f "$git_dir/BISECT_LOG" ]]; then
zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' \
|| bisect_formatted='bisect'
print "$bisect_formatted"
return 0
fi
@ -164,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
@ -180,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
@ -190,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
@ -198,10 +222,17 @@ 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
zformat -f stashed_formatted "$stashed_format" "S:$stashed"
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
@ -215,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'
@ -226,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
@ -236,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"
@ -247,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
@ -262,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
@ -276,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 \
@ -296,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} \
@ -314,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 \
@ -329,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
@ -386,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
@ -421,4 +457,3 @@ function git-info {
}
git-info "$@"

View File

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

View File

@ -5,7 +5,9 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-stash-clear-interactive {
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
@ -13,11 +15,12 @@ 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

@ -5,19 +5,22 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-stash-dropped {
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
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 \
--no-walk \
--stdin
# }

View File

@ -5,7 +5,9 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-stash-recover {
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
@ -13,7 +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

@ -5,7 +5,9 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-submodule-move {
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
elif [[ "$PWD" != "$(git-root)" ]]; then
@ -17,17 +19,18 @@ 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

@ -5,24 +5,27 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-submodule-remove {
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
elif [[ "$PWD" != "$(git-root)" ]]; then
print "$0: must be run from the root of the work tree" >&2
return 1
elif ! 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,6 +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,33 +1,34 @@
GNU Utility
===========
# GNU Utility
Provides for the interactive use of GNU utilities on non-GNU systems.
Provides for the interactive use of GNU utilities on 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.
zstyle ':prezto:module:gnu-utility' prefix 'g'
```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
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[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,20 +44,21 @@ _gnu_utility_cmds=(
'libtool' 'libtoolize'
# Miscellaneous
'getopt' 'grep' 'indent' '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}]} )); 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
done
unset _gnu_utility_{p,cmds,cmd,pcmd}

View File

@ -1,27 +1,28 @@
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`_:
enable-ssh-support
```conf
enable-ssh-support
```
When OpenSSH Agent protocol emulation is enabled, this module will load the SSH
module for additional processing.
Authors
-------
## Authors
*The authors of this module should be contacted via the [issue tracker][3].*
_The authors of this module should be contacted via the [issue tracker][3]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: 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

@ -11,27 +11,40 @@ if (( ! $+commands[gpg-agent] )); then
fi
# Set the default paths to gpg-agent files.
_gpg_agent_conf="$HOME/.gnupg/gpg-agent.conf"
_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env"
_gpg_agent_conf="${GNUPGHOME:-$HOME/.gnupg}/gpg-agent.conf"
_gpg_agent_env="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/gpg-agent.env"
# Load environment variables from previous run
source "$_gpg_agent_env" 2> /dev/null
# Start gpg-agent if not started.
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
else
# Export environment variables.
source "$_gpg_agent_env" 2> /dev/null
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
if grep '^enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then
# Load required functions.
autoload -Uz add-zsh-hook
# Override the ssh-agent environment file default path.
_ssh_agent_env="$_gpg_agent_env"
# Load the SSH module for additional processing.
pmodload 'ssh'
# Updates the GPG-Agent TTY before every command since SSH does not set it.
function _gpg-agent-update-tty {
gpg-connect-agent UPDATESTARTUPTTY /bye >/dev/null
}
add-zsh-hook preexec _gpg-agent-update-tty
fi
# Clean up.
@ -41,4 +54,3 @@ unset _gpg_agent_{conf,env}
if [[ -n "$SSH_CONNECTION" ]]; then
export PINENTRY_USER_DATA='USE_CURSES=1'
fi

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

View File

@ -39,4 +39,3 @@ function add-zsh-trap {
}
add-zsh-trap "$@"

View File

@ -12,7 +12,7 @@ function is-autoloadable {
# Checks if a name is a command, function, or alias.
function is-callable {
(( $+commands[$1] )) || (( $+functions[$1] )) || (( $+aliases[$1] ))
(( $+commands[$1] || $+functions[$1] || $+aliases[$1] || $+builtins[$1] ))
}
# Checks a boolean variable for "true".
@ -30,3 +30,27 @@ function coalesce {
return 1
}
# Checks if running on macOS Darwin.
function is-darwin {
[[ "$OSTYPE" == darwin* ]]
}
# Checks if running on Linux.
function is-linux {
[[ "$OSTYPE" == linux* ]]
}
# Checks if running on BSD.
function is-bsd {
[[ "$OSTYPE" == *bsd* ]]
}
# Checks if running on Cygwin (Windows).
function is-cygwin {
[[ "$OSTYPE" == cygwin* ]]
}
# Checks if running on termux (Android).
function is-termux {
[[ "$OSTYPE" == linux-android ]]
}

View File

@ -1,62 +1,79 @@
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 conjuncture with the *syntax-highlighting* module, it
must be loaded **after** it.
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`_:
zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
```sh
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`_:
zstyle ':prezto:module:history-substring-search' color 'yes'
```sh
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`_:
zstyle ':prezto:module:history-substring-search:color' found ''
```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`_:
zstyle ':prezto:module:history-substring-search:color' not-found ''
```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`_:
zstyle ':prezto:module:history-substring-search' globbing-flags ''
```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)
- [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.
source "${0:h}/external/zsh-history-substring-search.zsh" || return 1
if (( ! $+functions[history-substring-search-up] )); then
source "${0:h}/external/zsh-history-substring-search.zsh" || return 1
fi
#
# Search
@ -54,5 +56,6 @@ if [[ -n "$key_info" ]]; then
bindkey -M "$keymap" "$key_info[Up]" history-substring-search-up
bindkey -M "$keymap" "$key_info[Down]" history-substring-search-down
done
fi
unset keymap
fi

View File

@ -1,44 +1,50 @@
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.
- `HIST_EXPIRE_DUPS_FIRST` expires a duplicate event first when trimming history.
- `HIST_IGNORE_DUPS` does not record an event that was just recorded again.
- `HIST_IGNORE_ALL_DUPS` deletes an old recorded event if a new event is a duplicate.
- `HIST_FIND_NO_DUPS` does not display a previously found event.
- `HIST_IGNORE_SPACE` does not record an event starting with a space.
- `HIST_SAVE_NO_DUPS` does not write a duplicate event to the history file.
- `HIST_VERIFY` does not execute immediately upon history expansion.
- `HIST_BEEP` beeps when accessing non-existent history.
- `BANG_HIST` treats the **!** character specially during expansion.
- `EXTENDED_HISTORY` writes the history file in the _:start:elapsed;command_
format.
- `SHARE_HISTORY` shares history between all sessions. Note that
`SHARE_HISTORY`, `INC_APPEND_HISTORY`, and `INC_APPEND_HISTORY_TIME` are
mutually exclusive.
- `HIST_EXPIRE_DUPS_FIRST` expires a duplicate event first when trimming history.
- `HIST_IGNORE_DUPS` does not record an event that was just recorded again.
- `HIST_IGNORE_ALL_DUPS` deletes an old recorded event if a new event is a
duplicate.
- `HIST_FIND_NO_DUPS` does not display a previously found event.
- `HIST_IGNORE_SPACE` does not record an event starting with a space.
- `HIST_SAVE_NO_DUPS` does not write a duplicate event to the history file.
- `HIST_VERIFY` does not execute immediately upon history expansion.
- `HIST_BEEP` beeps when accessing non-existent history.
Aliases
-------
## Variables
- `history-stat` lists the ten most used commands
- `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.
Authors
-------
## Aliases
*The authors of this module should be contacted via the [issue tracker][2].*
- `history-stat` lists the ten most used commands
- [Robby Russell](https://github.com/robbyrussell)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
## Authors
[1]: http://zsh.sourceforge.net/Guide/zshguide02.html#l16
_The authors of this module should be contacted via the [issue tracker][2]._
- [Robby Russell](https://github.com/robbyrussell)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Indrajit Raychaudhuri](https://github.com/indrajitr)
[1]: https://zsh.sourceforge.net/Guide/zshguide02.html#l16
[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,42 @@ 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
#
HISTFILE="${HISTFILE:-${ZDOTDIR:-$HOME}/.zsh_history}" # The path to the history file.
HISTSIZE=10000 # The maximum number of events to save in the internal history.
SAVEHIST=10000 # The maximum number of events to save in the history file.
#
# Aliases
#
# Lists the ten most used commands.
alias history-stat="history 0 | awk '{print \$2}' | sort | uniq -c | sort -n -r | head"
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,26 +1,43 @@
Homebrew
========
# Homebrew
Defines Homebrew aliases.
Defines Homebrew specific environment variables and aliases.
Aliases
-------
## Variables
- `brewc` cleans outdated brews and their cached archives.
- `brewC` cleans outdated brews, including keg-only, and their cached archives.
- `brewi` installs a formula.
- `brewl` lists installed formulae.
- `brews` searches for a formula.
- `brewU` upgrades Homebrew and outdated brews.
- `brewu` upgrades Homebrew.
- `brewx` uninstalls a formula.
Execute the following to list the environment variables loaded in the shell:
Authors
-------
```sh
brew shellenv
```
*The authors of this module should be contacted via the [issue tracker][1].*
## Aliases
- [Sorin Ionescu](https://github.com/sorin-ionescu)
### Homebrew Core
- `brewc` cleans outdated brews and their cached archives.
- `brewi` installs a formula.
- `brewL` lists installed formulae that are not dependencies of another
installed formula.
- `brewl` lists installed formulae.
- `brewo` lists brews which have an update available.
- `brews` searches for a formula.
- `brewu` upgrades outdated formulae.
- `brewx` uninstalls a formula.
### Homebrew Cask
- `caski` installs a cask.
- `caskl` lists installed casks.
- `casko` lists casks which have an update available.
- `casks` searches for a cask.
- `casku` upgrades outdated casks.
- `caskx` uninstalls a cask.
## Authors
_The authors of this module should be contacted via the [issue tracker][1]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Griffin Yourick](https://github.com/tough-griff)
[1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -5,21 +5,43 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Load dependencies.
pmodload 'helper'
# Return if requirements are not found.
if [[ "$OSTYPE" != darwin* ]]; 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 upgrade'
alias brewU='brew update && brew upgrade'
alias brewx='brew remove'
alias brewx='brew uninstall'
# Homebrew Cask
alias caski='brew install --cask'
alias caskl='brew list --cask'
alias casko='brew outdated --cask'
alias casks='brew search --cask'
alias casku='brew upgrade --cask'
alias caskx='brew uninstall --cask'

View File

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

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
@ -32,4 +35,3 @@ alias portU='sudo port selfupdate && sudo port upgrade outdated'
alias portu='sudo port upgrade'
alias portX='sudo port -u uninstall'
alias portx='sudo port uninstall'

View File

@ -1,46 +1,84 @@
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.
Functions
---------
This will be loaded automatically if nvm is installed in `$NVM_DIR`,
_`$XDG_CONFIG_HOME/nvm`_, _`~/.nvm`_, or is installed with homebrew.
- `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.
## Variables
Theming
-------
- `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
To display the version number of the current Node.js version, define the
following style inside the `prompt_name_setup` function.
# %v - Node.js version.
zstyle ':prezto:module:node:info:version' format 'version:%v'
```sh
# %v - Node.js version.
zstyle ':prezto:module:node:info:version' format 'version:%v'
```
Then add `$node_info[version]` to either `$PROMPT` or `$RPROMPT` and call
`node-info` in `prompt_name_preexec` hook function.
Authors
-------
## Authors
*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)
- [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
[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

@ -5,6 +5,14 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# TODO: Make the sections easier to use.
open "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}"
# function node-doc {
if [[ -z "$BROWSER" ]]; then
print "$0: no web browser defined" >&2
return 1
fi
# TODO: Make the sections easier to use.
"$BROWSER" "https://nodejs.org/docs/${$(node --version 2> /dev/null)/%-*}/api/all.html#${1}"
# }

View File

@ -6,6 +6,8 @@
# Zeh Rizzatti <zehrizzatti@gmail.com>
#
# function node-info {
local version
local version_format
local version_formatted
@ -13,13 +15,18 @@ local version_formatted
unset node_info
typeset -gA node_info
if (( $+functions[nvm_version] )); 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 [[ -n "$version" ]]; 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"
fi
# }

View File

@ -1,32 +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 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 manually installed or package manager installed nodenv into the shell
# session.
if (( $#local_nodenv_paths || $+commands[nodenv] )); then
# Ensure manually installed nodenv is added to path when present.
[[ -s $local_nodenv_paths[1] ]] && path=($local_nodenv_paths[1]:h $path)
eval "$(nodenv init - zsh)"
# Load manually installed nvm into the shell session.
elif (( $#local_nvm_paths )); then
source "$local_nvm_paths[1]" --no-use
# Load package manager installed nvm into the shell session.
elif (( $+commands[brew] )) \
&& [[ -d "${nvm_path::="$(brew --prefix 2> /dev/null)"/opt/nvm}" ]]; then
source "$nvm_path/nvm.sh" --no-use
fi
unset local_n{odenv,vm}_paths nvm_path
# Return if requirements are not found.
if (( ! $+commands[node] )); then
if (( ! $+commands[node] && ! $#functions[(i)n(odenv|vm)] )); then
return 1
fi
# Load NPM completion.
if (( $+commands[npm] )); then
cache_file="${0:h}/cache.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,28 +1,24 @@
Ocaml
=====
# OCaml
Initializes [Ocaml][1] package management.
Initializes [OCaml][1] package management.
OPAM
----
## OPAM
[OPAM][2] is a package manager for Ocaml.
[OPAM][2] is a package manager for OCaml.
This module enables local package installation with OPAM by extending the
relevant path and Ocaml variables.
relevant path and OCaml variables.
### Usage
Install packages to your local package directory with `opam install`.
Authors
-------
## Authors
*The authors of this module should be contacted via the [issue tracker][3].*
_The authors of this module should be contacted via the [issue tracker][3]._
- [Sebastian Wiesner](https://github.com/lunaryorn)
- [Sebastian Wiesner](https://github.com/lunaryorn)
[1]: http://ocaml.org/
[1]: https://ocaml.org/
[2]: http://opam.ocamlpro.com/
[3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -1,15 +1,14 @@
#
# Initializes Ocaml package management.
# Initializes OCaml package management.
#
# Authors:
# Sebastian Wiesner <lunaryorn@gmail.com>
#
# Return if requirements are not found.
if (( ! $+commands[opam] )); then
if [[ ! -f "$HOME/.opam/opam-init/init.zsh" ]]; then
return 1
fi
# Initialize OPAM.
eval "$(opam config env)"
source "$HOME/.opam/opam-init/init.zsh"

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,19 +0,0 @@
VIM text objects
========================
Integrates [opp][1] into Prezto, which implements [vim text objects][2] right into vim mode of prezto.
Due to some conflicts with prezto loading, opp will get compiled during initial run.
Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].*
- [Takeshi Banse](https://github.com/hchbaw)
[1]: https://github.com/hchbaw/opp.zsh
[2]: http://blog.carbonfive.com/2011/10/17/vim-text-objects-the-definitive-guide/
[3]: https://github.com/hchbaw/opp.zsh/issues?state=open

View File

@ -1,20 +0,0 @@
# Vim's text-objects-ish for zsh.
# Author: Takeshi Banse <takebi@laafc.net>
# License: Public Domain
# Thank you very much, Bram Moolenaar!
# I want to use the Vim's text-objects in zsh.
if [[ ! -f ${0:h}/functions/opp.zwc ]] ||
[[ ! -f ${0:h}/functions/opp-install.zwc ]]; then
(
. "${0:h}/external/opp.zsh"
. "${0:h}/external/opp/surround.zsh"
. "${0:h}/external/opp/textobj-between.zsh"
opp-zcompile "${0:h}/external/opp.zsh" ${0:h}/functions > /dev/null
)
fpath+=${0:h}/functions > /dev/null
. ${0:h}/functions/opp-install
autoload opp
fi
opp-install

View File

@ -1,37 +1,50 @@
OSX
===
# OSX
Defines [Mac OS X][1] aliases and functions.
Defines [macOS][1] aliases and functions.
Aliases
-------
This module must be loaded _before_ the [_`completion`_][2] module so that the
provided completion definitions are loaded automatically by _`completion`_
module.
- `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.
## Settings
Functions
---------
### Dash Keyword
- `mand` opens _man_ pages in [_Dash.app_][2].
- `manp` opens _man_ pages in _Preview.app_.
- `pfd` prints the current _Finder_ directory.
- `pfs` prints the current _Finder_ selection.
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]).
- `ql` previews files in Quick Look.
- `osx-rm-dir-metadata` deletes .DS\_Store, \_\_MACOSX cruft.
- `osx-ls-download-history` displays the Mac OS X download history.
- `osx-rm-download-history` deletes the Mac OS X download history.
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].
Authors
-------
```sh
zstyle ':prezto:module:osx:man' dash-keyword 'keyword'
```
*The authors of this module should be contacted via the [issue tracker][4].*
## Aliases
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- `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.
[1]: http://www.apple.com/macosx/
[2]: http://kapeli.com/dash
[3]: http://www.iterm2.com/
[4]: https://github.com/sorin-ionescu/prezto/issues
## Functions
- `mand` opens _man_ pages in [_Dash.app_][3].
- `manp` opens _man_ pages in _Preview.app_.
- `pfd` prints the current _Finder_ directory.
- `pfs` prints the current _Finder_ selection.
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm.app_][4]).
- `ql` previews files in Quick Look.
- `osx-rm-dir-metadata` deletes _`.DS_Store`_, _`__MACOSX`_ cruft.
- `osx-ls-download-history` displays the macOS download history.
- `osx-rm-download-history` deletes the macOS download history.
## Authors
_The authors of this module should be contacted via the [issue tracker][5]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://www.apple.com/macos/
[2]: ../completion#readme
[3]: https://kapeli.com/dash
[4]: https://www.iterm2.com/
[5]: https://github.com/sorin-ionescu/prezto/issues

View File

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

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