Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge remote-tracking branch 'upstream/master'

* upstream/master: (39 commits)
  [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
  Refactor Emacs module
  Load completion for Carton
  Correct syntax error in variable assignment
  ...
  • Loading branch information...
commit 8e4a2f37147a155a3a8527ae71e84369456b97b4 2 parents 2992693 + 20655c8
@trongrg authored
Showing with 573 additions and 428 deletions.
  1. +2 −2 modules/README.md
  2. +1 −1  modules/archive/README.md
  3. +3 −1 modules/archive/functions/extract
  4. +3 −1 modules/archive/functions/ls-archive
  5. +1 −1  modules/completion/external
  6. +0 −3  modules/completion/init.zsh
  7. +63 −0 modules/editor/README.md
  8. +3 −36 modules/editor/init.zsh
  9. +18 −8 modules/emacs/init.zsh
  10. +2 −0  modules/environment/init.zsh
  11. +45 −26 modules/git/README.md
  12. +12 −12 modules/git/alias.zsh
  13. +176 −123 modules/git/functions/git-info
  14. +0 −25 modules/gpg-agent/README.md
  15. +0 −46 modules/gpg-agent/init.zsh
  16. +27 −0 modules/gpg/README.md
  17. +44 −0 modules/gpg/init.zsh
  18. +1 −9 modules/helper/functions/add-zsh-trap
  19. +12 −0 modules/history-substring-search/README.md
  20. +1 −1  modules/history-substring-search/external
  21. +15 −3 modules/history-substring-search/init.zsh
  22. +1 −1  modules/pacman/functions/pacman-list-disowned
  23. +1 −1  modules/prompt/README.md
  24. +4 −0 modules/prompt/functions/prompt_sorin_setup
  25. +2 −6 modules/rsync/README.md
  26. +0 −1  modules/rsync/init.zsh
  27. +2 −1  modules/ruby/init.zsh
  28. +0 −36 modules/ssh-agent/README.md
  29. +0 −62 modules/ssh-agent/init.zsh
  30. +28 −0 modules/ssh/README.md
  31. +48 −0 modules/ssh/init.zsh
  32. +12 −0 modules/syntax-highlighting/README.md
  33. +10 −2 modules/syntax-highlighting/init.zsh
  34. +3 −0  modules/tmux/init.zsh
  35. +1 −1  runcoms/README.md
  36. +24 −14 runcoms/zpreztorc
  37. +8 −5 runcoms/zshenv
View
4 modules/README.md
@@ -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
2  modules/archive/README.md
@@ -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/extract
@@ -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
4 modules/archive/functions/ls-archive
@@ -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
2  modules/completion/external
@@ -1 +1 @@
-Subproject commit 19e8985f8e3747592e07f323f5182769a12a8401
+Subproject commit 9cbd2b6762689cd92c194067ac51b376fcc91e1b
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
39 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
View
26 modules/emacs/init.zsh
@@ -4,12 +4,22 @@
# Authors: Sebastian Wiesner <lunaryorn@gmail.com>
#
-# Enable Carton
-if [[ -d "$HOME/.carton" ]]; then
- path=($HOME/.carton/bin $path)
-
- alias cai='carton install'
- alias cau='carton update'
- alias caI='carton init'
- alias cae='carton exec'
+# 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
46 modules/gpg-agent/init.zsh
@@ -1,46 +0,0 @@
-#
-# Provides for an easier use of gpg-agent.
-#
-# Authors:
-# Florian Walch <florian.walch@gmx.at>
-# Sorin Ionescu <sorin.ionescu@gmail.com>
-# neersighted <neersighted@myopera.com>
-#
-
-# Return if requirements are not found.
-if (( ! $+commands[gpg-agent] )); then
- return 1
-fi
-
-# Make sure to use the $GNUPGHOME first.
-_gpg_env="${GNUPGHOME:-$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
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
-------
2  modules/history-substring-search/external
@@ -1 +1 @@
-Subproject commit 3bd84be43e74710c60febfd46ced793e19fbf657
+Subproject commit 82fbef5132b44c5d039e7d25972d9351c5936bc2
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
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/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
8 modules/rsync/README.md
@@ -3,9 +3,6 @@ Rsync
Defines [rsync][1] aliases.
-Mac OS X users are encouraged to use [Bombich's rsync][2], which has HFS+
-enhancements.
-
Aliases
-------
@@ -18,11 +15,10 @@ Aliases
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][2].*
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: http://rsync.samba.org
-[2]: http://www.bombich.com/rsync.html
-[3]: https://github.com/sorin-ionescu/prezto/issues
+[2]: https://github.com/sorin-ionescu/prezto/issues
View
1  modules/rsync/init.zsh
@@ -17,7 +17,6 @@ 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
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
38 runcoms/zpreztorc
@@ -59,6 +59,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
#
@@ -82,34 +95,31 @@ zstyle ':prezto:module:prompt' theme 'sorin'
# 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.
+# 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
13 runcoms/zshenv
@@ -64,10 +64,13 @@ 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.