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

Compare commits

..

339 Commits

Author SHA1 Message Date
3524cc20f0 Add comments for pdebuglog 2018-02-12 15:16:21 -08:00
6ab2cc012e zdebuglog -> pdebuglog 2018-02-12 15:14:08 -08:00
658ec4e4a7 Add zdebuglog for basic debug logging and profiling 2018-02-07 13:38:54 -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
181 changed files with 3801 additions and 893 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

21
.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,3 +10,21 @@
[submodule "modules/completion/external"]
path = modules/completion/external
url = https://github.com/zsh-users/zsh-completions.git
[submodule "modules/prompt/external/powerline"]
path = modules/prompt/external/powerline
url = https://github.com/davidjrice/prezto_powerline.git
[submodule "modules/prompt/external/agnoster"]
path = modules/prompt/external/agnoster
url = https://github.com/agnoster/agnoster-zsh-theme.git
[submodule "modules/prompt/functions/pure"]
path = modules/prompt/external/pure
url = https://github.com/sindresorhus/pure.git
[submodule "modules/fasd/external"]
path = modules/fasd/external
url = https://github.com/clvv/fasd.git
[submodule "modules/prompt/external/async"]
path = modules/prompt/external/async
url = https://github.com/mafredri/zsh-async.git
[submodule "modules/prompt/external/powerlevel9k"]
path = modules/prompt/external/powerlevel9k
url = https://github.com/bhilburn/powerlevel9k.git

View File

