Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge remote-tracking branch 'upstream/master'

* upstream/master: (52 commits)
  Rename archive module functions
  [Fix #436] Update link to Bombich rsync
  Revert "[Fix #436] Remove Bombich rsync references"
  [Fix #436] Remove Bombich rsync references
  Add the RubyGems bin directory to PATH on other Unix systems
  Do not substitute /tmp since $TMPDIR is always set
  [Fix #437] Always set $TMPDIR
  Make gpg-agent and ssh-agent work with each other
  [Fix #425] Rewrite module ssh-agent; rename it to ssh
  [Fix #103] Add documentation for editor
  Remove the git-info SIGINT message
  [Fix #307] Do not auto-off git-info
  Remove ununsed variable
  Clarify Git listing aliases descriptions
  Swap aliases gsd and gsL
  Rename alias gRc to gRp
  [Fix #221] Add a simple git-info
  [#221] Do not format undefined zstyles
  Initialize ahead and behind local variables
  Add rar command to archive module
  ...

Conflicts:
	runcoms/zpreztorc
  • Loading branch information...
commit c0f412745b749077ff1ca283320032f0e56fc24c 2 parents ba8cad8 + 16aa48b
@agrimaldi authored
Showing with 702 additions and 543 deletions.
  1. +0 −19 README.md
  2. +3 −3 modules/README.md
  3. +4 −4 modules/archive/README.md
  4. +2 −2 modules/archive/functions/{_ls-archive → _lsarchive}
  5. +2 −2 modules/archive/functions/{_extract → _unarchive}
  6. +4 −2 modules/archive/functions/{ls-archive → lsarchive}
  7. +4 −2 modules/archive/functions/{extract → unarchive}
  8. +0 −3  modules/completion/init.zsh
  9. +63 −0 modules/editor/README.md
  10. +6 −40 modules/editor/init.zsh
  11. +33 −0 modules/emacs/README.md
  12. +25 −0 modules/emacs/init.zsh
  13. +2 −0  modules/environment/init.zsh
  14. +45 −26 modules/git/README.md
  15. +12 −12 modules/git/alias.zsh
  16. +176 −123 modules/git/functions/git-info
  17. +0 −25 modules/gpg-agent/README.md
  18. +0 −44 modules/gpg-agent/init.zsh
  19. +27 −0 modules/gpg/README.md
  20. +44 −0 modules/gpg/init.zsh
  21. +1 −3 modules/haskell/init.zsh
  22. +1 −9 modules/helper/functions/add-zsh-trap
  23. +12 −0 modules/history-substring-search/README.md
  24. +15 −3 modules/history-substring-search/init.zsh
  25. +0 −12 modules/macports/init.zsh
  26. +24 −1 modules/node/README.md
  27. +25 −0 modules/node/functions/node-info
  28. +7 −1 modules/node/init.zsh
  29. +0 −1  modules/osx/README.md
  30. +0 −27 modules/osx/functions/trash
  31. +1 −1  modules/pacman/functions/pacman-list-disowned
  32. +0 −2  modules/perl/init.zsh
  33. +1 −1  modules/prompt/README.md
  34. +4 −0 modules/prompt/functions/prompt_sorin_setup
  35. +1 −3 modules/python/init.zsh
  36. +1 −1  modules/rsync/README.md
  37. +1 −1  modules/rsync/init.zsh
  38. +2 −1  modules/ruby/init.zsh
  39. +0 −36 modules/ssh-agent/README.md
  40. +0 −62 modules/ssh-agent/init.zsh
  41. +28 −0 modules/ssh/README.md
  42. +48 −0 modules/ssh/init.zsh
  43. +12 −0 modules/syntax-highlighting/README.md
  44. +10 −2 modules/syntax-highlighting/init.zsh
  45. +3 −0  modules/tmux/init.zsh
  46. +1 −1  runcoms/README.md
  47. +30 −21 runcoms/zpreztorc
  48. +22 −47 runcoms/zshenv
View
19 README.md
@@ -33,25 +33,6 @@ version is 4.3.10.
5. Open a new Zsh terminal window or tab.
-### Mac OS X
-
-If you have administrator privileges, you must fix an Apple-introduced problem
-in Mac OS X 10.5 Leopard by executing the following command, or BASH and Zsh
-will have the wrong `PATH` when executed non-interactively.
-
- sudo chmod ugo-x /usr/libexec/path_helper
-
-`path_helper` is intended to make it easier for installers to add new paths to
-the environment without having to edit shell configuration files by adding
-a file with a path to the */etc/paths.d* directory.
-
-Unfortunately, `path_helper` always reads paths from */etc/paths* set by Apple
-then paths from */etc/paths.d* set by third party installers, and lastly paths
-from the `PATH` environment variable set by the parent process, which
-ultimately is set by the user with `export PATH=...` Thus, it reorders path
-priorities, and user */bin* directories meant to override system */bin*
-directories end up at the tail of the array.
-
### Troubleshooting
If you are not able to find certain commands after switching to *Prezto*,
View
6 modules/README.md
@@ -8,7 +8,7 @@ Load modules in *zpreztorc*. The order matters.
Archive
-------
-Provides functions to extract and list popular archive formats.
+Provides functions to list and extract archives.
Command-Not-Found
-----------------
@@ -46,10 +46,10 @@ GNU Utility
Provides for the interactive use of GNU utilities on non-GNU systems.
-GPG-Agent
+GPG
---------
-Provides for an easier use of gpg-agent.
+Provides for an easier use of GPG by setting up gpg-agent.
Haskell
-------
View
8 modules/archive/README.md
@@ -1,13 +1,13 @@
Archive
=======
-Provides functions to extract and list popular archive formats.
+Provides functions to list and extract archives.
Functions
---------
- - `extract` extracts the contents of one or more archives.
- - `ls-archive` lists the contents of one or more archives.
+ - `lsarchive` lists the contents of one or more archives.
+ - `unarchive` extracts the contents of one or more archives.
Supported Formats
-----------------
@@ -26,7 +26,7 @@ installed:
- *.lzma* requires `unlzma`.
- *.Z* requires `uncompress`.
- *.zip* requires `unzip`.
- - *.rar* requires `unrar`.
+ - *.rar* requires `unrar` or `rar`.
- *.7z* requires `7za`.
- *.deb* requires `ar`, `tar`.
View
4 modules/archive/functions/_ls-archive → modules/archive/functions/_lsarchive
@@ -1,8 +1,8 @@
-#compdef ls-archive
+#compdef lsarchive
#autoload
#
-# Completes ls-archive.
+# Completes lsarchive.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
View
4 modules/archive/functions/_extract → modules/archive/functions/_unarchive
@@ -1,8 +1,8 @@
-#compdef extract
+#compdef unarchive
#autoload
#
-# Completes extract.
+# Completes unarchive.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
View
6 modules/archive/functions/ls-archive → modules/archive/functions/lsarchive
@@ -1,5 +1,5 @@
#
-# Lists the contents of popular archive formats.
+# Lists the contents of archives.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
@@ -41,7 +41,9 @@ while (( $# > 0 )); do
|| lzcat "$1" | tar x${verbose:+v}f - ;;
(*.tar) tar t${verbose:+v}f "$1" ;;
(*.zip) unzip -l${verbose:+v} "$1" ;;
- (*.rar) unrar ${${verbose:+v}:-l} "$1" ;;
+ (*.rar) unrar &> /dev/null \
+ && unrar ${${verbose:+v}:-l} "$1" \
+ || rar ${${verbose:+v}:-l} "$1" ;;
(*.7z) 7za l "$1" ;;
(*)
print "$0: cannot list: $1" >&2
View
6 modules/archive/functions/extract → modules/archive/functions/unarchive
@@ -1,5 +1,5 @@
#
-# Extracts the contents of popular archive formats.
+# Extracts the contents of archives.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
@@ -53,7 +53,9 @@ while (( $# > 0 )); do
(*.lzma) unlzma "$1" ;;
(*.Z) uncompress "$1" ;;
(*.zip) unzip "$1" -d $extract_dir ;;
- (*.rar) unrar e -ad "$1" ;;
+ (*.rar) unrar &> /dev/null \
+ && unrar e -ad "$1" \
+ || rar e -ad "$1" ;;
(*.7z) 7za x "$1" ;;
(*.deb)
mkdir -p "$extract_dir/control"
View
3  modules/completion/init.zsh
@@ -30,9 +30,6 @@ setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a traili
unsetopt MENU_COMPLETE # Do not autoselect the first completion entry.
unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor.
-# Treat these characters as part of a word.
-WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
-
#
# Styles
#
View
63 modules/editor/README.md
@@ -0,0 +1,63 @@
+Editor
+======
+
+Sets key bindings.
+
+Settings
+--------
+
+### Key bindings
+
+To enable key bindings, add the following to *zpreztorc*, and replace 'map' with
+'emacs' or 'vi'.
+
+ zstyle ':prezto:module:editor' keymap 'map'
+
+### Dot Expansion
+
+To enable the auto conversion of .... to ../.., add the following to
+*zpreztorc*.
+
+ zstyle ':prezto:module:editor' dot-expansion 'yes'
+
+Theming
+-------
+
+To indicate when the editor is in the primary keymap (emacs or viins), add
+the following to your `theme_prompt_setup` function.
+
+ zstyle ':prezto:module:editor:info:keymap:primary' format '>>>'
+
+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'
+
+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'
+
+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 '<<<'
+
+To indicate when the editor is completing, add the following to your
+`theme_prompt_setup` function.
+
+ zstyle ':prezto:module:editor:info:completing' format '...'
+
+Then add `$editor_info[context]`, where context is *keymap*, *insert*, or
+*overwrite*, to `$PROMPT` or `$RPROMPT` and call `editor-info` in the
+`prompt_name_preexec` hook function.
+
+Authors
+-------
+
+*The authors of this module should be contacted via the [issue tracker][1].*
+
+ - [Sorin Ionescu](https://github.com/sorin-ionescu)
+
+[1]: https://github.com/sorin-ionescu/oh-my-zsh/issues
+
View
46 modules/editor/init.zsh
@@ -4,42 +4,6 @@
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
-# Usage:
-# To enable key bindings, add the following to zpreztorc, and replace 'map'
-# with 'emacs' or 'vi.
-#
-# zstyle ':prezto:module:editor' keymap 'map'
-#
-# To enable the auto conversion of .... to ../.., add the following to
-# zpreztorc.
-#
-# zstyle ':prezto:module:editor' dot-expansion 'yes'
-#
-# 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 '>>>'
-#
-# 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'
-#
-# 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'
-#
-# 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 '<<<'
-#
-# To indicate when the editor is completing, add the following to your theme
-# prompt setup function.
-#
-# zstyle ':prezto:module:editor:info:completing' format '...'
-#
# Return if requirements are not found.
if [[ "$TERM" == 'dumb' ]]; then
@@ -57,6 +21,9 @@ setopt BEEP
# Variables
#
+# Treat these characters as part of a word.
+WORDCHARS='*?_-.[]~&;!#$%^(){}<>'
+
# Use human-friendly identifiers.
zmodload zsh/terminfo
typeset -gA key_info
@@ -90,12 +57,11 @@ key_info=(
'BackTab' "$terminfo[kcbt]"
)
-# Do not bind any keys if there are empty values in $key_info.
+# Set empty $key_info values to an invalid UTF-8 sequence to induce silent
+# bindkey failure.
for key in "${(k)key_info[@]}"; do
if [[ -z "$key_info[$key]" ]]; then
- print "prezto: one or more keys are non-bindable" >&2
- unset key{,_info}
- return 1
+ key_info["$key"]=''
fi
done
View
33 modules/emacs/README.md
@@ -0,0 +1,33 @@
+Emacs
+=====
+
+Enables Emacs dependency management.
+
+Dependency management
+---------------------
+
+[Carton][1] installs and manages Emacs packages for Emacs package development
+and Emacs configuration.
+
+This module prepends the Carton directory to the path variable to enable the
+execution of `carton`.
+
+Aliases
+-------
+
+### Carton
+
+ - `cai` installs dependencies.
+ - `cau` updates dependencies.
+ - `caI` initializes the current directory for dependency management.
+ - `cae` executes a command which correct dependencies.
+
+Authors
+-------
+
+*The authors of this module should be contacted via the [issue tracker][2].*
+
+ - [Sebastian Wiesner](https://github.com/lunaryorn)
+
+[1]: https://github.com/rejeep/carton
+[2]: https://github.com/sorin-ionescu/prezto/issues
View
25 modules/emacs/init.zsh
@@ -0,0 +1,25 @@
+#
+# Configures Emacs dependency management.
+#
+# Authors: Sebastian Wiesner <lunaryorn@gmail.com>
+#
+
+# Return if requirements are not found.
+if [[ ! -d "$HOME/.carton" ]]; then
+ return 1
+fi
+
+# Prepend Carton bin directory.
+path=($HOME/.carton/bin $path)
+
+# Load Carton completion
+source "$HOME/.carton/etc/carton_completion.zsh" 2> /dev/null
+
+#
+# Aliases
+#
+
+alias cai='carton install'
+alias cau='carton update'
+alias caI='carton init'
+alias cae='carton exec'
View
2  modules/environment/init.zsh
@@ -17,6 +17,8 @@ zle -N self-insert url-quote-magic
#
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.
View
71 modules/git/README.md
@@ -1,7 +1,8 @@
Git
===
-Enhances the [Git][1] distributed version control system by providing aliases, functions and by exposing repository status information to prompts.
+Enhances the [Git][1] distributed version control system by providing aliases,
+functions and by exposing repository status information to prompts.
Git **1.7.2** is the [minimum required version][7].
@@ -12,7 +13,7 @@ Settings
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
-`--prety=format:` switch.
+`--pretty=format:` switch.
zstyle ':prezto:module:git:log:context' format ''
@@ -38,8 +39,8 @@ Aliases
- `gbc` creates a new branch.
- `gbl` lists branches and their commits.
- `gbL` lists local and remote branches and their commits.
- - `gbs` lists branches and their commits with ancestery graphs.
- - `gbS` lists local and remote branches and their commits with ancestery
+ - `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.
@@ -63,7 +64,17 @@ Aliases
commits.
- `gcR` removes the *HEAD* commit.
- `gcs` displays various types of objects.
- - `gcl` displays lost commits.
+ - `gcl` lists lost commits.
+
+### Conflict
+
+ - `gCl` lists unmerged files.
+ - `gCa` adds unmerged file contents to the index.
+ - `gCe` executes merge-tool on all unmerged file.
+ - `gCo` checks out our changes for unmerged paths.
+ - `gCO` checks out our changes for all unmerged paths.
+ - `gCt` checks out their changes for unmerged paths.
+ - `gCT` checks out their changes for all unmerged paths.
### Data
@@ -86,8 +97,8 @@ Aliases
- `gg` displays lines matching a pattern.
- `ggi` displays lines matching a pattern ignoring case.
- - `ggl` displays files matching a pattern.
- - `ggL` displays files are not matching a pattern.
+ - `ggl` lists files matching a pattern.
+ - `ggL` lists files that are not matching a pattern.
- `ggv` displays lines not matching a pattern.
- `ggw` displays lines matching a pattern at word boundary.
@@ -103,16 +114,6 @@ Aliases
- `gix` removes files/directories from the index (recursively).
- `giX` removes files/directories from the index (recursively and forced).
-### Conflict
-
- - `gCl` lists unmerged files.
- - `gCa` adds unmerged file contents to the index.
- - `gCe` executes merge-tool on all unmerged file.
- - `gCo` checks out our changes for unmerged paths.
- - `gCO` checks out our changes for all unmerged paths.
- - `gCt` checks out their changes for unmerged paths.
- - `gCT` checks out their changes for all unmerged paths.
-
### Log
- `gl` displays the log.
@@ -154,12 +155,12 @@ Aliases
### Remote
- `gR` manages tracked repositories.
- - `gRl` displays remote names and URLs.
+ - `gRl` lists remote names and their URLs.
- `gRa` adds a new remote.
- `gRx` removes a remote.
- `gRm` renames a remote.
- `gRu` fetches remotes updates.
- - `gRc` deletes all stale remote tracking branches.
+ - `gRp` prunes all stale remote tracking branches.
- `gRs` displays information about a given remote.
- `gRb` opens a remote on [GitHub][3] in the default browser.
@@ -169,10 +170,9 @@ Aliases
- `gsa` applies the changes recorded in a stash to the working directory.
- `gsx` drops a stashed state.
- `gsX` drops all the stashed states.
- - `gsd` lists dropped stashed states.
- `gsl` lists stashed states.
- - `gsL` displays the changes recorded in the stash as a diff between the
- stashed state and its original parent.
+ - `gsL` lists dropped stashed states.
+ - `gsd` displays changes between the stash and its original parent.
- `gsp` removes and applies a single stashed state from the stash list.
- `gsr` recovers a given stashed state.
- `gss` stashes the changes of the dirty working directory, including untracked.
@@ -252,19 +252,38 @@ setting a style is as follows.
| Name | Format Code | Description
| --------- | :---------: | ---------------------------------------------------
| action | %s | Special action name
-| added | %a | Added files count
| ahead | %A | Commits ahead of remote count
| behind | %B | Commits behind of remote count
| branch | %b | Branch name
| commit | %c | Commit hash
+| position | %p | Commits from the nearest tag count
+| remote | %R | Remote name
+| stashed | %S | Stashed states count
+
+### Concise Contexts
+
+| Name | Format Code | Description
+| --------- | :---------: | ---------------------------------------------------
+| clean | %C | Clean state
+| dirty | %D | Dirty files count
+| indexed | %i | Indexed files count
+| unindexed | %I | Unindexed files count
+| untracked | %u | Untracked files count
+
+The following contexts must be enabled with the following zstyle:
+
+ zstyle ':prezto:module:git:info' verbose 'yes'
+
+### Verbose Contexts
+
+| Name | Format Code | Description
+| --------- | :---------: | ---------------------------------------------------
+| added | %a | Added files count
| clean | %C | Clean state
| deleted | %d | Deleted files count
| dirty | %D | Dirty files count
| modified | %m | Modified files count
-| position | %p | Commits from the nearest tag count
-| remote | %R | Remote name
| renamed | %r | Renamed files count
-| stashed | %S | Stashed states count
| unmerged | %U | Unmerged files count
| untracked | %u | Untracked files count
View
24 modules/git/alias.zsh
@@ -56,6 +56,15 @@ 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)'
+
# Data (d)
alias gd='git ls-files'
alias gdc='git ls-files --cached'
@@ -90,15 +99,6 @@ alias giR='git reset --patch'
alias gix='git rm -r --cached'
alias giX='git rm -rf --cached'
-# 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)'
-
# 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}'
@@ -138,7 +138,7 @@ alias gRa='git remote add'
alias gRx='git remote rm'
alias gRm='git remote rename'
alias gRu='git remote update'
-alias gRc='git remote prune'
+alias gRp='git remote prune'
alias gRs='git remote show'
alias gRb='git-hub-browse'
@@ -147,9 +147,9 @@ alias gs='git stash'
alias gsa='git stash apply'
alias gsx='git stash drop'
alias gsX='git-stash-clear-interactive'
-alias gsd='git-stash-dropped'
alias gsl='git stash list'
-alias gsL='git stash show --patch --stat'
+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'
View
299 modules/git/functions/git-info
@@ -89,31 +89,6 @@ function _git-action {
return 1
}
-# Turns off git-info for the current repository.
-function _git-info-abort {
- if ! is-true "$_git_info_executing"; then
- return 1
- fi
-
- cat >&2 <<EOF
-
-
-Gathering status for certain repositories is time intensive.
-By pressing CTRL + C, you have turned off prompt Git status
-for this repository.
-
-To revert, execute:
- git-info on
-
-EOF
-
- unset _git_info_executing
- git config --bool prompt.showinfo false
- git-info
- return 0
-}
-add-zsh-trap INT _git-info-abort
-
# Gets the Git status information.
function git-info {
# Extended globbing is needed to parse repository status.
@@ -126,13 +101,13 @@ function git-info {
local added=0
local added_format
local added_formatted
- local ahead
+ local ahead=0
local ahead_and_behind
local ahead_and_behind_cmd
local ahead_format
local ahead_formatted
local ahead_or_behind
- local behind
+ local behind=0
local behind_format
local behind_formatted
local branch
@@ -151,9 +126,11 @@ function git-info {
local dirty_format
local dirty_formatted
local ignore_submodules
+ local indexed=0
+ local indexed_format
+ local indexed_formatted
local -A info_formats
local info_format
- local line_number=0
local modified=0
local modified_format
local modified_formatted
@@ -171,6 +148,10 @@ function git-info {
local stashed_format
local stashed_formatted
local status_cmd
+ local status_mode
+ local unindexed=0
+ local unindexed_format
+ local unindexed_formatted
local unmerged=0
local unmerged_format
local unmerged_formatted
@@ -203,135 +184,206 @@ function git-info {
return 1
fi
- # Used to abort and turn git-info off on SIGINT.
- _git_info_executing=true
-
- # Use porcelain status for easy parsing.
- status_cmd='git status --porcelain'
-
- # Gets the remote name.
- remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
-
- # Gets the commit difference counts between local and remote.
- ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}'
-
# Ignore submodule status.
zstyle -s ':prezto:module:git:status:ignore' submodules 'ignore_submodules'
- if [[ -n "$ignore_submodules" ]]; then
- status_cmd+=" --ignore-submodules=${ignore_submodules}"
- fi
# Format commit.
- commit="$(git rev-parse HEAD 2> /dev/null)"
- if [[ -n "$commit" ]]; then
- zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
- zformat -f commit_formatted "$commit_format" "c:$commit"
+ zstyle -s ':prezto:module:git:info:commit' format 'commit_format'
+ if [[ -n "$commit_format" ]]; then
+ commit="$(git rev-parse HEAD 2> /dev/null)"
+ if [[ -n "$commit" ]]; then
+ zformat -f commit_formatted "$commit_format" "c:$commit"
+ fi
fi
# Format stashed.
- if [[ -f "$(git-dir)/refs/stash" ]]; then
+ zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format'
+ if [[ -n "$stashed_format" && -f "$(git-dir)/refs/stash" ]]; then
stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')"
- zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format'
- zformat -f stashed_formatted "$stashed_format" "S:$stashed"
+ if [[ -n "$stashed" ]]; then
+ zformat -f stashed_formatted "$stashed_format" "S:$stashed"
+ fi
fi
# Format action.
- action="$(_git-action)"
- if [[ -n "$action" ]]; then
- zstyle -s ':prezto:module:git:info:action' format 'action_format'
- zformat -f action_formatted "$action_format" "s:$action"
+ zstyle -s ':prezto:module:git:info:action' format 'action_format'
+ if [[ -n "$action_format" ]]; then
+ action="$(_git-action)"
+ if [[ -n "$action" ]]; then
+ zformat -f action_formatted "$action_format" "s:$action"
+ fi
fi
- # Get current status.
- while IFS=$'\n' read line; do
- # Count added, deleted, modified, renamed, unmerged, untracked, dirty.
- # T (type change) is undocumented, see http://git.io/FnpMGw.
- # For a table of scenarii, see http://i.imgur.com/2YLu1.png.
- [[ "$line" == ([ACDMT][\ MT]|[ACMT]D)\ * ]] && (( added++ ))
- [[ "$line" == [\ ACMRT]D\ * ]] && (( deleted++ ))
- [[ "$line" == ?[MT]\ * ]] && (( modified++ ))
- [[ "$line" == R?\ * ]] && (( renamed++ ))
- [[ "$line" == (AA|DD|U?|?U)\ * ]] && (( unmerged++ ))
- [[ "$line" == \?\?\ * ]] && (( untracked++ ))
- (( dirty++ ))
- done < <(${(z)status_cmd} 2> /dev/null)
+ # Get the branch.
+ branch="${$(git symbolic-ref HEAD 2> /dev/null)#refs/heads/}"
# Format branch.
- branch="${$(git symbolic-ref -q HEAD)##refs/heads/}"
- if [[ -n "$branch" ]]; then
- zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
+ zstyle -s ':prezto:module:git:info:branch' format 'branch_format'
+ if [[ -n "$branch" && -n "$branch_format" ]]; then
zformat -f branch_formatted "$branch_format" "b:$branch"
+ fi
+
+ # Format position.
+ zstyle -s ':prezto:module:git:info:position' format 'position_format'
+ if [[ -z "$branch" && -n "$position_format" ]]; then
+ position="$(git describe --contains --all HEAD 2> /dev/null)"
+ if [[ -n "$position" ]]; then
+ zformat -f position_formatted "$position_format" "p:$position"
+ fi
+ fi
- # Format remote.
+ # Format remote.
+ zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
+ if [[ -n "$branch" && -n "$remote_format" ]]; then
+ # Gets the remote name.
+ remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}'
remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}"
if [[ -n "$remote" ]]; then
- zstyle -s ':prezto:module:git:info:remote' format 'remote_format'
zformat -f remote_formatted "$remote_format" "R:$remote"
+ fi
+ fi
- # Get ahead and behind counts.
- ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
+ zstyle -s ':prezto:module:git:info:ahead' format 'ahead_format'
+ zstyle -s ':prezto:module:git:info:behind' format 'behind_format'
+ if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then
+ # Gets the commit difference counts between local and remote.
+ ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}'
- # Format ahead.
+ # Get ahead and behind counts.
+ ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)"
+
+ # Format ahead.
+ if [[ -n "$ahead_format" ]]; then
ahead="$ahead_and_behind[(w)1]"
- if (( $ahead > 0 )); then
- zstyle -s ':prezto:module:git:info:ahead' format 'ahead_format'
+ if (( ahead > 0 )); then
zformat -f ahead_formatted "$ahead_format" "A:$ahead"
fi
+ fi
- # Format behind.
+ # Format behind.
+ if [[ -n "$behind_format" ]]; then
behind="$ahead_and_behind[(w)2]"
- if (( $behind > 0 )); then
- zstyle -s ':prezto:module:git:info:behind' format 'behind_format'
+ if (( behind > 0 )); then
zformat -f behind_formatted "$behind_format" "B:$behind"
fi
fi
- else
- # Format position.
- position="$(git describe --contains --all HEAD 2> /dev/null)"
- if [[ -n "$position" ]]; then
- zstyle -s ':prezto:module:git:info:position' format 'position_format'
- zformat -f position_formatted "$position_format" "p:$position"
- fi
fi
- # Format added.
- if (( $added > 0 )); then
- zstyle -s ':prezto:module:git:info:added' format 'added_format'
- zformat -f added_formatted "$added_format" "a:$added_format"
- fi
+ # Get status type.
+ if ! zstyle -t ':prezto:module:git:info' verbose; then
+ # Format indexed.
+ zstyle -s ':prezto:module:git:info:indexed' format 'indexed_format'
+ if [[ -n "$indexed_format" ]]; then
+ ((
+ indexed+=$(
+ git diff-index \
+ --no-ext-diff \
+ --name-only \
+ --cached \
+ --ignore-submodules=${ignore_submodules:-none} \
+ HEAD \
+ 2> /dev/null \
+ | wc -l
+ )
+ ))
+ if (( indexed > 0 )); then
+ zformat -f indexed_formatted "$indexed_format" "i:$indexed"
+ fi
+ fi
- # Format deleted.
- if (( $deleted > 0 )); then
- zstyle -s ':prezto:module:git:info:deleted' format 'deleted_format'
- zformat -f deleted_formatted "$deleted_format" "d:$deleted_format"
- fi
+ # Format unindexed.
+ zstyle -s ':prezto:module:git:info:unindexed' format 'unindexed_format'
+ if [[ -n "$unindexed_format" ]]; then
+ ((
+ unindexed+=$(
+ git diff-files \
+ --no-ext-diff \
+ --name-only \
+ --ignore-submodules=${ignore_submodules:-none} \
+ 2> /dev/null \
+ | wc -l
+ )
+ ))
+ if (( unindexed > 0 )); then
+ zformat -f unindexed_formatted "$unindexed_format" "I:$unindexed"
+ fi
+ fi
- # Format modified.
- if (( $modified > 0 )); then
- zstyle -s ':prezto:module:git:info:modified' format 'modified_format'
- zformat -f modified_formatted "$modified_format" "m:$modified"
- fi
+ # Format untracked.
+ zstyle -s ':prezto:module:git:info:untracked' format 'untracked_format'
+ if [[ -n "$untracked_format" ]]; then
+ ((
+ untracked+=$(
+ git ls-files \
+ --other \
+ --exclude-standard \
+ 2> /dev/null \
+ | wc -l
+ )
+ ))
+ if (( untracked > 0 )); then
+ zformat -f untracked_formatted "$untracked_format" "u:$untracked"
+ fi
+ fi
- # Format renamed.
- if (( $renamed > 0 )); then
- zstyle -s ':prezto:module:git:info:renamed' format 'renamed_format'
- zformat -f renamed_formatted "$renamed_format" "r:$renamed"
- fi
+ (( dirty = indexed + unindexed + untracked ))
+ else
+ # Use porcelain status for easy parsing.
+ status_cmd="git status --porcelain --ignore-submodules=${ignore_submodules:-none}"
+
+ # Get current status.
+ while IFS=$'\n' read line; do
+ # Count added, deleted, modified, renamed, unmerged, untracked, dirty.
+ # T (type change) is undocumented, see http://git.io/FnpMGw.
+ # For a table of scenarii, see http://i.imgur.com/2YLu1.png.
+ [[ "$line" == ([ACDMT][\ MT]|[ACMT]D)\ * ]] && (( added++ ))
+ [[ "$line" == [\ ACMRT]D\ * ]] && (( deleted++ ))
+ [[ "$line" == ?[MT]\ * ]] && (( modified++ ))
+ [[ "$line" == R?\ * ]] && (( renamed++ ))
+ [[ "$line" == (AA|DD|U?|?U)\ * ]] && (( unmerged++ ))
+ [[ "$line" == \?\?\ * ]] && (( untracked++ ))
+ (( dirty++ ))
+ done < <(${(z)status_cmd} 2> /dev/null)
+
+ # Format added.
+ if (( added > 0 )); then
+ zstyle -s ':prezto:module:git:info:added' format 'added_format'
+ zformat -f added_formatted "$added_format" "a:$added_format"
+ fi
- # Format unmerged.
- if (( $unmerged > 0 )); then
- zstyle -s ':prezto:module:git:info:unmerged' format 'unmerged_format'
- zformat -f unmerged_formatted "$unmerged_format" "U:$unmerged"
- fi
+ # Format deleted.
+ if (( deleted > 0 )); then
+ zstyle -s ':prezto:module:git:info:deleted' format 'deleted_format'
+ zformat -f deleted_formatted "$deleted_format" "d:$deleted_format"
+ fi
- # Format untracked.
- if (( $untracked > 0 )); then
- zstyle -s ':prezto:module:git:info:untracked' format 'untracked_format'
- zformat -f untracked_formatted "$untracked_format" "u:$untracked"
+ # Format modified.
+ if (( modified > 0 )); then
+ zstyle -s ':prezto:module:git:info:modified' format 'modified_format'
+ zformat -f modified_formatted "$modified_format" "m:$modified"
+ fi
+
+ # Format renamed.
+ if (( renamed > 0 )); then
+ zstyle -s ':prezto:module:git:info:renamed' format 'renamed_format'
+ zformat -f renamed_formatted "$renamed_format" "r:$renamed"
+ fi
+
+ # Format unmerged.
+ if (( unmerged > 0 )); then
+ zstyle -s ':prezto:module:git:info:unmerged' format 'unmerged_format'
+ zformat -f unmerged_formatted "$unmerged_format" "U:$unmerged"
+ fi
+
+ # Format untracked.
+ if (( untracked > 0 )); then
+ zstyle -s ':prezto:module:git:info:untracked' format 'untracked_format'
+ zformat -f untracked_formatted "$untracked_format" "u:$untracked"
+ fi
fi
# Format dirty and clean.
- if (( $dirty > 0 )); then
+ if (( dirty > 0 )); then
zstyle -s ':prezto:module:git:info:dirty' format 'dirty_format'
zformat -f dirty_formatted "$dirty_format" "D:$dirty"
else
@@ -342,27 +394,28 @@ function git-info {
zstyle -a ':prezto:module:git:info:keys' format 'info_formats'
for info_format in ${(k)info_formats}; do
zformat -f REPLY "$info_formats[$info_format]" \
+ "a:$added_formatted" \
"A:$ahead_formatted" \
"B:$behind_formatted" \
- "D:$dirty_formatted" \
- "R:$remote_formatted" \
- "S:$stashed_formatted" \
- "U:$unmerged_formatted" \
- "a:$added_formatted" \
"b:$branch_formatted" \
"C:$clean_formatted" \
"c:$commit_formatted" \
"d:$deleted_formatted" \
+ "D:$dirty_formatted" \
+ "i:$indexed_formatted" \
+ "I:$unindexed_formatted" \
"m:$modified_formatted" \
"p:$position_formatted" \
+ "R:$remote_formatted" \
"r:$renamed_formatted" \
"s:$action_formatted" \
+ "S:$stashed_formatted" \
+ "U:$unmerged_formatted" \
"u:$untracked_formatted"
git_info[$info_format]="$REPLY"
done
unset REPLY
- unset _git_info_executing
return 0
}
View
25 modules/gpg-agent/README.md
@@ -1,25 +0,0 @@
-GPG-Agent
-=========
-
-Provides for an easier use of [gpg-agent][1].
-
-Settings
---------
-
-### SSH-Agent Protocol Emulation
-
-To enable SSH-Agent protocol emulation, add the following line to *zpreztorc*:
-
- zstyle ':prezto:module:gpg-agent' ssh-support 'yes'
-
-Authors
--------
-
-*The authors of this module should be contacted via the [issue tracker][2].*
-
- - [Florian Walch](https://github.com/fwalch)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
-
-[1]: http://linux.die.net/man/1/gpg-agent
-[2]: https://github.com/sorin-ionescu/prezto/issues
-
View
44 modules/gpg-agent/init.zsh
@@ -1,44 +0,0 @@
-#
-# Provides for an easier use of gpg-agent.
-#
-# Authors:
-# Florian Walch <florian.walch@gmx.at>
-# Sorin Ionescu <sorin.ionescu@gmail.com>
-#
-
-# Return if requirements are not found.
-if (( ! $+commands[gpg-agent] )); then
- return 1
-fi
-
-_gpg_env="$HOME/.gnupg/gpg-agent.env"
-
-function _gpg-agent-start {
- local ssh_support
-
- zstyle -b ':prezto:module:gpg-agent' ssh-support 'ssh_support' \
- || ssh_support=''
-
- gpg-agent \
- --daemon ${ssh_support:+'--enable-ssh-support'}
- --write-env-file "${_gpg_env}" > /dev/null
-
- chmod 600 "${_gpg_env}"
- source "${_gpg_env}" > /dev/null
-}
-
-# Source GPG agent settings, if applicable.
-if [[ -s "${_gpg_env}" ]]; then
- source "${_gpg_env}" > /dev/null
- ps -ef | grep "${SSH_AGENT_PID}" | grep -q 'gpg-agent' || {
- _gpg-agent-start
- }
-else
- _gpg-agent-start
-fi
-
-export GPG_AGENT_INFO
-export SSH_AUTH_SOCK
-export SSH_AGENT_PID
-export GPG_TTY="$(tty)"
-
View
27 modules/gpg/README.md
@@ -0,0 +1,27 @@
+GPG
+===
+
+Provides for an easier use of [GPG][1] by setting up [gpg-agent][2].
+
+### SSH
+
+To enable OpenSSH Agent protocol emulation, and make `gpg-agent` a drop-in
+replacement for `ssh-agent`, add the following line to
+*~/.gnupg/gpg-agent.conf*:
+
+ enable-ssh-support
+
+When OpenSSH Agent protocol emulation is enabled, this module will load the SSH
+module for additional processing.
+
+Authors
+-------
+
+*The authors of this module should be contacted via the [issue tracker][3].*
+
+ - [Sorin Ionescu](https://github.com/sorin-ionescu)
+
+[1]: http://www.gnupg.org
+[2]: http://linux.die.net/man/1/gpg-agent
+[3]: https://github.com/sorin-ionescu/prezto/issues
+
View
44 modules/gpg/init.zsh
@@ -0,0 +1,44 @@
+#
+# Provides for an easier use of GPG by setting up gpg-agent.
+#
+# Authors:
+# Sorin Ionescu <sorin.ionescu@gmail.com>
+#
+
+# Return if requirements are not found.
+if (( ! $+commands[gpg-agent] )); then
+ return 1
+fi
+
+# Set the default paths to gpg-agent files.
+_gpg_agent_conf="$HOME/.gnupg/gpg-agent.conf"
+_gpg_agent_env="$TMPDIR/gpg-agent.env"
+
+# Start gpg-agent if not started.
+if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
+ eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")"
+else
+ # Export environment variables.
+ source "$_gpg_agent_env" 2> /dev/null
+fi
+
+# Inform gpg-agent of the current TTY for user prompts.
+export GPG_TTY="$(tty)"
+
+# Integrate with the SSH module.
+if grep 'enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then
+ # Override the ssh-agent environment file default path.
+ _ssh_agent_env="$_gpg_agent_env"
+
+ # Load the SSH module for additional processing.
+ pmodload 'ssh'
+fi
+
+# Clean up.
+unset _gpg_agent_{conf,env}
+
+# Disable GUI prompts inside SSH.
+if [[ -n "$SSH_CONNECTION" ]]; then
+ export PINENTRY_USER_DATA='USE_CURSES=1'
+fi
+
View
4 modules/haskell/init.zsh
@@ -10,11 +10,9 @@ if (( ! $+commands[ghc] )); then
return 1
fi
-# Prepend Cabal per user directories to PATH/MANPATH.
+# Prepend Cabal per user directories to PATH.
if [[ "$OSTYPE" == darwin* && -d $HOME/Library/Haskell ]]; then
path=($HOME/Library/Haskell/bin(/N) $path)
- manpath=($HOME/Library/Haskell/man(/N) $manpath)
else
path=($HOME/.cabal/bin(/N) $path)
- manpath=($HOME/.cabal/man(/N) $manpath)
fi
View
10 modules/helper/functions/add-zsh-trap
@@ -6,14 +6,6 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
-# Trap signals were generated with 'kill -l'.
-# DEBUG, EXIT, and ZERR are Zsh signals.
-_trap_signals=(
- ABRT ALRM BUS CHLD CONT EMT FPE HUP ILL INFO INT IO KILL PIPE PROF QUIT
- SEGV STOP SYS TERM TRAP TSTP TTIN TTOU URG USR1 USR2 VTALRM WINCH XCPU XFSZ
- DEBUG EXIT ZERR
-)
-
# Adds a function name to a list to be called when a trap is triggered.
function add-zsh-trap {
if (( $# < 2 )); then
@@ -21,7 +13,7 @@ function add-zsh-trap {
return 1
fi
- if [[ -z "$_trap_signals[(r)$1]" ]]; then
+ if [[ -z "$signals[(r)$1]" ]]; then
print "$0: unknown signal: $1" >&2
return 1
fi
View
12 modules/history-substring-search/README.md
@@ -36,6 +36,18 @@ To enable highlighting for this module only, add the following line to
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 ''
+
+To set the query not found color, add the following line to *zpreztorc*:
+
+ 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 ''
+
Authors
-------
View
18 modules/history-substring-search/init.zsh
@@ -13,11 +13,23 @@ pmodload 'editor'
source "${0:h}/external/zsh-history-substring-search.zsh"
#
-# Styles
+# Search
#
+zstyle -s ':prezto:module:history-substring-search:color' found \
+ 'HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND' \
+ || HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold'
+
+zstyle -s ':prezto:module:history-substring-search:color' not-found \
+ 'HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND' \
+ || HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold'
+
+zstyle -s ':prezto:module:history-substring-search' globbing-flags \
+ 'HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS' \
+ || HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'
+
if zstyle -t ':prezto:module:history-substring-search' case-sensitive; then
- unset HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS
+ HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS="${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS//i}"
fi
if ! zstyle -t ':prezto:module:history-substring-search' color; then
@@ -28,7 +40,7 @@ fi
# Key Bindings
#
-if [[ -n $key_info ]]; then
+if [[ -n "$key_info" ]]; then
# Emacs
bindkey -M emacs "$key_info[Control]P" history-substring-search-up
bindkey -M emacs "$key_info[Control]N" history-substring-search-down
View
12 modules/macports/init.zsh
@@ -15,18 +15,6 @@ fi
# Paths
#
-# Set the list of directories that info searches for manuals.
-infopath=(
- /opt/local/share/info
- $infopath
-)
-
-# Set the list of directories that man searches for manuals.
-manpath=(
- /opt/local/share/man
- $manpath
-)
-
# Set the list of directories that Zsh searches for programs.
path=(
/opt/local/{bin,sbin}
View
25 modules/node/README.md
@@ -1,13 +1,34 @@
Node.js
=======
-Provides utility functions for [Node.js][1] and loads [npm][2] completion.
+Provides utility functions for [Node.js][1], loads the Node Version Manager, and
+enables [npm][2] completion.
+
+nvm
+---
+
+[nvm][5] allows for managing multiple, isolated Node.js installations in the
+home directory.
Functions
---------
- `node-doc` opens the Node.js online [API documentation][3] in the default
browser.
+ - `node-info` exposes information about the Node.js environment via the
+ `$node_info` associative array.
+
+Theming
+-------
+
+To display the version number of the current Node.js version, define the
+following style inside the `prompt_name_setup` function.
+
+ # %v - Node.js version.
+ zstyle ':prezto:module:node:info:version' format 'version:%v'
+
+Then add `$node_info[version]` to either `$PROMPT` or `$RPROMPT` and call
+`node-info` in `prompt_name_preexec` hook function.
Authors
-------
@@ -15,9 +36,11 @@ Authors
*The authors of this module should be contacted via the [issue tracker][4].*
- [Sorin Ionescu](https://github.com/sorin-ionescu)
+ - [Zeh Rizzatti](https://github.com/zehrizzatti)
[1]: http://nodejs.org
[2]: http://npmjs.org
[3]: http://nodejs.org/api
[4]: https://github.com/sorin-ionescu/prezto/issues
+[5]: https://github.com/creationix/nvm
View
25 modules/node/functions/node-info
@@ -0,0 +1,25 @@
+#
+# Exposes information about the Node.js environment via the $node_info
+# associative array.
+#
+# Authors:
+# Zeh Rizzatti <zehrizzatti@gmail.com>
+#
+
+local version
+local version_format
+local version_formatted
+
+unset node_info
+typeset -gA node_info
+
+if (( $+functions[nvm_version] )); then
+ version="${$(nvm_version)#v}"
+fi
+
+if [[ -n "$version" ]]; 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
8 modules/node/init.zsh
@@ -1,10 +1,16 @@
#
-# Completes npm.
+# Loads the Node Version Manager and enables npm completion.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
+# Zeh Rizzatti <zehrizzatti@gmail.com>
#
+# Load NVM into the shell session.
+if [[ -s "$HOME/.nvm/nvm.sh" ]]; then
+ source "$HOME/.nvm/nvm.sh"
+fi
+
# Return if requirements are not found.
if (( ! $+commands[node] )); then
return 1
View
1  modules/osx/README.md
@@ -20,7 +20,6 @@ Functions
- `pfd` prints the current _Finder_ directory.
- `pfs` prints the current _Finder_ selection.
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]).
- - `trash` moves files and folders to _Trash_.
Authors
-------
View
27 modules/osx/functions/trash
@@ -1,27 +0,0 @@
-#
-# Moves directories and files to Trash.
-#
-# Authors:
-# Sorin Ionescu <sorin.ionescu@gmail.com>
-#
-
-print -N "${@:a}" | xargs -0 osascript -e '
- on run theFilePaths
- tell application "Finder"
- set thePOSIXFiles to {}
- repeat with aFilePath in theFilePaths
- set aPOSIXFile to aFilePath as POSIX file
- if exists aPOSIXFile
- set end of thePOSIXFiles to aPOSIXFile
- end if
- end repeat
- move every item of thePOSIXFiles to trash
- end tell
- end run
-' &>/dev/null
-
-if (( $? != 0)); then
- print "$0: failed to move one or more items" >&2
- return 1
-fi
-
View
2  modules/pacman/functions/pacman-list-disowned
@@ -6,7 +6,7 @@
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
-local tmp="${TMPDIR:-/tmp}/pacman-disowned-$UID-$$"
+local tmp="$TMPDIR/pacman-disowned-$UID-$$"
local db="$tmp/db"
local fs="$tmp/fs"
View
2  modules/perl/init.zsh
@@ -20,8 +20,6 @@ if [[ "$OSTYPE" == darwin* ]]; then
perl_path="$HOME/Library/Perl/5.12"
if [[ -f "$perl_path/lib/perl5/local/lib.pm" ]]; then
- manpath=("$perl_path/man" $manpath)
-
if [[ ! -s "$cache_file" ]]; then
perl -I$perl_path/lib/perl5 -Mlocal::lib=$perl_path >! "$cache_file"
fi
View
2  modules/prompt/README.md
@@ -34,7 +34,7 @@ including a function that displays help or a function used to preview it.
**Do not call this function directly.**
-The most basic example of this function can be seen bellow.
+The most basic example of this function can be seen below.
function prompt_name_setup {
PROMPT='%m%# '
View
4 modules/prompt/functions/prompt_sorin_setup
@@ -46,10 +46,14 @@ function prompt_sorin_setup {
# Add hook for calling git-info before each command.
add-zsh-hook precmd prompt_sorin_precmd
+ # Set editor-info parameters.
zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b'
zstyle ':prezto:module:editor:info:keymap:primary' format ' %B%F{red}❯%F{yellow}❯%F{green}❯%f%b'
zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format ' %F{red}♺%f'
zstyle ':prezto:module:editor:info:keymap:alternate' format ' %B%F{green}❮%F{yellow}❮%F{red}❮%f%b'
+
+ # Set git-info parameters.
+ zstyle ':prezto:module:git:info' verbose 'yes'
zstyle ':prezto:module:git:info:action' format ':%%B%F{yellow}%s%f%%b'
zstyle ':prezto:module:git:info:added' format ' %%B%F{green}✚%f%%b'
zstyle ':prezto:module:git:info:ahead' format ' %%B%F{yellow}⬆%f%%b'
View
4 modules/python/init.zsh
@@ -17,14 +17,12 @@ if (( ! $+commands[python] && ! $+commands[pythonz] )); then
fi
# Prepend PEP 370 per user site packages directory, which defaults to
-# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH/MANPATH.
+# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH.
if [[ "$OSTYPE" == darwin* ]]; then
path=($HOME/Library/Python/*/bin(N) $path)
- manpath=($HOME/Library/Python/*/{,share/}man(N) $manpath)
else
# This is subject to change.
path=($HOME/.local/bin $path)
- manpath=($HOME/.local/{,share/}man(N) $manpath)
fi
# Load virtualenvwrapper into the shell session.
View
2  modules/rsync/README.md
@@ -23,6 +23,6 @@ Authors
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://rsync.samba.org
-[2]: http://www.bombich.com/rsync.html
+[2]: http://help.bombich.com/kb/overview/credits#opensource
[3]: https://github.com/sorin-ionescu/prezto/issues
View
2  modules/rsync/init.zsh
@@ -17,7 +17,7 @@ fi
_rsync_cmd='rsync --verbose --progress --human-readable --compress --archive --hard-links --one-file-system'
# Mac OS X and HFS+ Enhancements
-# http://www.bombich.com/rsync.html
+# http://help.bombich.com/kb/overview/credits#opensource
if [[ "$OSTYPE" == darwin* ]] && grep -q 'file-flags' <(rsync --help 2>&1); then
_rsync_cmd="${_rsync_cmd} --crtimes --acls --xattrs --fileflags --protect-decmpfs --force-change"
fi
View
3  modules/ruby/init.zsh
@@ -28,6 +28,8 @@ else
if [[ "$OSTYPE" == darwin* ]]; then
export GEM_HOME="$HOME/Library/Ruby/Gems/1.8"
path=("$GEM_HOME/bin" $path)
+ else
+ path=($HOME/.gem/ruby/*/bin(N) $path)
fi
fi
@@ -58,4 +60,3 @@ if (( $+commands[bundle] )); then
&& print vendor/bundle >>! .gitignore \
&& print vendor/cache >>! .gitignore'
fi
-
View
36 modules/ssh-agent/README.md
@@ -1,36 +0,0 @@
-SSH-Agent
-=========
-
-Provides for an easier use of [ssh-agent][1].
-
-Settings
---------
-
-### Agent Forwarding
-
-To enable SSH-Agent forwarding, add the following line to *zpreztorc*:
-
- zstyle ':prezto:module:ssh-agent' forwarding 'yes'
-
-### Identities
-
-To load multiple identities, add the following line to *zpreztorc*:
-
- zstyle ':prezto:module:ssh-agent' identities 'id_rsa' 'id_rsa2' 'id_github'
-
-Authors
--------
-
-*The authors of this module should be contacted via the [issue tracker][2].*
-
- - [Robby Russell](https://github.com/robbyrussell)
- - [Theodore Robert Campbell Jr](https://github.com/trcjr)
- - [Joseph M. Reagle Jr.](https://github.com/reagle)
- - [Florent Thoumie](https://github.com/flz)
- - [Jonas Pfenniger](https://github.com/zimbatm)
- - [Gareth Owen](https://github.com/gwjo)
- - [Sorin Ionescu](https://github.com/sorin-ionescu)
-
-[1]: http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&sektion=1
-[2]: https://github.com/sorin-ionescu/prezto/issues
-
View
62 modules/ssh-agent/init.zsh
@@ -1,62 +0,0 @@
-#
-# Provides for an easier use of ssh-agent.
-#
-# Authors:
-# Robby Russell <robby@planetargon.com>
-# Theodore Robert Campbell Jr <trcjr@stupidfoot.com>
-# Joseph M. Reagle Jr. <reagle@mit.edu>
-# Florent Thoumie <flz@xbsd.org>
-# Jonas Pfenniger <jonas@pfenniger.name>
-# gwjo <gowen72@gmail.com>
-# Sorin Ionescu <sorin.ionescu@gmail.com>
-#
-
-# Return if requirements are not found.
-if (( ! $+commands[ssh-agent] )); then
- return 1
-fi
-
-# Load dependencies.
-pmodload 'helper'
-
-_ssh_agent_env="${HOME}/.ssh/environment-${HOST}"
-_ssh_agent_forwarding=
-
-function _ssh-agent-start {
- local -a identities
-
- # Start ssh-agent and setup the environment.
- rm -f "${_ssh_agent_env}"
- ssh-agent > "${_ssh_agent_env}"
- chmod 600 "${_ssh_agent_env}"
- source "${_ssh_agent_env}" > /dev/null
-
- # Load identities.
- zstyle -a ':prezto:module:ssh-agent' identities 'identities'
-
- if (( ${#identities} > 0 )); then
- ssh-add "${HOME}/.ssh/${^identities[@]}"
- else
- ssh-add
- fi
-}
-
-# Test if agent-forwarding is enabled.
-zstyle -b ':prezto:module:ssh-agent' forwarding '_ssh_agent_forwarding'
-if is-true "${_ssh_agent_forwarding}" && [[ -n "$SSH_AUTH_SOCK" ]]; then
- # Add a nifty symlink for screen/tmux if agent forwarding.
- [[ -L "$SSH_AUTH_SOCK" ]] || ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USER-screen
-elif [[ -s "${_ssh_agent_env}" ]]; then
- # Source SSH settings, if applicable.
- source "${_ssh_agent_env}" > /dev/null
- ps -ef | grep "${SSH_AGENT_PID}" | grep -q 'ssh-agent$' || {
- _ssh-agent-start;
- }
-else
- _ssh-agent-start;
-fi
-
-# Tidy up after ourselves.
-unfunction _ssh-agent-start
-unset _ssh_agent_{env,forwarding}
-
View
28 modules/ssh/README.md
@@ -0,0 +1,28 @@
+SSH
+===
+
+Provides for an easier use of [SSH][1] by setting up [ssh-agent][2].
+
+This module is disabled on Mac OS X due to custom Apple SSH support rendering it
+unnecessary.
+
+Settings
+--------
+
+### Identities
+
+To load multiple identities, add the following line to *zpreztorc*:
+
+ zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_dsa' 'id_github'
+
+Authors
+-------
+
+*The authors of this module should be contacted via the [issue tracker][3].*
+
+ - [Sorin Ionescu](https://github.com/sorin-ionescu)
+
+[1]: http://www.openssh.com
+[2]: http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&sektion=1
+[3]: https://github.com/sorin-ionescu/prezto/issues
+
View
48 modules/ssh/init.zsh
@@ -0,0 +1,48 @@
+#
+# Provides for an easier use of SSH by setting up ssh-agent.
+#
+# Authors:
+# Sorin Ionescu <sorin.ionescu@gmail.com>
+#
+
+# Return if requirements are not found.
+if [[ "$OSTYPE" == darwin* ]] || (( ! $+commands[ssh-agent] )); then
+ return 1
+fi
+
+# Set the path to the SSH directory.
+_ssh_dir="$HOME/.ssh"
+
+# Set the path to the environment file if not set by another module.
+_ssh_agent_env="${_ssh_agent_env:-$TMPDIR/ssh-agent.env}"
+
+# Set the path to the persistent authentication socket.
+_ssh_agent_sock="$TMPDIR/ssh-agent.sock"
+
+# Start ssh-agent if not started.
+if [[ ! -S "$SSH_AUTH_SOCK" ]]; then
+ eval "$(ssh-agent | sed '/^echo /d' | tee "$_ssh_agent_env")"
+else
+ # Export environment variables.
+ source "$_ssh_agent_env" 2> /dev/null
+fi
+
+# Load identities.
+if ssh-add -l 2>&1 | grep 'The agent has no identities'; then
+ zstyle -a ':prezto:module:ssh:load' identities '_ssh_identities'
+ if (( ${#identities} > 0 )); then
+ ssh-add "$_ssh_dir/${^_ssh_identities[@]}"
+ else
+ ssh-add
+ fi
+fi
+
+# Create a persistent SSH authentication socket.
+if [[ -S "$SSH_AUTH_SOCK" && "$SSH_AUTH_SOCK" != "$_ssh_agent_sock" ]]; then
+ ln -sf "$SSH_AUTH_SOCK" "$_ssh_agent_sock"
+ export SSH_AUTH_SOCK="$_ssh_agent_sock"
+fi
+
+# Clean up.
+unset _ssh_{dir,identities} _ssh_agent_{env,sock}
+
View
12 modules/syntax-highlighting/README.md
@@ -38,6 +38,18 @@ To enable all highlighters, add the following to *zpreztorc*:
'cursor' \
'root'
+### Highlighting Styles
+
+Each syntax highlighter defines styles used to highlight tokens.
+
+To highlight, for example, builtins, commands, and functions in blue instead of
+green, add the following to *zpreztorc*:
+
+ zstyle ':prezto:module:syntax-highlighting' styles \
+ 'builtin' 'bg=blue' \
+ 'command' 'bg=blue' \
+ 'function' 'bg=blue'
+
Authors
-------
View
12 modules/syntax-highlighting/init.zsh
@@ -13,9 +13,17 @@ fi
# Source module files.
source "${0:h}/external/zsh-syntax-highlighting.zsh"
-# Set the highlighters.
+# Set highlighters.
zstyle -a ':prezto:module:syntax-highlighting' highlighters 'ZSH_HIGHLIGHT_HIGHLIGHTERS'
if (( ${#ZSH_HIGHLIGHT_HIGHLIGHTERS[@]} == 0 )); then
- ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets cursor)
+ ZSH_HIGHLIGHT_HIGHLIGHTERS=(main)
fi
+# Set highlighting styles.
+typeset -A syntax_highlighting_styles
+zstyle -a ':prezto:module:syntax-highlighting' styles 'syntax_highlighting_styles'
+for syntax_highlighting_style in "${(k)syntax_highlighting_styles[@]}"; do
+ ZSH_HIGHLIGHT_STYLES[$syntax_highlighting_style]="$syntax_highlighting_styles[$syntax_highlighting_style]"
+done
+unset syntax_highlighting_style{s,}
+
View
3  modules/tmux/init.zsh
@@ -19,6 +19,9 @@ if [[ -z "$TMUX" ]] && zstyle -t ':prezto:module:tmux' auto-start; then
tmux_session='#Prezto'
if ! tmux has-session -t "$tmux_session" 2> /dev/null; then
+ # Ensure that tmux server is started.
+ tmux start-server
+
# Disable the destruction of unattached sessions globally.
tmux set-option -g destroy-unattached off &> /dev/null
View
2  runcoms/README.md
@@ -38,7 +38,7 @@ small as possible and should only define environment variables.
### zprofile
This file is similar to zlogin, but it is sourced before zshrc. It was added
-for [KornShell][1] fans. See the description of zlogin bellow for what it may
+for [KornShell][1] fans. See the description of zlogin below for what it may
contain.
zprofile and zlogin are not meant to be used concurrently but can be done so.
View
51 runcoms/zpreztorc
@@ -42,7 +42,6 @@ zstyle ':prezto:load' pmodule \
'history-substring-search' \
'prompt'
-
#
# Editor
#
@@ -68,6 +67,19 @@ zstyle ':prezto:module:editor' keymap 'emacs'
# zstyle ':prezto:module:gnu-utility' prefix 'g'
#
+# History Substring Search
+#
+
+# Set the query found color.
+# zstyle ':prezto:module:history-substring-search:color' found ''
+
+# Set the query not found color.
+# zstyle ':prezto:module:history-substring-search:color' not-found ''
+
+# Set the search globbing flags.
+# zstyle ':prezto:module:history-substring-search' globbing-flags ''
+
+#
# Pacman
#
@@ -91,34 +103,31 @@ zstyle ':prezto:module:prompt' theme 'sopo'
# zstyle ':prezto:module:screen' auto-start 'yes'
#
-# GPG-Agent
+# SSH
#
-# Enable SSH-Agent protocol emulation.
-# zstyle ':prezto:module:gpg-agent' ssh-support 'yes'
-
-#
-# SSH-Agent
-#
-
-# Enable ssh-agent forwarding.
-# zstyle ':prezto:module:ssh-agent' forwarding 'yes'
-
-# Set ssh-agent identities to load.
-# zstyle ':prezto:module:ssh-agent' identities 'id_rsa' 'id_rsa2' 'id_github'
+# Set the SSH identities to load into the agent.
+# zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_rsa2' 'id_github'
#
# Syntax Highlighting
#
# Set syntax highlighters.
-# By default main, brackets, and cursor are enabled.
- zstyle ':prezto:module:syntax-highlighting' highlighters \
- 'main' \
- 'brackets' \
- 'pattern' \
- 'cursor' \
- 'root'
+# By default, only the main highlighter is enabled.
+# zstyle ':prezto:module:syntax-highlighting' highlighters \
+# 'main' \
+# 'brackets' \
+# 'pattern' \
+# 'cursor' \
+# 'root'
+#
+# Set syntax highlighting styles.
+# zstyle ':prezto:module:syntax-highlighting' styles \
+# 'builtin' 'bg=blue' \
+# 'command' 'bg=blue' \
+# 'function' 'bg=blue'
+#
#
# Terminal
View
69 runcoms/zshenv
@@ -26,21 +26,7 @@ export PAGER='less'
#
if [[ -z "$LANG" ]]; then
- eval "$(locale)"
-fi
-
-#
-# Less
-#
-
-# Set the default Less options.
-# Mouse-wheel scrolling has been disabled by -X (disable screen clearing).
-# Remove -X and -F (exit if the content fits on one screen) to enable it.
-export LESS='-F -g -i -M -R -S -w -X -z-4'
-
-# Set the Less input preprocessor.
-if (( $+commands[lesspipe.sh] )); then
- export LESSOPEN='| /usr/bin/env lesspipe.sh %s 2>&-'
+ export LANG='en_US.UTF-8'
fi
#
@@ -48,54 +34,43 @@ fi
#
typeset -gU cdpath fpath mailpath path
-typeset -gxU MANPATH
-typeset -gxUT INFOPATH infopath
# Set the the list of directories that cd searches.
# cdpath=(
# $cdpath
# )
-# Set the list of directories that info searches for manuals.
-infopath=(
- /usr/local/share/info
- /usr/share/info
- $infopath
-)
-
-# Set the list of directories that man searches for manuals.
-manpath=(
- /usr/local/share/man
- /usr/share/man
- $manpath
-)
-
-for path_file in /etc/manpaths.d/*(.N); do
- manpath+=($(<$path_file))
-done
-unset path_file
-
# Set the list of directories that Zsh searches for programs.
path=(
/usr/local/{bin,sbin}
- /usr/{bin,sbin}
- /{bin,sbin}
$path
)
-for path_file in /etc/paths.d/*(.N); do
- path+=($(<$path_file))
-done
-unset path_file
+#
+# Less
+#
+
+# Set the default Less options.
+# Mouse-wheel scrolling has been disabled by -X (disable screen clearing).
+# Remove -X and -F (exit if the content fits on one screen) to enable it.
+export LESS='-F -g -i -M -R -S -w -X -z-4'
+
+# Set the Less input preprocessor.
+if (( $+commands[lesspipe.sh] )); then
+ export LESSOPEN='| /usr/bin/env lesspipe.sh %s 2>&-'
+fi
#
# Temporary Files
#
-if [[ -d "$TMPDIR" ]]; then
- export TMPPREFIX="${TMPDIR%/}/zsh"
- if [[ ! -d "$TMPPREFIX" ]]; then
- mkdir -p "$TMPPREFIX"
- fi
+if [[ ! -d "$TMPDIR" ]]; then
+ export TMPDIR="/tmp/$USER"
+ mkdir -p -m 700 "$TMPDIR"
+fi
+
+TMPPREFIX="${TMPDIR%/}/zsh"
+if [[ ! -d "$TMPPREFIX" ]]; then
+ mkdir -p "$TMPPREFIX"
fi
Please sign in to comment.
Something went wrong with that request. Please try again.