diff --git a/README.md b/README.md index 2955fe57dd..d076cc89f0 100644 --- a/README.md +++ b/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*, @@ -82,9 +63,10 @@ accompanying README files to learn of what is available. Customization ------------- -The project is managed via [Git][3]. It is highly recommend that you commit -your changes and push them to [GitHub][4] to not lose them. If you do not know -how to use Git, follow this [tutorial][5] and bookmark this [reference][6]. +The project is managed via [Git][3]. It is highly recommended that you fork this +project; so, that you can commit your changes and push them to [GitHub][4] to +not lose them. If you do not know how to use Git, follow this [tutorial][5] and +bookmark this [reference][6]. Resources --------- diff --git a/modules/README.md b/modules/README.md index 79a472536b..63484e4ca7 100644 --- a/modules/README.md +++ b/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 ------- @@ -71,6 +71,11 @@ History Sets history options and defines history aliases. +Homebrew +-------- + +Defines Homebrew aliases. + Macports -------- diff --git a/modules/archive/README.md b/modules/archive/README.md index 398d003762..64b95df7aa 100644 --- a/modules/archive/README.md +++ b/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`. diff --git a/modules/archive/functions/_ls-archive b/modules/archive/functions/_lsarchive similarity index 85% rename from modules/archive/functions/_ls-archive rename to modules/archive/functions/_lsarchive index 00453c4f95..516a8a3357 100644 --- a/modules/archive/functions/_ls-archive +++ b/modules/archive/functions/_lsarchive @@ -1,8 +1,8 @@ -#compdef ls-archive +#compdef lsarchive #autoload # -# Completes ls-archive. +# Completes lsarchive. # # Authors: # Sorin Ionescu diff --git a/modules/archive/functions/_extract b/modules/archive/functions/_unarchive similarity index 85% rename from modules/archive/functions/_extract rename to modules/archive/functions/_unarchive index 901a8489d5..a446cb4a3d 100644 --- a/modules/archive/functions/_extract +++ b/modules/archive/functions/_unarchive @@ -1,8 +1,8 @@ -#compdef extract +#compdef unarchive #autoload # -# Completes extract. +# Completes unarchive. # # Authors: # Sorin Ionescu diff --git a/modules/archive/functions/ls-archive b/modules/archive/functions/lsarchive similarity index 87% rename from modules/archive/functions/ls-archive rename to modules/archive/functions/lsarchive index e8727fa123..bac540f884 100644 --- a/modules/archive/functions/ls-archive +++ b/modules/archive/functions/lsarchive @@ -1,5 +1,5 @@ # -# Lists the contents of popular archive formats. +# Lists the contents of archives. # # Authors: # Sorin Ionescu @@ -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 diff --git a/modules/archive/functions/extract b/modules/archive/functions/unarchive similarity index 92% rename from modules/archive/functions/extract rename to modules/archive/functions/unarchive index af7ed25a02..36fe85b6ff 100644 --- a/modules/archive/functions/extract +++ b/modules/archive/functions/unarchive @@ -1,5 +1,5 @@ # -# Extracts the contents of popular archive formats. +# Extracts the contents of archives. # # Authors: # Sorin Ionescu @@ -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" diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index 042e1a0330..3ffad63318 100644 --- a/modules/completion/init.zsh +++ b/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 # diff --git a/modules/dpkg/README.md b/modules/dpkg/README.md index d871f59940..98af6c386b 100644 --- a/modules/dpkg/README.md +++ b/modules/dpkg/README.md @@ -7,16 +7,16 @@ Aliases ------- - `debc` cleans the cache. -- `debf` displays a file's packake. +- `debf` displays a file's package. - `debi` installs packages from repositories. - `debI` installs packages from files. - `debq` displays package information. -- `debu` updates the packages lists. +- `debu` updates the package lists. - `debU` upgrades outdated packages. - `debx` removes packages. - `debX` removes packages, their configuration, and unneeded dependencies. - `debs` searches for packages. -- `deb-build` creates a basic .deb package. +- `deb-build` creates a basic deb package. - `deb-kclean` removes all kernel images and headers, except for the ones in use. diff --git a/modules/dpkg/init.zsh b/modules/dpkg/init.zsh index 939e9100b4..fbbc8bc5c9 100644 --- a/modules/dpkg/init.zsh +++ b/modules/dpkg/init.zsh @@ -19,7 +19,7 @@ fi # Cleans the cache. alias debc='sudo apt-get clean && sudo apt-get autoclean' -# Displays a file's packake. +# Displays a file's package. alias debf='apt-file search --regexp' # Installs packages from repositories. @@ -31,7 +31,7 @@ alias debI='sudo dpkg -i' # Displays package information. alias debq='apt-cache show' -# Updates the packages lists. +# Updates the package lists. alias debu='sudo apt-get update' # Upgrades outdated packages. @@ -50,7 +50,7 @@ else alias debs='apt-cache search' fi -# Creates a basic .deb package. +# Creates a basic deb package. alias deb-build='time dpkg-buildpackage -rfakeroot -us -uc' # Removes all kernel images and headers, except for the ones in use. diff --git a/modules/editor/README.md b/modules/editor/README.md new file mode 100644 index 0000000000..d989e35c5d --- /dev/null +++ b/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 'bindings' +with 'emacs' or 'vi'. + + zstyle ':prezto:module:editor' key-bindings 'bindings' + +### Dot Expansion + +To enable the auto conversion of .... to ../.., add the following to +*zpreztorc*. + + zstyle ':prezto:module:editor' dot-expansion 'yes' + +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 + diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index ae253f25c1..0fe9885836 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -4,42 +4,6 @@ # Authors: # Sorin Ionescu # -# 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 @@ -340,14 +306,14 @@ fi # # Set the key layout. -zstyle -s ':prezto:module:editor' keymap 'keymap' -if [[ "$keymap" == (emacs|) ]]; then +zstyle -s ':prezto:module:editor' key-bindings 'key_bindings' +if [[ "$key_bindings" == (emacs|) ]]; then bindkey -e -elif [[ "$keymap" == vi ]]; then +elif [[ "$key_bindings" == vi ]]; then bindkey -v else - print "prezto: invalid keymap: $keymap" >&2 + print "prezto: editor: invalid key bindings: $key_bindings" >&2 fi -unset key{map,} +unset key{,map,bindings} diff --git a/modules/emacs/README.md b/modules/emacs/README.md new file mode 100644 index 0000000000..fa9a514b39 --- /dev/null +++ b/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 diff --git a/modules/emacs/init.zsh b/modules/emacs/init.zsh new file mode 100644 index 0000000000..3acc965c27 --- /dev/null +++ b/modules/emacs/init.zsh @@ -0,0 +1,25 @@ +# +# Configures Emacs dependency management. +# +# Authors: Sebastian Wiesner +# + +# Return if requirements are not found. +if [[ ! -d "$HOME/.cask" ]]; then + return 1 +fi + +# Prepend Cask bin directory. +path=($HOME/.cask/bin $path) + +# Load Carton completion +source "$HOME/.cask/etc/cask_completion.zsh" 2> /dev/null + +# +# Aliases +# + +alias cai='cask install' +alias cau='cask update' +alias caI='cask init' +alias cae='cask exec' diff --git a/modules/environment/init.zsh b/modules/environment/init.zsh index 79eba54d28..d05aa07b0c 100644 --- a/modules/environment/init.zsh +++ b/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. diff --git a/modules/git/README.md b/modules/git/README.md index 717f42bb14..0dd932f6b2 100644 --- a/modules/git/README.md +++ b/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 diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index be1f0eaf3d..39b24babca 100644 --- a/modules/git/alias.zsh +++ b/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 glog='git log --topo-order --pretty=format:${_git_log_medium_format}' alias glogs='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' diff --git a/modules/git/functions/git-info b/modules/git/functions/git-info index 2e52eab393..1c16396265 100644 --- a/modules/git/functions/git-info +++ b/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 < /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 } diff --git a/modules/gpg-agent/README.md b/modules/gpg-agent/README.md deleted file mode 100644 index 1b222d46a8..0000000000 --- a/modules/gpg-agent/README.md +++ /dev/null @@ -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 - diff --git a/modules/gpg-agent/init.zsh b/modules/gpg-agent/init.zsh deleted file mode 100644 index 6d010d2813..0000000000 --- a/modules/gpg-agent/init.zsh +++ /dev/null @@ -1,44 +0,0 @@ -# -# Provides for an easier use of gpg-agent. -# -# Authors: -# Florian Walch -# Sorin Ionescu -# - -# 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)" - diff --git a/modules/gpg/README.md b/modules/gpg/README.md new file mode 100644 index 0000000000..b13e33e9bb --- /dev/null +++ b/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 + diff --git a/modules/gpg/init.zsh b/modules/gpg/init.zsh new file mode 100644 index 0000000000..2e4c4eab02 --- /dev/null +++ b/modules/gpg/init.zsh @@ -0,0 +1,44 @@ +# +# Provides for an easier use of GPG by setting up gpg-agent. +# +# Authors: +# Sorin Ionescu +# + +# 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 + diff --git a/modules/haskell/init.zsh b/modules/haskell/init.zsh index 8690ce1872..c1c78ca2a0 100644 --- a/modules/haskell/init.zsh +++ b/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 diff --git a/modules/helper/functions/add-zsh-trap b/modules/helper/functions/add-zsh-trap index e5d4e82c27..c8796ca0d5 100644 --- a/modules/helper/functions/add-zsh-trap +++ b/modules/helper/functions/add-zsh-trap @@ -6,14 +6,6 @@ # Sorin Ionescu # -# 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 diff --git a/modules/history-substring-search/README.md b/modules/history-substring-search/README.md index 6bfe4e6a87..27a4a78f46 100644 --- a/modules/history-substring-search/README.md +++ b/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 ------- diff --git a/modules/history-substring-search/init.zsh b/modules/history-substring-search/init.zsh index ea20fffd26..0fc191d84f 100644 --- a/modules/history-substring-search/init.zsh +++ b/modules/history-substring-search/init.zsh @@ -10,14 +10,26 @@ pmodload 'editor' # Source module files. -source "${0:h}/external/zsh-history-substring-search.zsh" +source "${0:h}/external/zsh-history-substring-search.zsh" || return 1 # -# 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 diff --git a/modules/homebrew/README.md b/modules/homebrew/README.md new file mode 100644 index 0000000000..c8e6d4e2cb --- /dev/null +++ b/modules/homebrew/README.md @@ -0,0 +1,26 @@ +Homebrew +======== + +Defines Homebrew aliases. + +Aliases +------- + + - `brewc` cleans outdated brews and their cached archives. + - `brewC` cleans outdated brews, including keg-only, and their cached archives. + - `brewi` installs a formula. + - `brewl` lists installed formulae. + - `brews` searches for a formula. + - `brewU` upgrades Homebrew and outdated brews. + - `brewu` upgrades Homebrew. + - `brewx` uninstalls a formula. + +Authors +------- + +*The authors of this module should be contacted via the [issue tracker][1].* + + - [Sorin Ionescu](https://github.com/sorin-ionescu) + +[1]: https://github.com/sorin-ionescu/prezto/issues + diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh new file mode 100644 index 0000000000..6f0299af99 --- /dev/null +++ b/modules/homebrew/init.zsh @@ -0,0 +1,25 @@ +# +# Defines Homebrew aliases. +# +# Authors: +# Sorin Ionescu +# + +# Return if requirements are not found. +if [[ "$OSTYPE" != darwin* ]]; then + return 1 +fi + +# +# Aliases +# + +alias brewc='brew cleanup' +alias brewC='brew cleanup --force' +alias brewi='brew install' +alias brewl='brew list' +alias brews='brew search' +alias brewu='brew upgrade' +alias brewU='brew update && brew upgrade' +alias brewx='brew remove' + diff --git a/modules/macports/init.zsh b/modules/macports/init.zsh index 4554ca1fb5..5698114855 100644 --- a/modules/macports/init.zsh +++ b/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} diff --git a/modules/node/README.md b/modules/node/README.md index 58f2b082ec..c0174ebbea 100644 --- a/modules/node/README.md +++ b/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 diff --git a/modules/node/functions/node-info b/modules/node/functions/node-info new file mode 100644 index 0000000000..2af5042eb0 --- /dev/null +++ b/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 +# + +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 + diff --git a/modules/node/init.zsh b/modules/node/init.zsh index 16847abccb..904d24d931 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -1,10 +1,16 @@ # -# Completes npm. +# Loads the Node Version Manager and enables npm completion. # # Authors: # Sorin Ionescu +# Zeh Rizzatti # +# 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 diff --git a/modules/osx/README.md b/modules/osx/README.md index bb74ef5518..498ed2e506 100644 --- a/modules/osx/README.md +++ b/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 ------- diff --git a/modules/osx/functions/trash b/modules/osx/functions/trash deleted file mode 100644 index d392437311..0000000000 --- a/modules/osx/functions/trash +++ /dev/null @@ -1,27 +0,0 @@ -# -# Moves directories and files to Trash. -# -# Authors: -# Sorin Ionescu -# - -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 - diff --git a/modules/pacman/functions/pacman-list-disowned b/modules/pacman/functions/pacman-list-disowned index d6b6f289b2..2cd8a92bbb 100644 --- a/modules/pacman/functions/pacman-list-disowned +++ b/modules/pacman/functions/pacman-list-disowned @@ -6,7 +6,7 @@ # Sorin Ionescu # -local tmp="${TMPDIR:-/tmp}/pacman-disowned-$UID-$$" +local tmp="$TMPDIR/pacman-disowned-$UID-$$" local db="$tmp/db" local fs="$tmp/fs" diff --git a/modules/pacman/init.zsh b/modules/pacman/init.zsh index c6fdc451e3..bbbdcfb523 100644 --- a/modules/pacman/init.zsh +++ b/modules/pacman/init.zsh @@ -55,10 +55,10 @@ alias pacq='pacman --sync --info' alias pacQ='pacman --query --info' # Searches for packages in the repositories. -alias pacs='pacman --sync --recursive' +alias pacs='pacman --sync --search' # Searches for packages in the local database. -alias pacS='pacman --query --recursive' +alias pacS='pacman --query --search' # Lists orphan packages. alias pacman-list-orphans='sudo pacman --query --deps --unrequired' diff --git a/modules/perl/init.zsh b/modules/perl/init.zsh index 8ba873d70c..0997a4b2bf 100644 --- a/modules/perl/init.zsh +++ b/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 diff --git a/modules/prompt/README.md b/modules/prompt/README.md index 85ed13eef0..da3f2bac4c 100644 --- a/modules/prompt/README.md +++ b/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%# ' diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 796da78f38..c3302ad1e4 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/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' diff --git a/modules/python/README.md b/modules/python/README.md index c48f4ea3e6..8e8c8f018b 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -6,15 +6,15 @@ Enables local Python and local Python package installation. Local Python Installation ------------------------- -[pythonz][4] builds and installs multiple Python versions locally in the home +[pyenv][4] builds and installs multiple Python versions locally in the home directory. -This module prepends the pythonz directory to the path variable to enable the -execution of `pythonz`. +This module prepends the pyenv directory to the path variable to enable the +execution of `pyenv`. ### Usage -Install Python versions with `pythonz install` into *~/.pythonz/pythons*. +Install Python versions with `pyenv install` into *~/.pyenv/versions*. Local Package Installation -------------------------- @@ -66,16 +66,6 @@ Aliases - `py` is short for `python`. -### Pythonz - - - `pyz` is short for `pythonz`. - - `pyzc` removes stale source folders and archives. - - `pyzi` installs Python versions. - - `pyzl` lists installed Python versions. - - `pyzL` lists available Python versions. - - `pyzu` updates itself to the latest version. - - `pyzx` uninstalls Python versions. - Functions --------- @@ -105,6 +95,6 @@ Authors [1]: http://www.python.org/dev/peps/pep-0370/ [2]: http://www.doughellmann.com/projects/virtualenvwrapper/ [3]: http://pypi.python.org/pypi/virtualenv -[4]: http://saghul.github.com/pythonz/ +[4]: https://github.com/yyuu/pyenv [5]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 11875612b7..fa9175e568 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -6,31 +6,35 @@ # Sebastian Wiesner # -# Load pythonz into the shell session. -if [[ -s $HOME/.pythonz/bin/pythonz ]]; then - path=($HOME/.pythonz/bin $path) -fi +# Load manually installed pyenv into the shell session. +if [[ -s "$HOME/.pyenv/bin/pyenv" ]]; then + path=("$HOME/.pyenv/bin" $path) + eval "$(pyenv init -)" -# Return if requirements are not found. -if (( ! $+commands[python] && ! $+commands[pythonz] )); then - return 1 -fi +# Load package manager installed pyenv into the shell session. +elif (( $+commands[pyenv] )); then + eval "$(pyenv init -)" # Prepend PEP 370 per user site packages directory, which defaults to -# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH/MANPATH. -if [[ "$OSTYPE" == darwin* ]]; then - path=($HOME/Library/Python/*/bin(N) $path) - manpath=($HOME/Library/Python/*/{,share/}man(N) $manpath) +# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH. else - # This is subject to change. - path=($HOME/.local/bin $path) - manpath=($HOME/.local/{,share/}man(N) $manpath) + if [[ "$OSTYPE" == darwin* ]]; then + path=($HOME/Library/Python/*/bin(N) $path) + else + # This is subject to change. + path=($HOME/.local/bin $path) + fi +fi + +# Return if requirements are not found. +if (( ! $+commands[python] && ! $+commands[pyenv] )); then + return 1 fi # Load virtualenvwrapper into the shell session. if (( $+commands[virtualenvwrapper_lazy.sh] )); then # Set the directory where virtual environments are stored. - export WORKON_HOME=$HOME/.virtualenvs + export WORKON_HOME="$HOME/.virtualenvs" # Disable the virtualenv prompt. VIRTUAL_ENV_DISABLE_PROMPT=1 @@ -44,14 +48,3 @@ fi alias py='python' -# pythonz -if (( $+commands[pythonz] )); then - alias pyz='pythonz' - alias pyzc='pythonz cleanup' - alias pyzi='pythonz install' - alias pyzl='pythonz list' - alias pyzL='pythonz list -a' - alias pyzu='pythonz update' - alias pyzx='pythonz uninstall' -fi - diff --git a/modules/rsync/README.md b/modules/rsync/README.md index 2d2e656696..a2b62c4f5a 100644 --- a/modules/rsync/README.md +++ b/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 diff --git a/modules/rsync/init.zsh b/modules/rsync/init.zsh index c3b3b577b3..afb9192ab7 100644 --- a/modules/rsync/init.zsh +++ b/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 diff --git a/modules/ruby/init.zsh b/modules/ruby/init.zsh index b287cbb2c8..1f748098e6 100644 --- a/modules/ruby/init.zsh +++ b/modules/ruby/init.zsh @@ -23,12 +23,9 @@ elif [[ -s "$HOME/.rbenv/bin/rbenv" ]]; then elif (( $+commands[rbenv] )); then eval "$(rbenv init - --no-rehash zsh)" -# Install local gems according to operating system conventions. +# Prepend local gems bin directories to PATH. else - if [[ "$OSTYPE" == darwin* ]]; then - export GEM_HOME="$HOME/Library/Ruby/Gems/1.8" - path=("$GEM_HOME/bin" $path) - fi + path=($HOME/.gem/ruby/*/bin(N) $path) fi # Return if requirements are not found. @@ -58,4 +55,3 @@ if (( $+commands[bundle] )); then && print vendor/bundle >>! .gitignore \ && print vendor/cache >>! .gitignore' fi - diff --git a/modules/screen/README.md b/modules/screen/README.md index 976b483a87..8e93fe2d35 100644 --- a/modules/screen/README.md +++ b/modules/screen/README.md @@ -10,9 +10,15 @@ Settings Starts a GNU Screen session automatically when Zsh is launched. -To enable this feature, add the following line to *zpreztorc*: +To enable this feature when launching Zsh in a local terminal, add the +following line to *zpreztorc*: - zstyle ':prezto:module:screen' auto-start 'yes' + zstyle ':prezto:module:screen:auto-start' local 'yes' + +To enable this feature when launching Zsh in a SSH connection, add the +following line to *zpreztorc*: + + zstyle ':prezto:module:screen:auto-start' remote 'yes' Aliases ------- @@ -28,6 +34,7 @@ Authors *The authors of this module should be contacted via the [issue tracker][2].* - [Sorin Ionescu](https://github.com/sorin-ionescu) + - [Georges Discry](https://github.com/gdiscry) [1]: http://www.gnu.org/software/screen/ [2]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/screen/init.zsh b/modules/screen/init.zsh index 424f6584f6..f10efb735d 100644 --- a/modules/screen/init.zsh +++ b/modules/screen/init.zsh @@ -3,6 +3,7 @@ # # Authors: # Sorin Ionescu +# Georges Discry # # Return if requirements are not found. @@ -14,7 +15,10 @@ fi # Auto Start # -if [[ -z "$STY" ]] && zstyle -t ':prezto:module:screen' auto-start; then +if [[ -z "$STY" ]] && ( \ + ( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' remote ) || + ( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:screen:auto-start' local ) \ +); then session="$( screen -list 2> /dev/null \ | sed '1d;$d' \ diff --git a/modules/ssh-agent/README.md b/modules/ssh-agent/README.md deleted file mode 100644 index 392a8666fb..0000000000 --- a/modules/ssh-agent/README.md +++ /dev/null @@ -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 - diff --git a/modules/ssh-agent/init.zsh b/modules/ssh-agent/init.zsh deleted file mode 100644 index 69288728ec..0000000000 --- a/modules/ssh-agent/init.zsh +++ /dev/null @@ -1,66 +0,0 @@ -# -# Provides for an easier use of ssh-agent. -# -# Authors: -# Robby Russell -# Theodore Robert Campbell Jr -# Joseph M. Reagle Jr. -# Florent Thoumie -# Jonas Pfenniger -# gwjo -# Sorin Ionescu -# - -# 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. - if [[ ! -S $(readlink /tmp/ssh-agent-$USER-screen) ]]; then - [[ -L "$SSH_AUTH_SOCK" ]] || ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USER-screen && export SSH_AUTH_SOCK=/tmp/ssh-agent-$USER-screen - else - export SSH_AUTH_SOCK=/tmp/ssh-agent-$USER-screen - fi -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} - diff --git a/modules/ssh/README.md b/modules/ssh/README.md new file mode 100644 index 0000000000..e953a60193 --- /dev/null +++ b/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 + diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh new file mode 100644 index 0000000000..320f76352d --- /dev/null +++ b/modules/ssh/init.zsh @@ -0,0 +1,48 @@ +# +# Provides for an easier use of SSH by setting up ssh-agent. +# +# Authors: +# Sorin Ionescu +# + +# 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 + +# 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 + +# Load identities. +if ssh-add -l 2>&1 | grep -q 'The agent has no identities'; then + zstyle -a ':prezto:module:ssh:load' identities '_ssh_identities' + if (( ${#_ssh_identities} > 0 )); then + ssh-add "$_ssh_dir/${^_ssh_identities[@]}" 2> /dev/null + else + ssh-add 2> /dev/null + fi +fi + +# Clean up. +unset _ssh_{dir,identities} _ssh_agent_{env,sock} + diff --git a/modules/syntax-highlighting/README.md b/modules/syntax-highlighting/README.md index 7fb84e2b59..c88c54cfec 100644 --- a/modules/syntax-highlighting/README.md +++ b/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 ------- diff --git a/modules/syntax-highlighting/init.zsh b/modules/syntax-highlighting/init.zsh index d9bd414bd1..55172b8992 100644 --- a/modules/syntax-highlighting/init.zsh +++ b/modules/syntax-highlighting/init.zsh @@ -11,11 +11,19 @@ if ! zstyle -t ':prezto:module:syntax-highlighting' color; then fi # Source module files. -source "${0:h}/external/zsh-syntax-highlighting.zsh" +source "${0:h}/external/zsh-syntax-highlighting.zsh" || return 1 -# 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,} + diff --git a/modules/tmux/README.md b/modules/tmux/README.md index b5e1011ad3..68ba9d06a7 100644 --- a/modules/tmux/README.md +++ b/modules/tmux/README.md @@ -10,12 +10,18 @@ Settings Starts a tmux session automatically when Zsh is launched. -To enable this feature, add the following line to *zpreztorc*: +To enable this feature when launching Zsh in a local terminal, add the +following line to *zpreztorc*: - zstyle ':prezto:module:tmux' auto-start 'yes' + zstyle ':prezto:module:tmux:auto-start' local 'yes' -It will create a background session named _#Prezto_ and attach every new shell -to it. +To enable this feature when launching Zsh in a SSH connection, add the +following line to *zpreztorc*: + + zstyle ':prezto:module:tmux:auto-start' remote 'yes' + +In both cases, it will create a background session named _#Prezto_ and attach +every new shell to it. To avoid keeping open sessions, this module sets `destroy-unattached off` on the background session and `destroy-unattached on` on every other session @@ -47,6 +53,7 @@ Authors - [Sorin Ionescu](https://github.com/sorin-ionescu) - [Colin Hebert](https://github.com/ColinHebert) + - [Georges Discry](https://github.com/gdiscry) [1]: http://tmux.sourceforge.net [2]: https://github.com/sorin-ionescu/prezto/issues/62 diff --git a/modules/tmux/init.zsh b/modules/tmux/init.zsh index a464827640..a59b259a2d 100644 --- a/modules/tmux/init.zsh +++ b/modules/tmux/init.zsh @@ -4,6 +4,7 @@ # Authors: # Sorin Ionescu # Colin Hebert +# Georges Discry # # Return if requirements are not found. @@ -15,10 +16,16 @@ fi # Auto Start # -if [[ -z "$TMUX" ]] && zstyle -t ':prezto:module:tmux' auto-start; then +if [[ -z "$TMUX" ]] && ( \ + ( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' remote ) || + ( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' local ) \ +); 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 diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index a1db51b868..bbfe163361 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -126,17 +126,17 @@ alias sl='ls' # I often screw this up. # Mac OS X Everywhere if [[ "$OSTYPE" == darwin* ]]; then alias o='open' - alias get='curl --continue-at - --location --progress-bar --remote-name --remote-time' +elif [[ "$OSTYPE" == cygwin* ]]; then + alias o='cygstart' + alias pbcopy='tee > /dev/clipboard' + alias pbpaste='cat /dev/clipboard' else alias o='xdg-open' - alias get='wget --continue --progress=bar --timestamping' if (( $+commands[xclip] )); then alias pbcopy='xclip -selection clipboard -in' alias pbpaste='xclip -selection clipboard -out' - fi - - if (( $+commands[xsel] )); then + elif (( $+commands[xsel] )); then alias pbcopy='xsel --clipboard --input' alias pbpaste='xsel --clipboard --output' fi @@ -145,6 +145,13 @@ fi alias pbc='pbcopy' alias pbp='pbpaste' +# File Download +if (( $+commands[curl] )); then + alias get='curl --continue-at - --location --progress-bar --remote-name --remote-time' +elif (( $+commands[wget] )); then + alias get='wget --continue --progress=bar --timestamping' +fi + # Resource Usage alias df='df -kh' alias du='du -kh' diff --git a/runcoms/README.md b/runcoms/README.md index 28064ddcdb..74030b878c 100644 --- a/runcoms/README.md +++ b/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. diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 27aad49b49..8cdb163bb9 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -10,7 +10,7 @@ # # Set case-sensitivity for completion, history lookup, etc. -zstyle ':prezto:*:*' case-sensitive 'no' +# zstyle ':prezto:*:*' case-sensitive 'yes' # Color output (auto set to 'no' on dumb terminals). zstyle ':prezto:*:*' color 'yes' @@ -39,7 +39,7 @@ zstyle ':prezto:load' pmodule \ # # Set the key mapping style to 'emacs' or 'vi'. -zstyle ':prezto:module:editor' keymap 'emacs' +zstyle ':prezto:module:editor' key-bindings 'emacs' # Auto convert .... to ../.. # zstyle ':prezto:module:editor' dot-expansion 'yes' @@ -58,6 +58,19 @@ zstyle ':prezto:module:editor' keymap 'emacs' # Set the command prefix on non-GNU systems. # 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 # @@ -78,38 +91,38 @@ zstyle ':prezto:module:prompt' theme 'sorin' # Screen # -# Auto start a session when Zsh is launched. -# zstyle ':prezto:module:screen' auto-start 'yes' +# Auto start a session when Zsh is launched in a local terminal. +# zstyle ':prezto:module:screen:auto-start' local 'yes' -# -# GPG-Agent -# - -# Enable SSH-Agent protocol emulation. -# zstyle ':prezto:module:gpg-agent' ssh-support 'yes' +# Auto start a session when Zsh is launched in a SSH connection. +# zstyle ':prezto:module:screen:auto-start' remote 'yes' # -# SSH-Agent +# SSH # -# 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 @@ -122,6 +135,9 @@ zstyle ':prezto:module:terminal' auto-title 'yes' # Tmux # -# Auto start a session when Zsh is launched. -# zstyle ':prezto:module:tmux' auto-start 'yes' +# Auto start a session when Zsh is launched in a local terminal. +# zstyle ':prezto:module:tmux:auto-start' local 'yes' + +# Auto start a session when Zsh is launched in a SSH connection. +# zstyle ':prezto:module:tmux:auto-start' remote 'yes' diff --git a/runcoms/zshenv b/runcoms/zshenv index 596c7196e6..9ff39e0675 100644 --- a/runcoms/zshenv +++ b/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