@ -23,6 +23,39 @@ improve its performance, do not hesitate to fork and send pull requests.
- Open a [pull request][4] that relates to but one subject with a clear
title and description in grammatically correct, complete sentences.
#### Code Style
This project follows the [Google Shell Style Guide][5] when possible. However,
there are a number of additional things to keep in mind.
- Local variables should be used whenever possible.
- Prefer `zstyle` over environment variables for configuration.
- Prefer (( ... )) over [[ ... ]] for arithmetic expression.
- Use the function keyword to define functions.
- The 80 character hard limit can be waved for readability.
#### Using an Alternative zprezto Directory
To work on zprezto without messing with your current configuration:
```sh
mkdir devel-zprezto
cd devel-zprezto
git clone --recursive https://github.com/sorin-ionescu/prezto.git .zprezto
ZDOTDIR=$(pwd)
echo "Your development ZDOTDIR is $ZDOTDIR"
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
```
Then to start zsh in this development environment you will run:
```sh
ZDOTDIR=/path/to/devel-zprezto zsh
```
#### Modules
- A *README.md* must be present.
@ -32,11 +65,11 @@ improve its performance, do not hesitate to fork and send pull requests.
#### Themes
- A screenshots section must be present in the file header.
- The pull request description must have [embedded screenshots][5].
- The pull request description must have [embedded screenshots][6].
[1]: https://github.com/sorin-ionescu/prezto/contributors
[2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request
[3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[4]: https://help.github.com/articles/using-pull-requests
[5]: http://daringfireball.net/projects/markdown/syntax#img
[5]: https://google.github.io/styleguide/shell.xml
[6]: http://daringfireball.net/projects/markdown/syntax#img

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

View File

@ -9,27 +9,41 @@ Installation
------------
Prezto will work with any recent release of Zsh, but the minimum required
version is 4.3.17.
version is 4.3.11.
1. Launch Zsh:
zsh
```console
zsh
```
2. 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:
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
```sh
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
```
Note: If you already have any of the given config files, ln will error. In
simple cases you can add `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to
the bottom of your `.zshrc` to load prezto but keep your config intact. For
more complicated setups, it is recommended that you back up your original
configs and replace them with the provided prezto runcoms.
4. Set Zsh as your default shell:
chsh -s /bin/zsh
```console
chsh -s /bin/zsh
```
5. Open a new Zsh terminal window or tab.
@ -42,9 +56,18 @@ window or tab.
Updating
--------
Pull the latest changes and update submodules.
Run `zprezto-update` to automatically check if there is an update to zprezto.
If there are no file conflicts, zprezto and its submodules will be
automatically updated. If there are conflicts you will instructed to go into
the `$ZPREZTODIR` directory and resolve them yourself.
git pull && git submodule update --init --recursive
To pull the latest changes and update submodules manually:
```console
cd $ZPREZTODIR
git pull
git submodule update --init --recursive
```
Usage
-----
@ -67,6 +90,19 @@ accompanying README files to learn of what is available.
![sorin theme][2]
### External Modules
1. By default modules will be loaded from */modules* and */contrib*.
2. Additional module directories can be added to the
`:prezto:load:pmodule-dirs` setting in *~/.zpreztorc*.
Note that module names need to be unique or they will cause an error when
loading.
```console
zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib
```
Customization
-------------
@ -83,35 +119,13 @@ The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable.
License
-------
(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.
This project is licensed under the MIT License.
[1]: http://www.zsh.org
[2]: http://i.imgur.com/nBEEZ.png "sorin theme"
[2]: http://i.imgur.com/nrGV6pg.png "sorin theme"
[3]: http://git-scm.com
[4]: https://github.com
[5]: http://gitimmersion.com
[6]: http://gitref.org
[7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf
[8]: http://grml.org/zsh/zsh-lovers.html

147
init.zsh
View File

@ -10,13 +10,75 @@
#
# Check for the minimum supported version.
min_zsh_version='4.3.17'
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
# Change the resolution of the SECONDS variable to be more useful for debugging.
typeset -F SECONDS
# logging convenience, mostly meant for debugging performance issues.
function pdebuglog {
if ! zstyle -t ":prezto" debug; then
return
fi
local format="$1"
shift
printf "[%f] $format\n" $SECONDS "$@"
}
# zprezto convenience updater
# The function is surrounded by ( ) instead of { } so it starts in a subshell
# and won't affect the environment of the calling shell
function zprezto-update {
(
function cannot-fast-forward {
local STATUS="$1"
[[ -n "${STATUS}" ]] && printf "%s\n" "${STATUS}"
printf "Unable to fast-forward the changes. You can fix this by "
printf "running\ncd '%s' and then\n'git pull' " "${ZPREZTODIR}"
printf "to manually pull and possibly merge in changes\n"
}
cd -q -- "${ZPREZTODIR}" || return 7
local orig_branch="$(git symbolic-ref HEAD 2> /dev/null | cut -d '/' -f 3)"
if [[ "$orig_branch" == "master" ]]; then
git fetch || return "$?"
local UPSTREAM=$(git rev-parse '@{u}')
local LOCAL=$(git rev-parse HEAD)
local REMOTE=$(git rev-parse "$UPSTREAM")
local BASE=$(git merge-base HEAD "$UPSTREAM")
if [[ $LOCAL == $REMOTE ]]; then
printf "There are no updates.\n"
return 0
elif [[ $LOCAL == $BASE ]]; then
printf "There is an update available. Trying to pull.\n\n"
if git pull --ff-only; then
printf "Syncing submodules\n"
git submodule update --recursive
return $?
else
cannot-fast-forward
return 1
fi
elif [[ $REMOTE == $BASE ]]; then
cannot-fast-forward "Commits in master that aren't in upstream."
return 1
else
cannot-fast-forward "Upstream and local have diverged."
return 1
fi
else
printf "zprezto install at '%s' is not on the master branch " "${ZPREZTODIR}"
printf "(you're on '%s')\nUnable to automatically update.\n" "${orig_branch}"
return 1
fi
return 1
)
}
#
# Module Loader
#
@ -24,44 +86,71 @@ 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
pdebuglog "Started loading %q" $pmodule
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
pdebuglog "Module %q already loaded" $pmodule
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
print "$0: conflicting module locations: $locations"
continue
elif (( ${#locations} < 1 )); then
print "$0: no such module: $pmodule"
continue
fi
# Grab the full path to this module
pmodule_location=${locations[1]}
# Add functions to $fpath.
fpath=(${pmodule_location}/functions(/FN) $fpath)
function {
local pfunction
# Extended globbing is needed for listing autoloadable function directories.
setopt LOCAL_OPTIONS EXTENDED_GLOB
# Load Prezto functions.
for pfunction in ${pmodule_location}/functions/$~pfunction_glob; do
autoload -Uz "$pfunction"
done
}
if [[ -s "${pmodule_location}/init.zsh" ]]; then
source "${pmodule_location}/init.zsh"
elif [[ -s "${pmodule_location}/${pmodule}.plugin.zsh" ]]; then
source "${pmodule_location}/${pmodule}.plugin.zsh"
fi
if (( $? == 0 )); then
zstyle ":prezto:module:$pmodule" loaded 'yes'
pdebuglog "Module %q loaded" $pmodule
else
# Remove the $fpath entry.
fpath[(r)${ZDOTDIR:-$HOME}/.zprezto/modules/${pmodule}/functions]=()
fpath[(r)${pmodule_location}/functions]=()
function {
local pfunction
@ -71,11 +160,12 @@ 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
}
pdebuglog "Module %q failed to load" $pmodule
zstyle ":prezto:module:$pmodule" loaded 'no'
fi
fi
@ -86,6 +176,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"
@ -111,4 +207,3 @@ unset zfunction{s,}
zstyle -a ':prezto:load' pmodule 'pmodules'
pmodload "$pmodules[@]"
unset pmodules

View File

@ -3,13 +3,20 @@ Modules
Load modules in *zpreztorc*. The order matters.
zstyle ':prezto:load' pmodule 'environment' 'terminal'
```sh
zstyle ':prezto:load' pmodule 'environment' 'terminal'
```
Archive
-------
Provides functions to list and extract archives.
Autosuggestions
---------------
Integrates zsh-autosuggestions into Prezto.
Command-Not-Found
-----------------
@ -26,6 +33,11 @@ Directory
Sets directory options and defines directory aliases.
DNF
---
Defines dnf aliases.
Dpkg
----
@ -92,7 +104,7 @@ Homebrew
Defines Homebrew aliases.
Macports
MacPorts
--------
Defines MacPorts aliases and adds MacPorts directories to path variables.
@ -192,4 +204,3 @@ Yum
---
Defines yum aliases.

View File

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

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|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|jar|rar|7z|deb)(-.)'" && return 0

View File

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

View File

@ -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 \
@ -40,13 +42,15 @@ while (( $# > 0 )); do
&& tar --lzma -t${verbose:+v}f "$1" \
|| lzcat "$1" | tar x${verbose:+v}f - ;;
(*.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 +58,4 @@ while (( $# > 0 )); do
shift
done
# }

View File

@ -5,9 +5,12 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function unarchive {
local remove_archive
local success
local file_name
local file_path
local extract_dir
if (( $# == 0 )); then
@ -36,8 +39,9 @@ while (( $# > 0 )); do
success=0
file_name="${1:t}"
file_path="${1:A}"
extract_dir="${file_name:r}"
case "$1" in
case "$1:l" in
(*.tar.gz|*.tgz) tar xvzf "$1" ;;
(*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;;
(*.tar.xz|*.txz) tar --xz --help &> /dev/null \
@ -52,18 +56,20 @@ while (( $# > 0 )); do
(*.xz) unxz "$1" ;;
(*.lzma) unlzma "$1" ;;
(*.Z) uncompress "$1" ;;
(*.zip) unzip "$1" -d $extract_dir ;;
(*.rar) unrar &> /dev/null \
&& unrar x -ad "$1" \
|| rar x -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 +83,4 @@ while (( $# > 0 )); do
shift
done
# }

View File

@ -0,0 +1,58 @@
Autosuggestions
---------------
Integrates zsh-autosuggestions into Prezto.
Autosuggestions
===============
Integrates [zsh-autosuggestions][1] into Prezto, which implements the
[Fish shell][2]'s autosuggestions feature, where the user can type in any part
of a previously entered command and Zsh suggests commands as you type based on
history and completions.
If this module is used in conjunction with the *syntax-highlighting* module,
this module must be loaded **after** the *syntax-highlighting* module.
If this module is used in conjunction with the *history-substring-search*
module, this module must be loaded **after** the *history-substring-search*
module.
Contributors
------------
New features and bug fixes should be submitted to the [zsh-autosuggestions][1]
project according to its rules and regulations. This module will be synchronized
against it.
Settings
--------
### Highlighting
If colors are enabled, *autosuggestions* will automatically highlight
positive results.
To enable highlighting for this module only, add the following line to
*zpreztorc*:
```sh
zstyle ':prezto:module:autosuggestions' color 'yes'
```
To set the query found color, add the following line to *zpreztorc*:
```sh
zstyle ':prezto:module:autosuggestions:color' found ''
```
Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].*
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/tarruda/zsh-autosuggestions
[2]: http://fishshell.com
[3]: https://github.com/sorin-ionescu/prezto/issues

View File

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

@ -1,16 +1,23 @@
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.
Debian-based and Arch Linux-based distributions use the [`command-not-found`][1] tool.
macOS uses Homebrew's [`command-not-found` clone][2]. Note that you also need to [follow the instructions to tap the `command-not-found` homebrew repository][3].
Authors
-------
*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][4].*
- [Joseph Booker](https://github.com/sargas)
[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,10 @@ 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 Mac OS X when homebrew tap is configured.
elif (( $+commands[brew] )) && brew command command-not-found-init > /dev/null 2>&1; then
eval "$(brew command-not-found-init)"
# Return if requirements are not found.
else
return 1
fi

View File

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

View File

@ -14,9 +14,6 @@ fi
# Add zsh-completions to $fpath.
fpath=("${0:h}/external/src" $fpath)
# Load and initialize the completion system ignoring insecure directories.
autoload -Uz compinit && compinit -i
#
# Options
#
@ -24,17 +21,30 @@ autoload -Uz compinit && compinit -i
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_MENU # Show completion menu on a successive tab press.
setopt AUTO_LIST # Automatically list choices on ambiguous completion.
setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash.
setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
# Load and initialize the completion system ignoring insecure directories with a
# cache time of 20 hours, so it should almost always regenerate the first time a
# shell is opened each day.
autoload -Uz compinit
_comp_files=(${ZDOTDIR:-$HOME}/.zcompdump(Nm-20))
if (( $#_comp_files )); then
compinit -i -C
else
compinit -i
fi
unset _comp_files
#
# Styles
#
# Use caching to make completion for cammands such as dpkg and apt usable.
# Use caching to make completion for commands such as dpkg and apt usable.
zstyle ':completion::complete:*' use-cache on
zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache"
@ -66,8 +76,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))'
@ -91,11 +102,14 @@ zstyle ':completion:*:history-words' menu yes
# Environmental 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/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 +130,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,command -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 +153,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

@ -33,4 +33,3 @@ Authors
- [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

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

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

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

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

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

@ -39,4 +39,3 @@ Authors
[1]: http://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

@ -11,14 +11,27 @@ Settings
To enable key bindings, add the following to *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*.
zstyle ':prezto:module:editor' dot-expansion 'yes'
```sh
zstyle ':prezto:module:editor' dot-expansion 'yes'
```
### PS Context
To enable the prompt context to be set, add the following to your
*zpreztorc*.
```sh
zstyle ':prezto:module:editor' ps-context 'yes'
```
Theming
-------
@ -26,31 +39,56 @@ 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`.
Convenience Functions
---------------------
### bindkey-all
Provides a function `bindkey-all` which can be useful for checking how all of the
keys are bound. Normal `bindkey` command will only list the keys bound for one
keymap, which is not as useful if you want to grep through the output. The
keymap's names go to stderr so when you grep through bindkey-all's output you
will still see the headings and can tell which keymap each binding goes to.
It will also pass through arguments so you can use bindkey-all to set bindings
for all keymaps at once. If provided arguments it will *not* print out the
names of each of the keymaps, and just run the command for each keymap.
Authors
-------
@ -59,4 +97,3 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/oh-my-zsh/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,33 +27,37 @@ 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
@ -76,7 +79,15 @@ 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 {
@ -101,12 +112,27 @@ function editor-info {
fi
unset REPLY
zle reset-prompt
zle -R
zle zle-reset-prompt
}
zle -N editor-info
# Reset the prompt based on the current context and
# the ps-context option.
function zle-reset-prompt {
if zstyle -t ':prezto:module:editor' ps-context; then
# If we aren't within one of the specified contexts, then we want to reset
# the prompt with the appropriate editor_info[keymap] if there is one.
if [[ $CONTEXT != (select|cont) ]]; then
zle reset-prompt
zle -R
fi
else
zle reset-prompt
zle -R
fi
}
zle -N zle-reset-prompt
# Updates editor information when the keymap changes.
function zle-keymap-select {
zle editor-info
@ -184,6 +210,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 +233,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 +269,10 @@ 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]}"
bindkey -M emacs "$key" emacs-backward-word
for key in "$key_info[Escape]"{F,f} "${(s: :)key_info[ControlRight]}"
bindkey -M emacs "$key" emacs-forward-word
# Kill to the beginning of the line.
for key in "$key_info[Escape]"{K,k}
@ -234,12 +297,18 @@ 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
@ -253,14 +322,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 +419,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 +446,4 @@ else
print "prezto: editor: invalid key bindings: $key_bindings" >&2
fi
unset key{,map,bindings}
unset key{,map,_bindings}

View File

@ -13,14 +13,14 @@ Contributors
This module **MUST NOT** rely on any command not built in Zsh.
Non-interactive environment variables should be defined in *zshenv*.
Non-interactive environment variables should be defined in [`zshenv`][1].
Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].*
*The authors of this module should be contacted via the [issue tracker][2].*
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues
[1]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zshenv
[2]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -9,18 +9,34 @@
# 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 ]]; then
if is-at-least 5.2; then
autoload -Uz bracketed-paste-url-magic
zle -N bracketed-paste bracketed-paste-url-magic
else
if is-at-least 5.1; then
autoload -Uz bracketed-paste-magic
zle -N bracketed-paste bracketed-paste-magic
fi
fi
autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic
fi
#
# General
#
setopt 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.
#
# Jobs
@ -33,15 +49,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 +62,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

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

1
modules/fasd/external Submodule

Submodule modules/fasd/external added at 90b531a5da

View File

@ -9,16 +9,17 @@
# 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"
cache_file="${TMPDIR:-/tmp}/prezto-fasd-cache.$UID.zsh"
if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file" ]]; then
# Set the base init arguments.
init_args=(zsh-hook)
@ -51,4 +52,3 @@ function fasd_cd {
# Changes the current working directory interactively.
alias j='fasd_cd -i'

View File

@ -15,20 +15,30 @@ 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.
zstyle ':prezto:module:git:log:context' format ''
```sh
zstyle ':prezto:module:git:log:context' format ''
```
### Status
Retrieving the status of a repository with submodules can take a long time.
Submodules may be ignored when they are *dirty*, *untracked*, *all*, or *none*.
zstyle ':prezto:module:git:status:ignore' submodules 'all'
```sh
zstyle ':prezto:module:git:status:ignore' submodules 'all'
```
This setting affects all aliases and functions that call `git-status`.
Aliases
-------
Aliases are enabled by default. You can disable them with:
```sh
zstyle ':prezto:module:git:alias' skip 'yes'
```
### Git
- `g` is short for `git`.
@ -37,15 +47,17 @@ Aliases
- `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.
- `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.
- `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.
- `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
@ -53,11 +65,16 @@ Aliases
- `gc` records changes to the repository.
- `gca` stages all modified and deleted files.
- `gcm` records changes to the repository with the given message.
- `gcS` records changes to the repository. (Signed)
- `gcSa` stages all modified and deleted files. (Signed)
- `gcSm` records changes to the repository with the given message. (Signed) - `gco` checks out a branch or paths to work tree.
- `gcam` stages all modified and deleted files, and records changes to the repository with the given message.
- `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 using the same log message as *HEAD*.
- `gcSf` amends the tip of the current branch using the same log message as *HEAD*. (Signed)
- `gcF` amends the tip of the current branch.
- `gcSF` amends the tip of the current branch. (Signed)
- `gcp` applies changes introduced by existing commits.
- `gcP` applies changes introduced by existing commits without committing.
- `gcr` reverts existing commits by reverting patches and recording new
@ -89,10 +106,86 @@ Aliases
### Fetch
- `gf` downloads objects and references from another repository.
- `gfa` downloads objects and references from all remote repositories.
- `gfc` clones a repository into a new directory.
- `gfcr` clones a repository into a new directory including all submodules.
- `gfm` fetches from and merges with another repository or local branch.
- `gfr` fetches from and rebases on another repository or local branch.
### Flow
- `gFi` is short for `git flow init`
#### Feature
- `gFf` is short for `git flow feature`
- `gFfl` is short for `git flow feature list`
- `gFfs` is short for `git flow feature start`
- `gFff` is short for `git flow feature finish`
- `gFfp` is short for `git flow feature publish`
- `gFft` is short for `git flow feature track`
- `gFfd` is short for `git flow feature diff`
- `gFfr` is short for `git flow feature rebase`
- `gFfc` is short for `git flow feature checkout`
- `gFfm` is short for `git flow feature pull`
- `gFfx` is short for `git flow feature delete`
#### Bugfix
- `gFb` is short for `git flow bugfix`
- `gFbl` is short for `git flow bugfix list`
- `gFbs` is short for `git flow bugfix start`
- `gFbf` is short for `git flow bugfix finish`
- `gFbp` is short for `git flow bugfix publish`
- `gFbt` is short for `git flow bugfix track`
- `gFbd` is short for `git flow bugfix diff`
- `gFbr` is short for `git flow bugfix rebase`
- `gFbc` is short for `git flow bugfix checkout`
- `gFbm` is short for `git flow bugfix pull`
- `gFbx` is short for `git flow bugfix delete`
#### Release
- `gFl` is short for `git flow release`
- `gFll` is short for `git flow release list`
- `gFls` is short for `git flow release start`
- `gFlf` is short for `git flow release finish`
- `gFlp` is short for `git flow release publish`
- `gFlt` is short for `git flow release track`
- `gFld` is short for `git flow release diff`
- `gFlr` is short for `git flow release rebase`
- `gFlc` is short for `git flow release checkout`
- `gFlm` is short for `git flow release pull`
- `gFlx` is short for `git flow release delete`
#### Hotfix
- `gFh` is short for `git flow hotfix`
- `gFhl` is short for `git flow hotfix list`
- `gFhs` is short for `git flow hotfix start`
- `gFhf` is short for `git flow hotfix finish`
- `gFhp` is short for `git flow hotfix publish`
- `gFht` is short for `git flow hotfix track`
- `gFhd` is short for `git flow hotfix diff`
- `gFhr` is short for `git flow hotfix rebase`
- `gFhc` is short for `git flow hotfix checkout`
- `gFhm` is short for `git flow hotfix pull`
- `gFhx` is short for `git flow hotfix delete`
#### Support
- `gFs` is short for `git flow support`
- `gFsl` is short for `git flow support list`
- `gFss` is short for `git flow support start`
- `gFsf` is short for `git flow support finish`
- `gFsp` is short for `git flow support publish`
- `gFst` is short for `git flow support track`
- `gFsd` is short for `git flow support diff`
- `gFsr` is short for `git flow support rebase`
- `gFsc` is short for `git flow support checkout`
- `gFsm` is short for `git flow support pull`
- `gFsx` is short for `git flow support delete`
### Grep
- `gg` displays lines matching a pattern.
@ -109,6 +202,8 @@ Aliases
- `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).
@ -214,6 +309,7 @@ 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][9].
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`.
@ -228,7 +324,7 @@ Functions
- `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-hub-shorten-url` shortens [GitHub URLs][10].
- `git-info` exposes repository information via the `$git_info` associative
array.
- `git-root` displays the path to the working tree root.
@ -245,7 +341,9 @@ 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
@ -272,7 +370,9 @@ setting a style is as follows.
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
@ -299,18 +399,24 @@ The following contexts must be enabled with the following zstyle:
| 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
@ -332,4 +438,5 @@ Authors
[6]: https://github.com/sorin-ionescu/prezto/issues
[7]: https://github.com/sorin-ionescu/prezto/issues/219
[8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html
[9]: https://getgb.io/
[10]: https://github.com/blog/985-git-io-github-url-shortener

View File

@ -26,157 +26,239 @@ zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_subm
# Aliases
#
# Git
alias g='git'
if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; 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 gca='git commit --verbose --all'
alias gcm='git commit --message'
alias gcS='git commit -S --verbose'
alias gcSa='git commit -S --verbose --all'
alias gcSm='git commit -S --message'
alias gcam='git commit --all --message'
alias gco='git checkout'
alias gcO='git checkout --patch'
alias gcf='git commit --amend --reuse-message HEAD'
alias gcSf='git commit -S --amend --reuse-message HEAD'
alias gcF='git commit --verbose --amend'
alias gcSF='git commit -S --verbose --amend'
alias gcp='git cherry-pick --ff'
alias gcP='git cherry-pick --no-commit'
alias gcr='git revert'
alias gcR='git reset "HEAD^"'
alias gcs='git show'
alias gcl='git-commit-lost'
# 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 gfr='git pull --rebase'
# 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 -rf --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 --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'
# 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 foreach git pull origin master'
alias gSx='git-submodule-remove'
# Working Copy (w)
alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short'
alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}'
alias gwd='git diff --no-ext-diff'
alias gwD='git diff --no-ext-diff --word-diff'
alias gwr='git reset --soft'
alias gwR='git reset --hard'
alias gwc='git clean -n'
alias gwC='git clean -f'
alias gwx='git rm -r'
alias gwX='git rm -rf'
fi

View File

@ -8,7 +8,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
return 1
fi
@ -21,7 +21,7 @@ _arguments -C -s -S \
case "$state" in
(remote)
remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2))
remotes=($(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=($(
command git ls-remote --heads --tags "$remote" 2>/dev/null | cut -f2
git ls-remote --heads --tags "$remote" 2> /dev/null | cut -f2
))
branches=(HEAD ${${(M)branches_or_tags[@]##refs/heads/?##}##refs/heads/})
@ -39,10 +39,9 @@ case "$state" in
_describe -t tag 'tags' tags && ret=0
;;
(file)
files=(${(0)"$(_call_program files command git ls-files -z --exclude-standard 2>/dev/null)"})
files=(${(0)"$(_call_program files git ls-files -z --exclude-standard 2> /dev/null)"})
_wanted file expl 'file' _multi_parts - / files && ret=0
;;
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 "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
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 "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
return 1
fi
@ -25,7 +25,7 @@ case "$state" in
while IFS=$'\n' read submodule; do
submodules+=("$submodule")
done < <(
command git config --file "$(git-root)/.gitmodules" --list \
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 "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
return 1
fi
@ -18,10 +18,9 @@ local submodule
while IFS=$'\n' read submodule; do
submodules+=("$submodule")
done < <(
command git config --file "$(git-root)/.gitmodules" --list \
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 ! command git rev-parse 2> /dev/null; then
# function git-branch-current {
if ! git rev-parse 2> /dev/null; then
print "$0: not a repository: $PWD" >&2
return 1
fi
local ref="$(command git symbolic-ref HEAD 2> /dev/null)"
local ref="$(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 "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-commit-lost {
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
command git fsck 2> /dev/null \
git fsck 2> /dev/null \
| grep "^dangling commit" \
| awk '{print $3}' \
| command git log \
| 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="${$(command git rev-parse --git-dir):A}"
# function git-dir {
local git_dir="${$(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 "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-hub-browse {
if ! is-true "$(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=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2))
remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2))
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=$(
command git config --get "remote.${remote}.url" \
git config --get "remote.${remote}.url" \
| sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p"
)
reference="${${2:-$(git-branch-current)}:-HEAD}"
references=(
HEAD
${$(command git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/}
${$(git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/}
)
if (( $references[(i)$reference] == $#references + 1 )); then
@ -37,7 +39,7 @@ if (( $references[(i)$reference] == $#references + 1 )); then
fi
if [[ "$reference" == 'HEAD' ]]; then
reference="$(command git rev-parse HEAD 2>/dev/null)"
reference="$(git rev-parse HEAD 2> /dev/null)"
fi
file="$3"
@ -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: //'
curl -s -i 'https://git.io' -F "url=$url" ${(s: :)code:+ -F "code=$code"} | sed -n 's/^Location: //p'
else
print "$0: command not found: curl" >&2
return 1
fi
# }

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,6 +18,8 @@ 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" \
@ -80,6 +82,18 @@ function _git-action {
return 0
fi
if [[ -f "${git_dir}/REVERT_HEAD" ]]; then
if [[ -d "${git_dir}/sequencer" ]] ; then
zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' || revert_sequence_formatted='revert-sequence'
print "$revert_sequence_formatted"
else
zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' || revert_formatted='revert'
print "$revert_formatted"
fi
return 0
fi
if [[ -f "${git_dir}/BISECT_LOG" ]]; then
zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect'
print "$bisect_formatted"
@ -164,15 +178,15 @@ function git-info {
typeset -gA git_info
# Return if not inside a Git repository work tree.
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
return 1
fi
if (( $# > 0 )); then
if [[ "$1" == [Oo][Nn] ]]; then
command git config --bool prompt.showinfo true
git config --bool prompt.showinfo true
elif [[ "$1" == [Oo][Ff][Ff] ]]; then
command git config --bool prompt.showinfo false
git config --bool prompt.showinfo false
else
print "usage: $0 [ on | off ]" >&2
fi
@ -180,7 +194,7 @@ function git-info {
fi
# Return if git-info is disabled.
if ! is-true "${$(command git config --bool prompt.showinfo):-true}"; then
if ! is-true "${$(git config --bool prompt.showinfo):-true}"; then
return 1
fi
@ -190,7 +204,7 @@ function git-info {
# Format commit.
zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
if [[ -n "$commit_format" ]]; then
commit="$(command git rev-parse HEAD 2> /dev/null)"
commit="$(git rev-parse HEAD 2> /dev/null)"
if [[ -n "$commit" ]]; then
zformat -f commit_formatted "$commit_format" "c:$commit"
fi
@ -199,7 +213,7 @@ 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="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')"
stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
if [[ -n "$stashed" ]]; then
zformat -f stashed_formatted "$stashed_format" "S:$stashed"
fi
@ -215,7 +229,7 @@ function git-info {
fi
# Get the branch.
branch="${$(command git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
branch="${$(git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
# Format branch.
zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
@ -226,7 +240,7 @@ function git-info {
# Format position.
zstyle -s ':prezto:module:git:info:position' format 'position_format'
if [[ -z "$branch" && -n "$position_format" ]]; then
position="$(command git describe --contains --all HEAD 2> /dev/null)"
position="$(git describe --contains --all HEAD 2> /dev/null)"
if [[ -n "$position" ]]; then
zformat -f position_formatted "$position_format" "p:$position"
fi
@ -236,7 +250,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='command git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}"
if [[ -n "$remote" ]]; then
zformat -f remote_formatted "$remote_format" "R:$remote"
@ -247,7 +261,7 @@ 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='command git rev-list --count --left-right HEAD...@{upstream}'
ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}'
# Get ahead and behind counts.
ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
@ -276,7 +290,7 @@ function git-info {
if [[ -n "$indexed_format" ]]; then
((
indexed+=$(
command git diff-index \
git diff-index \
--no-ext-diff \
--name-only \
--cached \
@ -296,7 +310,7 @@ function git-info {
if [[ -n "$unindexed_format" ]]; then
((
unindexed+=$(
command git diff-files \
git diff-files \
--no-ext-diff \
--name-only \
--ignore-submodules=${ignore_submodules:-none} \
@ -314,7 +328,7 @@ function git-info {
if [[ -n "$untracked_format" ]]; then
((
untracked+=$(
command git ls-files \
git ls-files \
--other \
--exclude-standard \
2> /dev/null \
@ -329,7 +343,7 @@ function git-info {
(( dirty = indexed + unindexed + untracked ))
else
# Use porcelain status for easy parsing.
status_cmd="command git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
status_cmd="git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
# Get current status.
while IFS=$'\n' read line; do
@ -421,4 +435,3 @@ function git-info {
}
git-info "$@"

View File

@ -5,7 +5,9 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
local root="$(command git rev-parse --show-toplevel 2> /dev/null)"
# function git-root {
local root="$(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 "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-stash-clear-interactive {
if ! is-true "$(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="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')"
stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
if (( $stashed > 0 )); then
if read -q "?Clear $stashed stashed state(s) [y/N]? "; then
command git stash clear
git stash clear
fi
fi
fi
# }

View File

@ -5,15 +5,17 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-stash-dropped {
if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then
print "$0: not a repository work tree: $PWD" >&2
return 1
fi
command git fsck --unreachable 2> /dev/null \
git fsck --unreachable 2> /dev/null \
| grep 'commit' \
| awk '{print $3}' \
| command git log \
| git log \
--pretty=format:${_git_log_oneline_format} \
--extended-regexp \
--grep="${1:-(WIP )?[Oo]n [^:]+:}" \
@ -21,3 +23,4 @@ command git fsck --unreachable 2> /dev/null \
--no-walk \
--stdin
# }

View File

@ -5,7 +5,9 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-stash-recover {
if ! is-true "$(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
command git update-ref \
-m "$(command git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit"
git update-ref \
-m "$(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 "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then
# function git-submodule-move {
if ! is-true "$(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,7 +19,7 @@ local src="$1"
local dst="$2"
local url
url="$(command git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")"
url="$(git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")"
if [[ -z "$url" ]]; then
print "$0: submodule not found: $src" >&2
@ -27,7 +29,8 @@ fi
mkdir -p "${dst:h}"
git-submodule-remove "$src"
command git submodule add "$url" "$dst"
git submodule add "$url" "$dst"
return 0
# }

View File

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

View File

@ -1,15 +0,0 @@
#
# Adds GitHub knowledge to the Git command.
# https://hub.github.com
#
# Authors:
# Chris Wanstrath <chris@wanstrath.com>
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
if (( $+commands[hub] )); then
function git {
hub "$@"
}
fi

View File

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

View File

@ -1,7 +1,7 @@
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.
`ls` instead of `gls`, is not recommended since scripts that target other
@ -20,7 +20,9 @@ Settings
To use a different prefix, add the following to *zpreztorc*, and replace 'g' with
the desired prefix:
zstyle ':prezto:module:gnu-utility' prefix 'g'
```sh
zstyle ':prezto:module:gnu-utility' prefix 'g'
```
Authors
-------
@ -30,4 +32,3 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -42,13 +42,13 @@ _gnu_utility_cmds=(
'libtool' 'libtoolize'
# Miscellaneous
'getopt' 'grep' 'indent' 'sed' 'tar' 'time' 'units' 'which'
'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}]}' \"\$@\"
@ -58,4 +58,3 @@ for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do
done
unset _gnu_utility_{p,cmds,cmd,pcmd}

View File

@ -9,7 +9,9 @@ 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*:
enable-ssh-support
```conf
enable-ssh-support
```
When OpenSSH Agent protocol emulation is enabled, this module will load the SSH
module for additional processing.
@ -24,4 +26,3 @@ Authors
[1]: http://www.gnupg.org
[2]: http://linux.die.net/man/1/gpg-agent
[3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -11,16 +11,16 @@ 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="${TMPDIR:-/tmp}/gpg-agent.env.$UID"
# Load environment variables from previous run
source "$_gpg_agent_env" 2> /dev/null
# Start gpg-agent if not started.
if [[ -z "$GPG_AGENT_INFO" ]]; then
# 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 "$USER" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then
if ! ps -U "$LOGNAME" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then
eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
fi
fi
@ -29,12 +29,21 @@ fi
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.
@ -44,4 +53,3 @@ unset _gpg_agent_{conf,env}
if [[ -n "$SSH_CONNECTION" ]]; then
export PINENTRY_USER_DATA='USE_CURSES=1'
fi

View File

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

View File

@ -22,4 +22,3 @@ Authors
- [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".
@ -29,4 +29,3 @@ function coalesce {
done
return 1
}

View File

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

View File

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

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

View File

@ -6,21 +6,34 @@ Defines Homebrew aliases.
Aliases
-------
### Homebrew
- `brewc` cleans outdated brews and their cached archives.
- `brewC` cleans outdated brews, including keg-only, and their cached archives.
- `brewi` installs a formula.
- `brewl` lists installed formulae.
- `brewo` lists brews which have an update available.
- `brews` searches for a formula.
- `brewU` upgrades Homebrew and outdated brews.
- `brewu` upgrades Homebrew.
- `brewu` updates and upgrades Homebrew packages and formulae.
- `brewx` uninstalls a formula.
### Homebrew Cask
- `cask` is aliased to `brew cask`.
- `caskc` cleans up old cached downloads.
- `caskC` cleans up all cached downloads.
- `caski` installs a cask.
- `caskl` lists installed casks.
- `casko` lists casks which have an update available.
- `casks` searches for a cask.
- `caskx` uninstalls a cask.
Authors
-------
*The authors of this module should be contacted via the [issue tracker][1].*
- [Sorin Ionescu](https://github.com/sorin-ionescu)
- [Griffin Yourick](https://github.com/tough-griff)
[1]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -6,7 +6,7 @@
#
# Return if requirements are not found.
if [[ "$OSTYPE" != darwin* ]]; then
if [[ "$OSTYPE" != (darwin|linux)* ]]; then
return 1
fi
@ -14,12 +14,22 @@ fi
# Aliases
#
# Homebrew
alias brewc='brew cleanup'
alias brewC='brew cleanup --force'
alias brewi='brew install'
alias brewl='brew list'
alias brewo='brew outdated'
alias brews='brew search'
alias brewu='brew upgrade'
alias brewU='brew update && brew upgrade'
alias brewu='brew update && brew upgrade'
alias brewx='brew remove'
# Homebrew Cask
alias cask='brew cask'
alias caskc='brew cask cleanup --outdated'
alias caskC='brew cask cleanup'
alias caski='brew cask install'
alias caskl='brew cask list'
alias casko='brew cask outdated'
alias casks='brew cask search'
alias caskx='brew cask uninstall'

View File

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

View File

@ -32,4 +32,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

@ -10,6 +10,13 @@ nvm
[nvm][5] allows for managing multiple, isolated Node.js installations in the
home directory.
nodenv
------
[nodenv][6] does one thing well. nodenv is concerned solely with switching
Node versions. It's simple and predictable, Just Works, and is rock solid in
production. nodenv is forked from the popular [rbenv][7].
Functions
---------
@ -24,8 +31,10 @@ 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.
@ -43,4 +52,5 @@ Authors
[3]: http://nodejs.org/api
[4]: https://github.com/sorin-ionescu/prezto/issues
[5]: https://github.com/creationix/nvm
[6]: https://github.com/nodenv/nodenv
[7]: https://github.com/sstephenson/rbenv

View File

@ -5,6 +5,8 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function node-doc {
if [[ -z "$BROWSER" ]]; then
print "$0: no web browser defined" >&2
return 1
@ -13,3 +15,4 @@ fi
# TODO: Make the sections easier to use.
"$BROWSER" "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/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
@ -15,11 +17,14 @@ typeset -gA node_info
if (( $+functions[nvm_version] )); then
version="${$(nvm_version)#v}"
elif (( $+commands[nodenv] )); then
version="${${$(nodenv version)#v}[(w)0]}"
fi
if [[ "$version" == (none|) ]]; then
if [[ "$version" != (none|) ]]; then
zstyle -s ':prezto:module:node:info:version' format 'version_format'
zformat -f version_formatted "$version_format" "v:$version"
node_info[version]="$version_formatted"
fi
# }

View File

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

View File

@ -25,4 +25,3 @@ Authors
[1]: http://ocaml.org/
[2]: http://opam.ocamlpro.com/
[3]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -6,10 +6,9 @@
#
# 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

@ -3,6 +3,19 @@ OSX
Defines [Mac OS X][1] aliases and functions.
Settings
--------
### Dash Keyword
To change the keyword used by `mand` to open man pages in [_Dash.app_][2] from
its default value of 'manpages', add the following line in *zpreztorc* and
replace the **keyword** with the one configured in [_Dash.app_][2].
```sh
zstyle ':prezto:module:osx:man' dash-keyword 'keyword'
```
Aliases
-------

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -5,6 +5,8 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function pfs {
osascript 2>&1 <<EOF
tell application "Finder" to set the_selection to selection
if the_selection is not {}
@ -13,3 +15,5 @@ osascript 2>&1 <<EOF
end repeat
end if
EOF
# }

View File

@ -5,6 +5,10 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function ql {
if (( $# > 0 )); then
qlmanage -p "$@" &> /dev/null
fi
# }

View File

@ -5,11 +5,13 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function tab {
local command="cd \\\"$PWD\\\""
(( $# > 0 )) && command="${command}; $*"
the_app=$(
osascript 2>/dev/null <<EOF
osascript 2> /dev/null <<EOF
tell application "System Events"
name of first item of (every process whose frontmost is true)
end tell
@ -17,7 +19,7 @@ EOF
)
[[ "$the_app" == 'Terminal' ]] && {
osascript 2>/dev/null <<EOF
osascript 2> /dev/null <<EOF
tell application "System Events"
tell process "Terminal" to keystroke "t" using command down
tell application "Terminal" to do script "${command}" in front window
@ -26,7 +28,7 @@ EOF
}
[[ "$the_app" == 'iTerm' ]] && {
osascript 2>/dev/null <<EOF
osascript 2> /dev/null <<EOF
tell application "iTerm"
set current_terminal to current terminal
tell current_terminal
@ -40,3 +42,15 @@ EOF
EOF
}
[[ "$the_app" == 'iTerm2' ]] && {
osascript 2> /dev/null <<EOF
tell application "iTerm2"
tell current window
create tab with default profile
tell current session to write text "${command}"
end tell
end tell
EOF
}
# }

View File

@ -7,17 +7,22 @@ frontends.
Settings
--------
To enable a Pacman frontend, for example, [Yaourt][2], add the following line to
*zpreztorc*:
It is possible to use a Pacman frontend with the pacman aliases provided by this
package as long as that frontend supports the same command line options (The
[AUR Helpers][2] page has a good comparison which lists if the command line
options are pacman compatible).
zstyle ':prezto:module:pacman' frontend 'yaourt'
Please note that installing packages with an AUR Helper is not officially
supported by Archlinux. It is currently recommended to manually build AUR
packages using the [provided instructions][3]. The [aurutils][4] project has a
set of small utilities to make this easier.
If you have enabled color globally in *zpreztorc*, you may disable it for certain
commands.
To enable a Pacman frontend, add the following line to *zpreztorc*, substituting
`pacman_frontend` with the name of the frontent:
To disable `yaourt` highlighting, add the following line to *zpreztorc*:
zstyle ':prezto:module:pacman:yaourt' color 'no'
```sh
zstyle ':prezto:module:pacman' frontend 'pacman_frontend'
```
Aliases
-------
@ -42,25 +47,23 @@ Aliases
### Frontends
#### Yaourt
- `pacc` manages *.pac\** files.
Functions
---------
- `aurget` clone an aur package
- `pacman-list-explicit` lists explicitly installed pacman packages.
- `pacman-list-disowned` lists pacman disowned files.
Authors
-------
*The authors of this module should be contacted via the [issue tracker][3].*
*The authors of this module should be contacted via the [issue tracker][5].*
- [Benjamin Boudreau](https://github.com/dreur)
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://www.archlinux.org/pacman/
[2]: http://archlinux.fr/yaourt-en
[3]: https://github.com/sorin-ionescu/prezto/issues
[2]: https://wiki.archlinux.org/index.php/AUR_helpers#Comparison_table
[3]: https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages
[4]: https://github.com/AladW/aurutils
[5]: https://github.com/sorin-ionescu/prezto/issues

View File

@ -6,6 +6,8 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function pacman-list-disowned {
local tmp="${TMPDIR:-/tmp}/pacman-disowned-$UID-$$"
local db="$tmp/db"
local fs="$tmp/fs"
@ -21,3 +23,4 @@ find /bin /etc /lib /sbin /usr \
comm -23 "$fs" "$db"
# }

View File

@ -6,6 +6,8 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function pacman-list-explicit {
pacman --query --explicit --info \
| awk '
BEGIN {
@ -19,3 +21,4 @@ pacman --query --explicit --info \
}
'
# }

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