diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 42dd37a6..00000000 --- a/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -[*] -end_of_line = lf -insert_final_newline = true -indent_style = space -indent_size = 2 -trim_trailing_whitespace = true - -[{.gitattributes,.gitignore,.gitmodules}] -indent_style = tab diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index e39ca098..00000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,24 +0,0 @@ - - -### Description - - -### Expected behavior - - - -### Actual behavior - - - -### Steps to Reproduce - -1. [First Step] -2. [Second Step] -3. [and so on...] - -### Versions - - - Prezto commit: - - ZSH version: - - OS information: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index b8548b6c..00000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,10 +0,0 @@ -Please be sure to check out our [contributing guidelines](https://github.com/sorin-ionescu/prezto/blob/master/CONTRIBUTING.md) -before submitting your pull request. - -Fixes # - -## Proposed Changes - - - - - - - diff --git a/.gitmodules b/.gitmodules index 051f2633..518a2795 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ -[submodule "modules/autosuggestions/external"] - path = modules/autosuggestions/external - url = https://github.com/zsh-users/zsh-autosuggestions.git [submodule "modules/history-substring-search/external"] path = modules/history-substring-search/external url = https://github.com/zsh-users/zsh-history-substring-search.git @@ -19,12 +16,6 @@ [submodule "modules/prompt/functions/pure"] path = modules/prompt/external/pure url = https://github.com/sindresorhus/pure.git -[submodule "modules/fasd/external"] - path = modules/fasd/external - url = https://github.com/clvv/fasd.git -[submodule "modules/prompt/external/async"] - path = modules/prompt/external/async - url = https://github.com/mafredri/zsh-async.git -[submodule "modules/prompt/external/powerlevel9k"] - path = modules/prompt/external/powerlevel9k - url = https://github.com/bhilburn/powerlevel9k.git +[submodule "modules/autosuggestions/external"] + path = modules/autosuggestions/external + url = https://github.com/tarruda/zsh-autosuggestions diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7800b818..eec4c165 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,39 +23,6 @@ improve its performance, do not hesitate to fork and send pull requests. - Open a [pull request][4] that relates to but one subject with a clear title and description in grammatically correct, complete sentences. -#### Code Style - -This project follows the [Google Shell Style Guide][5] when possible. However, -there are a number of additional things to keep in mind. - - - Local variables should be used whenever possible. - - Prefer `zstyle` over environment variables for configuration. - - Prefer (( ... )) over [[ ... ]] for arithmetic expression. - - Use the function keyword to define functions. - - The 80 character hard limit can be waved for readability. - -#### Using an Alternative zprezto Directory - -To work on zprezto without messing with your current configuration: - -```sh -mkdir devel-zprezto -cd devel-zprezto -git clone --recursive https://github.com/sorin-ionescu/prezto.git .zprezto -ZDOTDIR=$(pwd) -echo "Your development ZDOTDIR is $ZDOTDIR" -setopt EXTENDED_GLOB -for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do - ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" -done -``` - -Then to start zsh in this development environment you will run: - -```sh -ZDOTDIR=/path/to/devel-zprezto zsh -``` - #### Modules - A *README.md* must be present. @@ -65,11 +32,10 @@ ZDOTDIR=/path/to/devel-zprezto zsh #### Themes - A screenshots section must be present in the file header. - - The pull request description must have [embedded screenshots][6]. + - The pull request description must have [embedded screenshots][5]. [1]: https://github.com/sorin-ionescu/prezto/contributors [2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request [3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html [4]: https://help.github.com/articles/using-pull-requests -[5]: https://google.github.io/styleguide/shell.xml -[6]: http://daringfireball.net/projects/markdown/syntax#img +[5]: http://daringfireball.net/projects/markdown/syntax#img diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d4171477..00000000 --- a/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2009-2011 Robby Russell and contributors -Copyright (c) 2011-2017 Sorin Ionescu and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE diff --git a/README.md b/README.md index f263a175..d6b40af0 100644 --- a/README.md +++ b/README.md @@ -9,41 +9,27 @@ Installation ------------ Prezto will work with any recent release of Zsh, but the minimum required -version is 4.3.11. +version is 4.3.17. 1. Launch Zsh: - ```console - zsh - ``` + zsh 2. Clone the repository: - ```console - git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" - ``` + git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" 3. Create a new Zsh configuration by copying the Zsh configuration files provided: - ```sh - setopt EXTENDED_GLOB - for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do - ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" - done - ``` - - Note: If you already have any of the given config files, ln will error. In - simple cases you can add `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to - the bottom of your `.zshrc` to load prezto but keep your config intact. For - more complicated setups, it is recommended that you back up your original - configs and replace them with the provided prezto runcoms. + setopt EXTENDED_GLOB + for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do + ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" + done 4. Set Zsh as your default shell: - ```console - chsh -s /bin/zsh - ``` + chsh -s /bin/zsh 5. Open a new Zsh terminal window or tab. @@ -56,18 +42,9 @@ window or tab. Updating -------- -Run `zprezto-update` to automatically check if there is an update to zprezto. -If there are no file conflicts, zprezto and its submodules will be -automatically updated. If there are conflicts you will instructed to go into -the `$ZPREZTODIR` directory and resolve them yourself. - -To pull the latest changes and update submodules manually: +Pull the latest changes and update submodules. -```console -cd $ZPREZTODIR -git pull -git submodule update --init --recursive -``` + git pull && git submodule update --init --recursive Usage ----- @@ -106,7 +83,29 @@ The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable. License ------- -This project is licensed under the MIT License. +(The MIT License) + +Copyright (c) 2009-2011 Robby Russell and contributors. + +Copyright (c) 2011-2015 Sorin Ionescu and contributors. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. [1]: http://www.zsh.org [2]: http://i.imgur.com/nrGV6pg.png "sorin theme" diff --git a/init.zsh b/init.zsh index 18525ca8..6b5254fb 100644 --- a/init.zsh +++ b/init.zsh @@ -10,61 +10,13 @@ # # Check for the minimum supported version. -min_zsh_version='4.3.11' +min_zsh_version='4.3.17' if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then - printf "prezto: old shell detected, minimum required: %s\n" "$min_zsh_version" >&2 + print "prezto: old shell detected, minimum required: $min_zsh_version" >&2 return 1 fi unset min_zsh_version -# zprezto convenience updater -# The function is surrounded by ( ) instead of { } so it starts in a subshell -# and won't affect the environment of the calling shell -function zprezto-update { - ( - function cannot-fast-forward { - local STATUS="$1" - [[ -n "${STATUS}" ]] && printf "%s\n" "${STATUS}" - printf "Unable to fast-forward the changes. You can fix this by " - printf "running\ncd '%s' and then\n'git pull' " "${ZPREZTODIR}" - printf "to manually pull and possibly merge in changes\n" - } - cd -q -- "${ZPREZTODIR}" || return 7 - local orig_branch="$(git symbolic-ref HEAD 2> /dev/null | cut -d '/' -f 3)" - if [[ "$orig_branch" == "master" ]]; then - git fetch || return "$?" - local UPSTREAM=$(git rev-parse '@{u}') - local LOCAL=$(git rev-parse HEAD) - local REMOTE=$(git rev-parse "$UPSTREAM") - local BASE=$(git merge-base HEAD "$UPSTREAM") - if [[ $LOCAL == $REMOTE ]]; then - printf "There are no updates.\n" - return 0 - elif [[ $LOCAL == $BASE ]]; then - printf "There is an update available. Trying to pull.\n\n" - if git pull --ff-only; then - printf "Syncing submodules\n" - git submodule update --recursive - return $? - else - cannot-fast-forward - return 1 - fi - elif [[ $REMOTE == $BASE ]]; then - cannot-fast-forward "Commits in master that aren't in upstream." - return 1 - else - cannot-fast-forward "Upstream and local have diverged." - return 1 - fi - else - printf "zprezto install at '%s' is not on the master branch " "${ZPREZTODIR}" - printf "(you're on '%s')\nUnable to automatically update.\n" "${orig_branch}" - return 1 - fi - return 1 - ) -} # # Module Loader # @@ -73,13 +25,13 @@ function zprezto-update { function pmodload { local -a pmodules local pmodule - local pfunction_glob='^([_.]*|prompt_*_setup|README*|*~)(-.N:t)' + local pfunction_glob='^([_.]*|prompt_*_setup|README*)(-.N:t)' # $argv is overridden in the anonymous function. pmodules=("$argv[@]") # Add functions to $fpath. - fpath=(${pmodules:+$ZPREZTODIR/modules/${^pmodules}/functions(/FN)} $fpath) + fpath=(${pmodules:+${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions(/FN)} $fpath) function { local pfunction @@ -88,7 +40,7 @@ function pmodload { setopt LOCAL_OPTIONS EXTENDED_GLOB # Load Prezto functions. - for pfunction in $ZPREZTODIR/modules/${^pmodules}/functions/$~pfunction_glob; do + for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions/$~pfunction_glob; do autoload -Uz "$pfunction" done } @@ -97,19 +49,19 @@ function pmodload { for pmodule in "$pmodules[@]"; do if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then continue - elif [[ ! -d "$ZPREZTODIR/modules/$pmodule" ]]; then + elif [[ ! -d "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule" ]]; then print "$0: no such module: $pmodule" >&2 continue else - if [[ -s "$ZPREZTODIR/modules/$pmodule/init.zsh" ]]; then - source "$ZPREZTODIR/modules/$pmodule/init.zsh" + if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" ]]; then + source "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" fi if (( $? == 0 )); then zstyle ":prezto:module:$pmodule" loaded 'yes' else # Remove the $fpath entry. - fpath[(r)${ZPREZTODIR}/modules/${pmodule}/functions]=() + fpath[(r)${ZDOTDIR:-$HOME}/.zprezto/modules/${pmodule}/functions]=() function { local pfunction @@ -119,7 +71,7 @@ function pmodload { setopt LOCAL_OPTIONS EXTENDED_GLOB # Unload Prezto functions. - for pfunction in $ZPREZTODIR/modules/$pmodule/functions/$~pfunction_glob; do + for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/functions/$~pfunction_glob; do unfunction "$pfunction" done } @@ -134,12 +86,6 @@ function pmodload { # Prezto Initialization # -# This finds the directory prezto is installed to so plugin managers don't need -# to rely on dirty hacks to force prezto into a directory. Additionally, it -# needs to be done here because inside the pmodload function ${0:h} evaluates to -# the current directory of the shell rather than the prezto dir. -ZPREZTODIR=${0:h} - # Source the Prezto configuration file. if [[ -s "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then source "${ZDOTDIR:-$HOME}/.zpreztorc" diff --git a/modules/README.md b/modules/README.md index 1c2cdc54..db851f36 100644 --- a/modules/README.md +++ b/modules/README.md @@ -3,9 +3,7 @@ Modules Load modules in *zpreztorc*. The order matters. -```sh -zstyle ':prezto:load' pmodule 'environment' 'terminal' -``` + zstyle ':prezto:load' pmodule 'environment' 'terminal' Archive ------- diff --git a/modules/archive/README.md b/modules/archive/README.md index c2ab938a..a1d49011 100644 --- a/modules/archive/README.md +++ b/modules/archive/README.md @@ -1,12 +1,11 @@ Archive ======= -Provides functions to create, list, and extract archives. +Provides functions to list and extract archives. Functions --------- - - `archive` creates an archive based on the provided archive name. - `lsarchive` lists the contents of one or more archives. - `unarchive` extracts the contents of one or more archives. @@ -16,8 +15,8 @@ Supported Formats The following archive formats are supported when the required utilities are installed: - - *.tar.gz*, *.tgz* require `tar` (optionally `pigz`). - - *.tar.bz2*, *.tbz* require `tar` (optionally `pbzip2`). + - *.tar.gz*, *.tgz* require `tar`. + - *.tar.bz2*, *.tbz* require `tar`. - *.tar.xz*, *.txz* require `tar` with *xz* support. - *.tar.zma*, *.tlz* require `tar` with *lzma* support. - *.tar* requires `tar`. @@ -26,21 +25,16 @@ installed: - *.xz* requires `unxz`. - *.lzma* requires `unlzma`. - *.Z* requires `uncompress`. - - *.zip*, *.jar* requires `unzip`. - - *.rar* requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`. + - *.zip* requires `unzip`. + - *.rar* requires `unrar` or `rar`. - *.7z* requires `7za`. - *.deb* requires `ar`, `tar`. -Additionally, if `pigz` and/or `pbzip2` are installed, `archive` will use them over -their traditional counterparts, `gzip` and `bzip2` respectively, to take full advantage -of all available CPU cores for compression. - Authors ------- *The authors of this module should be contacted via the [issue tracker][1].* - [Sorin Ionescu](https://github.com/sorin-ionescu) - - [Matt Hamilton](https://github.com/Eriner) [1]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/archive/functions/_lsarchive b/modules/archive/functions/_lsarchive index f2cee881..00f83e05 100644 --- a/modules/archive/functions/_lsarchive +++ b/modules/archive/functions/_lsarchive @@ -10,4 +10,4 @@ _arguments \ '(-v --verbose)'{-v,--remove}'[verbose archive listing]' \ - "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z)(-.)'" && return 0 + "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|rar|7z)(-.)'" && return 0 diff --git a/modules/archive/functions/_unarchive b/modules/archive/functions/_unarchive index 90e32f1a..aceb27b6 100644 --- a/modules/archive/functions/_unarchive +++ b/modules/archive/functions/_unarchive @@ -10,4 +10,4 @@ _arguments \ '(-r --remove)'{-r,--remove}'[remove archive]' \ - "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z|deb)(-.)'" && return 0 + "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|rar|7z|deb)(-.)'" && return 0 diff --git a/modules/archive/functions/archive b/modules/archive/functions/archive deleted file mode 100644 index 0e3bb616..00000000 --- a/modules/archive/functions/archive +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env zsh -# -# Creates archive file -# -# Authors: -# Matt Hamilton -# - -# function archive { - -local archive_name dir_to_archive _gzip_bin _bzip2_bin - -if (( $# != 2 )); then - cat >&2 <&2 - return 1 -fi - -# here, we check for dropin/multi-threaded replacements -# this should eventually be moved to modules/archive/init.zsh -# as a global alias -if (( $+commands[pigz] )); then - _gzip_bin='pigz' -else - _gzip_bin='gzip' -fi - -if (( $+commands[pbzip2] )); then - _bzip2_bin='pbzip2' -else - _bzip2_bin='bzip2' -fi - -case "${archive_name}" in - (*.tar.gz|*.tgz) tar -cvf "${archive_name}" --use-compress-program="${_gzip_bin}" "${dir_to_archive}" ;; - (*.tar.bz2|*.tbz|*.tbz2) tar -cvf "${archive_name}" --use-compress-program="${_bzip2_bin}" "${dir_to_archive}" ;; - (*.tar.xz|*.txz) tar -cvJf "${archive_name}" "${dir_to_archive}" ;; - (*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${dir_to_archive}" ;; - (*.tar) tar -cvf "${archive_name}" "${dir_to_archive}" ;; - (*.zip|*.jar) zip -r "${archive_name}" "${dir_to_archive}" ;; - (*.rar) rar a "${archive_name}" "${dir_to_archive}" ;; - (*.7z) 7za a "${archive_name}" "${dir_to_archive}" ;; - (*.gz) print "\n.gz is only useful for single files, and does not capture permissions. Use .tar.gz" ;; - (*.bz2) print "\n.bzip2 is only useful for single files, and does not capture permissions. Use .tar.bz2" ;; - (*.xz) print "\n.xz is only useful for single files, and does not capture permissions. Use .tar.xz" ;; - (*.lzma) print "\n.lzma is only useful for single files, and does not capture permissions. Use .tar.lzma" ;; - (*) print "\nunknown archive type for archive: ${archive_name}" ;; -esac - -# } diff --git a/modules/archive/functions/lsarchive b/modules/archive/functions/lsarchive index 7f892d1f..7ac61450 100644 --- a/modules/archive/functions/lsarchive +++ b/modules/archive/functions/lsarchive @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function lsarchive { - local verbose if (( $# == 0 )); then @@ -42,12 +40,10 @@ while (( $# > 0 )); do && tar --lzma -t${verbose:+v}f "$1" \ || lzcat "$1" | tar x${verbose:+v}f - ;; (*.tar) tar t${verbose:+v}f "$1" ;; - (*.zip|*.jar) unzip -l${verbose:+v} "$1" ;; - (*.rar) ( (( $+commands[unrar] )) \ - && unrar ${${verbose:+v}:-l} "$1" ) \ - || ( (( $+commands[rar] )) \ - && rar ${${verbose:+v}:-l} "$1" ) \ - || lsar ${verbose:+-l} "$1" ;; + (*.zip) unzip -l${verbose:+v} "$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 @@ -57,5 +53,3 @@ while (( $# > 0 )); do shift done - -# } diff --git a/modules/archive/functions/unarchive b/modules/archive/functions/unarchive index 53a24dd7..72dfbd1f 100644 --- a/modules/archive/functions/unarchive +++ b/modules/archive/functions/unarchive @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function unarchive { - local remove_archive local success local file_name @@ -56,12 +54,10 @@ while (( $# > 0 )); do (*.xz) unxz "$1" ;; (*.lzma) unlzma "$1" ;; (*.Z) uncompress "$1" ;; - (*.zip|*.jar) unzip "$1" -d $extract_dir ;; - (*.rar) ( (( $+commands[unrar] )) \ - && unrar x -ad "$1" ) \ - || ( (( $+commands[rar] )) \ - && rar x -ad "$1" ) \ - || unar -d "$1" ;; + (*.zip) unzip "$1" -d $extract_dir ;; + (*.rar) unrar &> /dev/null \ + && unrar x -ad "$1" \ + || rar x -ad "$1" ;; (*.7z) 7za x "$1" ;; (*.deb) mkdir -p "$extract_dir/control" @@ -82,5 +78,3 @@ while (( $# > 0 )); do (( $success == 0 )) && (( $remove_archive == 0 )) && rm "$1" shift done - -# } diff --git a/modules/autosuggestions/README.md b/modules/autosuggestions/README.md index ad0f7ece..70243798 100644 --- a/modules/autosuggestions/README.md +++ b/modules/autosuggestions/README.md @@ -11,12 +11,11 @@ Integrates [zsh-autosuggestions][1] into Prezto, which implements the of a previously entered command and Zsh suggests commands as you type based on history and completions. -If this module is used in conjunction with the *syntax-highlighting* module, -this module must be loaded **after** the *syntax-highlighting* module. +If this module is used in conjuncture with the *syntax-highlighting* module, it +must be loaded **after** it. -If this module is used in conjunction with the *history-substring-search* -module, this module must be loaded **after** the *history-substring-search* -module. +If this module is used in conjuncture with the *history-substring-search* +module, it must be loaded **after** it. Contributors ------------ @@ -36,15 +35,11 @@ positive results. To enable highlighting for this module only, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:autosuggestions' color 'yes' -``` + zstyle ':prezto:module:autosuggestions' color 'yes' To set the query found color, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:autosuggestions:color' found '' -``` + zstyle ':prezto:module:autosuggestions:color' found '' Authors ------- diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 2cb6eb6e..f0a74557 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 2cb6eb6e29852e64a146b0284275ecdc0661b082 +Subproject commit f0a745576ff69fa608421ee7214d4cd77b43e62f diff --git a/modules/command-not-found/README.md b/modules/command-not-found/README.md index 7775c926..e969b71a 100644 --- a/modules/command-not-found/README.md +++ b/modules/command-not-found/README.md @@ -1,23 +1,15 @@ Command-Not-Found ================= -When you try to use a command that is not available locally, searches -the package manager for a package offering that command and suggests -the proper install command. - -Debian-based and Arch Linux-based distributions use the [`command-not-found`][1] tool. - -macOS uses Homebrew's [`command-not-found` clone][2]. Note that you also need to [follow the instructions to tap the `command-not-found` homebrew repository][3]. - +Displays installation information for not found commands by loading the +[command-not-found][1] tool on Debian-based and Arch Linux-based distributions. Authors ------- -*The authors of this module should be contacted via the [issue tracker][4].* +*The authors of this module should be contacted via the [issue tracker][2].* - [Joseph Booker](https://github.com/sargas) [1]: https://code.launchpad.net/command-not-found -[2]: https://github.com/Homebrew/homebrew-command-not-found -[3]: https://github.com/Homebrew/homebrew-command-not-found#install -[4]: https://github.com/sorin-ionescu/prezto/issues +[2]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/command-not-found/init.zsh b/modules/command-not-found/init.zsh index 0e778031..2d9236a0 100644 --- a/modules/command-not-found/init.zsh +++ b/modules/command-not-found/init.zsh @@ -3,7 +3,6 @@ # # Authors: # Joseph Jon Booker -# Indrajit Raychaudhuri # # Load command-not-found on Debian-based distributions. @@ -12,9 +11,6 @@ if [[ -s '/etc/zsh_command_not_found' ]]; then # Load command-not-found on Arch Linux-based distributions. elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then source '/usr/share/doc/pkgfile/command-not-found.zsh' -# Load command-not-found on Mac OS X when homebrew tap is configured. -elif (( $+commands[brew] )) && brew command command-not-found-init > /dev/null 2>&1; then - eval "$(brew command-not-found-init)" # Return if requirements are not found. else return 1 diff --git a/modules/completion/README.md b/modules/completion/README.md index 7efb3d96..aaa86fdd 100644 --- a/modules/completion/README.md +++ b/modules/completion/README.md @@ -6,23 +6,6 @@ the [zsh-completions][1] project. This module must be loaded **after** the *utility* module. -Settings --------- - -### Ignore */etc/hosts* Entries - -To ignore certain entries from static */etc/hosts* for host completion, add the -following lines in *zpreztorc* with the IP addresses of the hosts as they -appear in */etc/hosts*. Both IP address and the corresponding hostname will be -ignored during host completion. However, some of the entries ignored from -*/etc/hosts* still might appear during completion because of their presence in -*ssh* configuration or history). - -```sh -zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \ - '0.0.0.0' '127.0.0.1' -``` - Contributors ------------ diff --git a/modules/completion/external b/modules/completion/external index 2a30b05a..3a2bb878 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit 2a30b05a5cf724a2d1c4c140c302dbf93f6aa6f6 +Subproject commit 3a2bb8781d32d05d1bf05deeeb476beb651e8272 diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index e2cc2d44..023a90e7 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -14,6 +14,9 @@ fi # Add zsh-completions to $fpath. fpath=("${0:h}/external/src" $fpath) +# Load and initialize the completion system ignoring insecure directories. +autoload -Uz compinit && compinit -i + # # Options # @@ -24,22 +27,9 @@ setopt PATH_DIRS # Perform path search even on command names with slas setopt AUTO_MENU # Show completion menu on a successive tab press. setopt AUTO_LIST # Automatically list choices on ambiguous completion. setopt AUTO_PARAM_SLASH # If completed parameter is a directory, add a trailing slash. -setopt EXTENDED_GLOB # Needed for file modification glob modifiers with compinit unsetopt MENU_COMPLETE # Do not autoselect the first completion entry. unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor. -# Load and initialize the completion system ignoring insecure directories with a -# cache time of 20 hours, so it should almost always regenerate the first time a -# shell is opened each day. -autoload -Uz compinit -_comp_files=(${ZDOTDIR:-$HOME}/.zcompdump(Nm-20)) -if (( $#_comp_files )); then - compinit -i -C -else - compinit -i -fi -unset _comp_files - # # Styles # @@ -76,9 +66,8 @@ zstyle ':completion:*' completer _complete _match _approximate zstyle ':completion:*:match:*' original only zstyle ':completion:*:approximate:*' max-errors 1 numeric -# Increase the number of errors based on the length of the typed word. But make -# sure to cap (at 7) the max-errors to avoid hanging. -zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3>7?7:($#PREFIX+$#SUFFIX)/3))numeric)' +# Increase the number of errors based on the length of the typed word. +zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)' # Don't complete unavailable commands. zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))' @@ -102,14 +91,11 @@ zstyle ':completion:*:history-words' menu yes # Environmental Variables zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-} -# Populate hostname completion. But allow ignoring custom entries from static -# */etc/hosts* which might be uninteresting. -zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores' - +# Populate hostname completion. zstyle -e ':completion:*:hosts' hosts 'reply=( - ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } - ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2> /dev/null))"}%%(\#${_etc_host_ignores:+|${(j:|:)~_etc_host_ignores}})*} - ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2> /dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}} + ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } + ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*} + ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}} )' # Don't complete uninteresting users... @@ -153,8 +139,9 @@ if [[ -s "$HOME/.mutt/aliases" ]]; then fi # SSH/SCP/RSYNC -zstyle ':completion:*:(ssh|scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' +zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr +zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*' diff --git a/modules/docker/README.md b/modules/docker/README.md deleted file mode 100644 index 335f77ad..00000000 --- a/modules/docker/README.md +++ /dev/null @@ -1,190 +0,0 @@ -# ZSH Docker Aliases - -Defines [Docker][1] aliases and functions. - -## Aliases - -### Docker - -- `dk` is short for `docker` -- `dka` Attach to a running container -- `dkb` Build an image from a Dockerfile -- `dkd` Inspect changes on a container's filesystem -- `dkdf` Show docker filesystem usage -- `dke` Run a command in a running container -- `dkE` Run an interactive command in a running container -- `dkh` Show the history of an image -- `dki` List images -- `dkin` Return low-level information on a container, image or task -- `dkk` Kill a running container -- `dkl` Fetch the logs of a container -- `dkli` Log in to a Docker registry -- `dklo` Log out from a Docker registry -- `dkls` is alias for `dkps` -- `dkp` Pause all processes within one or more containers -- `dkP` Unpause all processes within one or more containers -- `dkpl` Pull an image or a repository from a registry -- `dkph` Push an image or a repository to a registry -- `dkps` List containers -- `dkpsa` List all containers (default lists just running) -- `dkr` Run a command in a new container -- `dkR` Run an interactive command in a new container and automatically remove the container when it exits -- `dkRe` like `dkR` and set entry point to `/bin/bash` -- `dkrm` Remove one or more containers -- `dkrmi` Remove one or more images -- `dkrmC` Clean up exited containers -- `dkrmI` Clean up dangling images -- `dkrmV` Clean up unused volumes ( Docker >= 1.9 ) -- `dkrn` Rename a container -- `dks` Start one or more stopped containers -- `dkS` Restart a container -- `dkss` Display a live stream of container(s) resource usage statistics -- `dksv` Save one or more images to a tar archive (streamed to STDOUT by default) -- `dkt` Tag an image into a repository -- `dktop` Display the running processes of a container -- `dkup` Update configuration of one or more containers -- `dkV` Manage Docker volumes -- `dkv` Show the Docker version information -- `dkw` Block until a container stops, then print its exit code -- `dkx` Stop a running container - -#### container (C) - -- `dkC` Manage containers -- `dkCa` Attach to a running container -- `dkCcp` Copy files/folders between a container and the local filesystem -- `dkCd` Inspect changes on a container's filesystem -- `dkCe` Run a command in a running container -- `dkCin` Display detailed information on one or more containers -- `dkCk` Kill one or more running containers -- `dkCl` Fetch the logs of a container -- `dkCls` List containers -- `dkCp` Pause all processes within one or more containers -- `dkCpr` Remove all stopped containers -- `dkCrn` Rename a container -- `dkCS` Restart one or more containers -- `dkCrm` Remove one or more containers -- `dkCr` Run a command in a new container -- `dkCR` Run an interactive command in a new container and automatically remove the container when it exits -- `dkCRe` like `dkCR` and set entry point to `/bin/bash` -- `dkCs` Start one or more stopped containers -- `dkCss` Display a live stream of container(s) resource usage statistics -- `dkCx` Stop one or more running containers -- `dkCtop` Display the running processes of a container -- `dkCP` Unpause all processes within one or more containers -- `dkCup` Update configuration of one or more containers -- `dkCw` Block until one or more containers stop, then print their exit codes - -#### image (I) - -- `dkI` Manage images -- `dkIb` Build an image from a Dockerfile -- `dkIh` Show the history of an image -- `dkIim` Import the contents from a tarball to create a filesystem image -- `dkIin` Display detailed information on one or more images -- `dkIls` List images -- `dkIpr` Remove unused images -- `dkIpl` Pull an image or a repository from a registry -- `dkIph` Push an image or a repository to a registry -- `dkIrm` Remove one or more images -- `dkIsv` Save one or more images to a tar archive (streamed to STDOUT by default) -- `dkIt` Tag an image into a repository - -#### volume (V) - -- `dkV` Manage volumes -- `dkVin` Display detailed information on one or more volumes -- `dkVls` List volumes -- `dkVpr` Remove all unused volumes -- `dkVrm` Remove one or more volumes - -#### network (N) - -- `dkN` Manage networks -- `dkNs` Connect a container to a network -- `dkNx` Disconnects a container from a network -- `dkNin` Displays detailed information on a network -- `dkNls` Lists all the networks created by the user -- `dkNpr` Remove all unused networks -- `dkNrm` Deletes one or more networks - -#### system (Y) - -- `dkY` Manage Docker -- `dkYdf` Show docker filesystem usage -- `dkYpr` Remove unused data - -#### stack (K) - -- `dkK` Manage Docker stacks -- `dkKls` List stacks -- `dkKps` List the tasks in the stack -- `dkKrm` Remove the stack - -#### swarm (W) - -- `dkW` Manage Docker Swarm - -### Docker Machine - -- `dkm` is short for `docker-machine` -- `dkma` Get or set the active machine -- `dkmcp` Copy files between machines -- `dkmd` Set up the default machine ; alowing you to use `dkme` without arguments -- `dkme` Set up the environment for the Docker client (eg: `dkme staging` to toggle to staging) -- `dkmin` Inspect information about a machine -- `dkmip` Get the IP address of a machine -- `dkmk` Kill a machine -- `dkmls` List machines -- `dkmpr` Re-provision existing machines -- `dkmps` is alias for `dkmls` -- `dkmrg` Regenerate TLS Certificates for a machine -- `dkmrm` Remove a machine -- `dkms` Start a machine -- `dkmsh` Log into or run a command on a machine with SSH -- `dkmst` Get the status of a machine -- `dkmS` Restart a machine -- `dkmu` Get the URL of a machine -- `dkmup` Upgrade a machine to the latest version of Docker -- `dkmV` Show the Docker Machine version or a machine docker version -- `dkmx` Stop a machine - -### Docker Compose - -- `dkc` is short for `docker-compose` -- `dkcb` Build or rebuild services -- `dkcB` Build or rebuild services and do not use cache when building the image -- `dkcd` Stop and remove containers, networks, images, and volumes -- `dkce` Execute a command in a running container -- `dkck` Kill containers -- `dkcl` View output from containers -- `dkcls` is alias for `dkcps` -- `dkcp` Pause services -- `dkcP` Unpause services -- `dkcpl` Pull service images -- `dkcph` Push service images -- `dkcps` List containers -- `dkcr` Run a one-off command -- `dkcR` Run a one-off command and remove container after run. -- `dkcrm` Remove stopped containers -- `dkcs` Start services -- `dkcsc` Set number of containers for a service -- `dkcS` Restart services -- `dkcu` Create and start containers -- `dkcU` Create and start containers in detached mode: - Run containers in the background, print new container names -- `dkcV` Show the Docker-Compose version information -- `dkcx` Stop services - -## Support - -If you're having problems, use the [Prezto issue tracker][2]. - -## Acknowledgements - -This module is a copy of [akarzim/zsh-docker-aliases][3] by [François Vantomme][4] (MIT License). - -[1]: https://www.docker.com/ -[2]: https://github.com/zsh-users/prezto/issues -[3]: https://github.com/akarzim/zsh-docker-aliases -[4]: https://github.com/akarzim diff --git a/modules/docker/alias.zsh b/modules/docker/alias.zsh deleted file mode 100644 index cdd9f7c8..00000000 --- a/modules/docker/alias.zsh +++ /dev/null @@ -1,177 +0,0 @@ -# -# Defines Docker aliases. -# -# Author: -# François Vantomme -# - -# -# Aliases -# - -# Docker -alias dk='docker' -alias dka='docker attach' -alias dkb='docker build' -alias dkd='docker diff' -alias dkdf='docker system df' -alias dke='docker exec' -alias dkE='docker exec -it' -alias dkh='docker history' -alias dki='docker images' -alias dkin='docker inspect' -alias dkim='docker import' -alias dkk='docker kill' -alias dkl='docker logs' -alias dkli='docker login' -alias dklo='docker logout' -alias dkls='docker ps' -alias dkp='docker pause' -alias dkP='docker unpause' -alias dkpl='docker pull' -alias dkph='docker push' -alias dkps='docker ps' -alias dkpsa='docker ps -a' -alias dkr='docker run' -alias dkR='docker run -it --rm' -alias dkRe='docker run -it --rm --entrypoint /bin/bash' -alias dkRM='docker system prune' -alias dkrm='docker rm' -alias dkrmi='docker rmi' -alias dkrn='docker rename' -alias dks='docker start' -alias dkS='docker restart' -alias dkss='docker stats' -alias dksv='docker save' -alias dkt='docker tag' -alias dktop='docker top' -alias dkup='docker update' -alias dkV='docker volume' -alias dkv='docker version' -alias dkw='docker wait' -alias dkx='docker stop' - -## Container (C) -alias dkC='docker container' -alias dkCa='docker container attach' -alias dkCcp='docker container cp' -alias dkCd='docker container diff' -alias dkCe='docker container exec' -alias dkCin='docker container inspect' -alias dkCk='docker container kill' -alias dkCl='docker container logs' -alias dkCls='docker container ls' -alias dkCp='docker container pause' -alias dkCpr='docker container prune' -alias dkCrn='docker container rename' -alias dkCS='docker container restart' -alias dkCrm='docker container rm' -alias dkCr='docker container run' -alias dkCR='docker container run -it --rm' -alias dkCRe='docker container run -it --rm --entrypoint /bin/bash' -alias dkCs='docker container start' -alias dkCss='docker container stats' -alias dkCx='docker container stop' -alias dkCtop='docker container top' -alias dkCP='docker container unpause' -alias dkCup='docker container update' -alias dkCw='docker container wait' - -## Image (I) -alias dkI='docker image' -alias dkIb='docker image build' -alias dkIh='docker image history' -alias dkIim='docker image import' -alias dkIin='docker image inspect' -alias dkIls='docker image ls' -alias dkIpr='docker image prune' -alias dkIpl='docker image pull' -alias dkIph='docker image push' -alias dkIrm='docker image rm' -alias dkIsv='docker image save' -alias dkIt='docker image tag' - -## Volume (V) -alias dkV='docker volume' -alias dkVin='docker volume inspect' -alias dkVls='docker volume ls' -alias dkVpr='docker volume prune' -alias dkVrm='docker volume rm' - -## Network (N) -alias dkN='docker network' -alias dkNs='docker network connect' -alias dkNx='docker network disconnect' -alias dkNin='docker network inspect' -alias dkNls='docker network ls' -alias dkNpr='docker network prune' -alias dkNrm='docker network rm' - -## System (Y) -alias dkY='docker system' -alias dkYdf='docker system df' -alias dkYpr='docker system prune' - -## Stack (K) -alias dkK='docker stack' -alias dkKls='docker stack ls' -alias dkKps='docker stack ps' -alias dkKrm='docker stack rm' - -## Swarm (W) -alias dkW='docker swarm' - -## CleanUp (rm) -# Clean up exited containers (docker < 1.13) -alias dkrmC='docker rm $(docker ps -qaf status=exited)' -# Clean up dangling images (docker < 1.13) -alias dkrmI='docker rmi $(docker images -qf dangling=true)' -# Clean up dangling volumes (docker < 1.13) -alias dkrmV='docker volume rm $(docker volume ls -qf dangling=true)' - - -# Docker Machine (m) -alias dkm='docker-machine' -alias dkma='docker-machine active' -alias dkmcp='docker-machine scp' -alias dkmin='docker-machine inspect' -alias dkmip='docker-machine ip' -alias dkmk='docker-machine kill' -alias dkmls='docker-machine ls' -alias dkmpr='docker-machine provision' -alias dkmps='docker-machine ps' -alias dkmrg='docker-machine regenerate-certs' -alias dkmrm='docker-machine rm' -alias dkms='docker-machine start' -alias dkmsh='docker-machine ssh' -alias dkmst='docker-machine status' -alias dkmS='docker-machine restart' -alias dkmu='docker-machine url' -alias dkmup='docker-machine upgrade' -alias dkmv='docker-machine version' -alias dkmx='docker-machine stop' - -# Docker Compose (c) -alias dkc='docker-compose' -alias dkcb='docker-compose build' -alias dkcB='docker-compose build --no-cache' -alias dkcd='docker-compose down' -alias dkce='docker-compose exec' -alias dkck='docker-compose kill' -alias dkcl='docker-compose logs' -alias dkcls='docker-compose ps' -alias dkcp='docker-compose pause' -alias dkcP='docker-compose unpause' -alias dkcpl='docker-compose pull' -alias dkcph='docker-compose push' -alias dkcps='docker-compose ps' -alias dkcr='docker-compose run' -alias dkcR='docker-compose run --rm' -alias dkcrm='docker-compose rm' -alias dkcs='docker-compose start' -alias dkcsc='docker-compose scale' -alias dkcS='docker-compose restart' -alias dkcu='docker-compose up' -alias dkcU='docker-compose up -d' -alias dkcv='docker-compose version' -alias dkcx='docker-compose stop' diff --git a/modules/docker/init.zsh b/modules/docker/init.zsh deleted file mode 100644 index 8ad6bfdd..00000000 --- a/modules/docker/init.zsh +++ /dev/null @@ -1,57 +0,0 @@ -# -# Defines Docker aliases. -# -# Author: -# François Vantomme -# - -# Return if requirements are not found. -if (( ! $+commands[docker] )); then - return 1 -fi - -# -# Functions -# - -# Set Docker Machine environment -function dkme { - if (( ! $+commands[docker-machine] )); then - return 1 - fi - - eval $(docker-machine env $1) -} - -# Set Docker Machine default machine -function dkmd { - if (( ! $+commands[docker-machine] )); then - return 1 - fi - - pushd ~/.docker/machine/machines - - if [[ ! -d $1 ]]; then - echo "Docker machine '$1' does not exists. Abort." - popd - return 1 - fi - - if [[ -L default ]]; then - eval $(rm -f default) - elif [[ -d default ]]; then - echo "A default machine already exists. Abort." - popd - return 1 - elif [[ -e default ]]; then - echo "A file named 'default' already exists. Abort." - popd - return 1 - fi - - eval $(ln -s $1 default) - popd -} - -# Source module files. -source "${0:h}/alias.zsh" diff --git a/modules/dpkg/functions/deb-clone b/modules/dpkg/functions/deb-clone index a767bd32..a284c96f 100644 --- a/modules/dpkg/functions/deb-clone +++ b/modules/dpkg/functions/deb-clone @@ -6,8 +6,6 @@ # Sorin Ionescu # -# function deb-clone { - local clone_script="${0}.sh" local package_list=$( perl \ @@ -25,5 +23,3 @@ rm "$clone_script" print '#!/bin/sh\n' > "$clone_script" print "aptitude install ${package_list}\n" >> "$clone_script" chmod +x "$clone_script" - -# } diff --git a/modules/dpkg/functions/deb-history b/modules/dpkg/functions/deb-history index a1369dea..37376790 100644 --- a/modules/dpkg/functions/deb-history +++ b/modules/dpkg/functions/deb-history @@ -7,8 +7,6 @@ # Sorin Ionescu # -# function deb-history { - case "$1" in (install) zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*) @@ -36,5 +34,3 @@ Commands: EOF ;; esac - -# } diff --git a/modules/dpkg/functions/deb-kbuild b/modules/dpkg/functions/deb-kbuild index a84a9b6d..bdf7801e 100644 --- a/modules/dpkg/functions/deb-kbuild +++ b/modules/dpkg/functions/deb-kbuild @@ -6,13 +6,9 @@ # Sorin Ionescu # -# function deb-kbuild { - make-kpkg clean MAKEFLAGS='' time fakeroot make-kpkg \ --append-to-version '-custom' \ --revision "$(date +"%Y%m%d")" \ kernel_image \ kernel_headers - -# } diff --git a/modules/dpkg/init.zsh b/modules/dpkg/init.zsh index 69d524fc..e1f479b0 100644 --- a/modules/dpkg/init.zsh +++ b/modules/dpkg/init.zsh @@ -54,4 +54,4 @@ fi alias deb-build='time dpkg-buildpackage -rfakeroot -us -uc' # Removes all kernel images and headers, except for the ones in use. -alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n$(uname -r)))"' +alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))"' diff --git a/modules/editor/README.md b/modules/editor/README.md index c27e8642..da0185fd 100644 --- a/modules/editor/README.md +++ b/modules/editor/README.md @@ -11,27 +11,14 @@ Settings To enable key bindings, add the following to *zpreztorc*, and replace 'bindings' with 'emacs' or 'vi'. -```sh -zstyle ':prezto:module:editor' key-bindings 'bindings' -``` + zstyle ':prezto:module:editor' key-bindings 'bindings' ### Dot Expansion To enable the auto conversion of .... to ../.., add the following to *zpreztorc*. -```sh -zstyle ':prezto:module:editor' dot-expansion 'yes' -``` - -### PS Context - -To enable the prompt context to be set, add the following to your -*zpreztorc*. - -```sh -zstyle ':prezto:module:editor' ps-context 'yes' -``` + zstyle ':prezto:module:editor' dot-expansion 'yes' Theming ------- @@ -39,56 +26,31 @@ Theming To indicate when the editor is in the primary keymap (emacs or viins), add the following to your `theme_prompt_setup` function. -```sh -zstyle ':prezto:module:editor:info:keymap:primary' format '>>>' -``` + 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. -```sh -zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I' -``` + 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. -```sh -zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O' -``` + 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. -```sh -zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<' -``` + zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<' To indicate when the editor is completing, add the following to your `theme_prompt_setup` function. -```sh -zstyle ':prezto:module:editor:info:completing' format '...' -``` + zstyle ':prezto:module:editor:info:completing' format '...' Then add `$editor_info[context]`, where context is *keymap*, *insert*, or *overwrite*, to `$PROMPT` or `$RPROMPT`. -Convenience Functions ---------------------- - -### bindkey-all - -Provides a function `bindkey-all` which can be useful for checking how all of the -keys are bound. Normal `bindkey` command will only list the keys bound for one -keymap, which is not as useful if you want to grep through the output. The -keymap's names go to stderr so when you grep through bindkey-all's output you -will still see the headings and can tell which keymap each binding goes to. - -It will also pass through arguments so you can use bindkey-all to set bindings -for all keymaps at once. If provided arguments it will *not* print out the -names of each of the keymaps, and just run the command for each keymap. - Authors ------- diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index e5fee927..9aa64d64 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -28,11 +28,9 @@ WORDCHARS='*?_-.[]~&;!#$%^(){}<>' zmodload zsh/terminfo typeset -gA key_info key_info=( - 'Control' '\C-' - 'ControlLeft' '\e[1;5D \e[5D \e\e[D \eOd' - 'ControlRight' '\e[1;5C \e[5C \e\e[C \eOc' - 'ControlPageUp' '\e[5;5~' - 'ControlPageDown' '\e[6;5~' + 'Control' '\C-' + 'ControlLeft' '\e[1;5D \e[5D \e\e[D \eOd' + 'ControlRight' '\e[1;5C \e[5C \e\e[C \eOc' 'Escape' '\e' 'Meta' '\M-' 'Backspace' "^?" @@ -80,15 +78,7 @@ zle -N edit-command-line # # Functions # -# Runs bindkey but for all of the keymaps. Running it with no arguments will -# print out the mappings for all of the keymaps. -function bindkey-all { - local keymap='' - for keymap in $(bindkey -l); do - [[ "$#" -eq 0 ]] && printf "#### %s\n" "${keymap}" 1>&2 - bindkey -M "${keymap}" "$@" - done -} + # Exposes information about the Zsh Line Editor via the $editor_info associative # array. function editor-info { @@ -113,26 +103,11 @@ function editor-info { fi unset REPLY - zle zle-reset-prompt -} -zle -N editor-info -# Reset the prompt based on the current context and -# the ps-context option. -function zle-reset-prompt { - if zstyle -t ':prezto:module:editor' ps-context; then - # If we aren't within one of the specified contexts, then we want to reset - # the prompt with the appropriate editor_info[keymap] if there is one. - if [[ $CONTEXT != (select|cont) ]]; then - zle reset-prompt - zle -R - fi - else - zle reset-prompt - zle -R - fi + zle reset-prompt + zle -R } -zle -N zle-reset-prompt +zle -N editor-info # Updates editor information when the keymap changes. function zle-keymap-select { @@ -265,8 +240,8 @@ fi # Vi Key Bindings # -# Edit command in an external editor emacs style (v is used for visual mode) -bindkey -M vicmd "$key_info[Control]X$key_info[Control]E" edit-command-line +# Edit command in an external editor. +bindkey -M vicmd "v" edit-command-line # Undo/Redo bindkey -M vicmd "u" undo @@ -284,44 +259,6 @@ fi # Emacs and Vi Key Bindings # -# Unbound keys in vicmd and viins mode will cause really odd things to happen -# such as the casing of all the characters you have typed changing or other -# undefined things. In emacs mode they just insert a tilde, but bind these keys -# in the main keymap to a noop op so if there is no keybind in the users mode -# it will fall back and do nothing. -function _prezto-zle-noop { ; } -zle -N _prezto-zle-noop -local -a unbound_keys -unbound_keys=( - "${key_info[F1]}" - "${key_info[F2]}" - "${key_info[F3]}" - "${key_info[F4]}" - "${key_info[F5]}" - "${key_info[F6]}" - "${key_info[F7]}" - "${key_info[F8]}" - "${key_info[F9]}" - "${key_info[F10]}" - "${key_info[F11]}" - "${key_info[F12]}" - "${key_info[PageUp]}" - "${key_info[PageDown]}" - "${key_info[ControlPageUp]}" - "${key_info[ControlPageDown]}" -) -for keymap in $unbound_keys; do - bindkey -M viins "${keymap}" _prezto-zle-noop - bindkey -M vicmd "${keymap}" _prezto-zle-noop -done -# Ctrl + Left and Ctrl + Right bindings to forward/backward word -for keymap in viins vicmd; do - for key in "${(s: :)key_info[ControlLeft]}" - bindkey -M "$keymap" "$key" vi-backward-word - for key in "${(s: :)key_info[ControlRight]}" - bindkey -M "$keymap" "$key" vi-forward-word -done - for keymap in 'emacs' 'viins'; do bindkey -M "$keymap" "$key_info[Home]" beginning-of-line bindkey -M "$keymap" "$key_info[End]" end-of-line @@ -370,9 +307,6 @@ for keymap in 'emacs' 'viins'; do bindkey -M "$keymap" "$key_info[Control]X$key_info[Control]S" prepend-sudo done -# Delete key deletes character in vimcmd cmd mode instead of weird default functionality -bindkey -M vicmd "$key_info[Delete]" delete-char - # Do not expand .... to ../.. during incremental search. if zstyle -t ':prezto:module:editor' dot-expansion; then bindkey -M isearch . self-insert 2> /dev/null @@ -392,4 +326,4 @@ else print "prezto: editor: invalid key bindings: $key_bindings" >&2 fi -unset key{,map,_bindings} +unset key{,map,bindings} diff --git a/modules/environment/README.md b/modules/environment/README.md index b0d579bb..b86cbc54 100644 --- a/modules/environment/README.md +++ b/modules/environment/README.md @@ -13,14 +13,13 @@ Contributors This module **MUST NOT** rely on any command not built in Zsh. -Non-interactive environment variables should be defined in [`zshenv`][1]. +Non-interactive environment variables should be defined in *zshenv*. Authors ------- -*The authors of this module should be contacted via the [issue tracker][2].* +*The authors of this module should be contacted via the [issue tracker][1].* - [Sorin Ionescu](https://github.com/sorin-ionescu) -[1]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zshenv -[2]: https://github.com/sorin-ionescu/prezto/issues +[1]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/fasd/README.md b/modules/fasd/README.md index cb3fc20b..7d22626c 100644 --- a/modules/fasd/README.md +++ b/modules/fasd/README.md @@ -12,12 +12,6 @@ module. The Prezto Fasd configuration differs from the default. The default aliases have been disabled. -Installation ------------- - -`fasd` is bundled with prezto as a git submodule. Alternatively, you can manually install `fasd`. -If a manual install is found, it will be used instead of the bundled version. - Aliases ------- diff --git a/modules/fasd/external b/modules/fasd/external deleted file mode 160000 index 90b531a5..00000000 --- a/modules/fasd/external +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 90b531a5daaa545c74c7d98974b54cbdb92659fc diff --git a/modules/fasd/init.zsh b/modules/fasd/init.zsh index 44d62975..fc214251 100644 --- a/modules/fasd/init.zsh +++ b/modules/fasd/init.zsh @@ -9,10 +9,9 @@ # Load dependencies. pmodload 'editor' -# If the command doesn't exist externally, we need to fall back to the bundled -# submodule. +# Return if requirements are not found. if (( ! $+commands[fasd] )); then - source "${0:h}/external/fasd" || return 1 + return 1 fi # diff --git a/modules/git/README.md b/modules/git/README.md index bd67f712..c2d0449c 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -15,30 +15,20 @@ The format of the [git-log][8] output is configurable via the following style, where context is *brief*, *oneline*, and *medium*, which will be passed to the `--pretty=format:` switch. -```sh -zstyle ':prezto:module:git:log:context' format '' -``` + zstyle ':prezto:module:git:log:context' format '' ### Status Retrieving the status of a repository with submodules can take a long time. Submodules may be ignored when they are *dirty*, *untracked*, *all*, or *none*. -```sh -zstyle ':prezto:module:git:status:ignore' submodules 'all' -``` + zstyle ':prezto:module:git:status:ignore' submodules 'all' This setting affects all aliases and functions that call `git-status`. Aliases ------- -Aliases are enabled by default. You can disable them with: - -```sh -zstyle ':prezto:module:git:alias' skip 'yes' -``` - ### Git - `g` is short for `git`. @@ -47,17 +37,15 @@ zstyle ':prezto:module:git:alias' skip 'yes' - `gb` lists, creates, renames, and deletes branches. - `gbc` creates a new branch. - - `gbl` lists branches and their commits. (also `gbv`) - - `gbL` lists all local and remote branches and their commits. - - `gbr` renames a branch. (also `gbm`) - - `gbR` renames a branch even if the new branch name already exists. (also - `gbM`) + - `gbl` lists branches and their commits. + - `gbL` lists local and remote branches and their commits. - `gbs` lists branches and their commits with ancestry graphs. - `gbS` lists local and remote branches and their commits with ancestry graphs. - - `gbV` lists branches with more verbose information about their commits. - - `gbx` deletes a branch. (also `gbd`) - - `gbX` deletes a branch irrespective of its merged status. (also `gbD`) + - `gbx` deletes a branch. + - `gbX` deletes a branch irrespective of its merged status. + - `gbm` renames a branch. + - `gbM` renames a branch even if the new branch name already exists. ### Commit @@ -65,16 +53,11 @@ zstyle ':prezto:module:git:alias' skip 'yes' - `gc` records changes to the repository. - `gca` stages all modified and deleted files. - `gcm` records changes to the repository with the given message. - - `gcS` records changes to the repository. (Signed) - - `gcSa` stages all modified and deleted files. (Signed) - - `gcSm` records changes to the repository with the given message. (Signed) - `gco` checks out a branch or paths to work tree. - - `gcam` stages all modified and deleted files, and records changes to the repository with the given message. - `gco` checks out a branch or paths to work tree. - `gcO` checks out hunks from the index or the tree interactively. - - `gcf` amends the tip of the current branch using the same log message as *HEAD*. - - `gcSf` amends the tip of the current branch using the same log message as *HEAD*. (Signed) + - `gcf` amends the tip of the current branch using the same log message as + *HEAD*. - `gcF` amends the tip of the current branch. - - `gcSF` amends the tip of the current branch. (Signed) - `gcp` applies changes introduced by existing commits. - `gcP` applies changes introduced by existing commits without committing. - `gcr` reverts existing commits by reverting patches and recording new @@ -106,86 +89,10 @@ zstyle ':prezto:module:git:alias' skip 'yes' ### Fetch - `gf` downloads objects and references from another repository. - - `gfa` downloads objects and references from all remote repositories. - `gfc` clones a repository into a new directory. - - `gfcr` clones a repository into a new directory including all submodules. - `gfm` fetches from and merges with another repository or local branch. - `gfr` fetches from and rebases on another repository or local branch. -### Flow - - - `gFi` is short for `git flow init` - -#### Feature - - - `gFf` is short for `git flow feature` - - `gFfl` is short for `git flow feature list` - - `gFfs` is short for `git flow feature start` - - `gFff` is short for `git flow feature finish` - - `gFfp` is short for `git flow feature publish` - - `gFft` is short for `git flow feature track` - - `gFfd` is short for `git flow feature diff` - - `gFfr` is short for `git flow feature rebase` - - `gFfc` is short for `git flow feature checkout` - - `gFfm` is short for `git flow feature pull` - - `gFfx` is short for `git flow feature delete` - -#### Bugfix - - - `gFb` is short for `git flow bugfix` - - `gFbl` is short for `git flow bugfix list` - - `gFbs` is short for `git flow bugfix start` - - `gFbf` is short for `git flow bugfix finish` - - `gFbp` is short for `git flow bugfix publish` - - `gFbt` is short for `git flow bugfix track` - - `gFbd` is short for `git flow bugfix diff` - - `gFbr` is short for `git flow bugfix rebase` - - `gFbc` is short for `git flow bugfix checkout` - - `gFbm` is short for `git flow bugfix pull` - - `gFbx` is short for `git flow bugfix delete` - -#### Release - - - `gFl` is short for `git flow release` - - `gFll` is short for `git flow release list` - - `gFls` is short for `git flow release start` - - `gFlf` is short for `git flow release finish` - - `gFlp` is short for `git flow release publish` - - `gFlt` is short for `git flow release track` - - `gFld` is short for `git flow release diff` - - `gFlr` is short for `git flow release rebase` - - `gFlc` is short for `git flow release checkout` - - `gFlm` is short for `git flow release pull` - - `gFlx` is short for `git flow release delete` - -#### Hotfix - - - `gFh` is short for `git flow hotfix` - - `gFhl` is short for `git flow hotfix list` - - `gFhs` is short for `git flow hotfix start` - - `gFhf` is short for `git flow hotfix finish` - - `gFhp` is short for `git flow hotfix publish` - - `gFht` is short for `git flow hotfix track` - - `gFhd` is short for `git flow hotfix diff` - - `gFhr` is short for `git flow hotfix rebase` - - `gFhc` is short for `git flow hotfix checkout` - - `gFhm` is short for `git flow hotfix pull` - - `gFhx` is short for `git flow hotfix delete` - -#### Support - - - `gFs` is short for `git flow support` - - `gFsl` is short for `git flow support list` - - `gFss` is short for `git flow support start` - - `gFsf` is short for `git flow support finish` - - `gFsp` is short for `git flow support publish` - - `gFst` is short for `git flow support track` - - `gFsd` is short for `git flow support diff` - - `gFsr` is short for `git flow support rebase` - - `gFsc` is short for `git flow support checkout` - - `gFsm` is short for `git flow support pull` - - `gFsx` is short for `git flow support delete` - ### Grep - `gg` displays lines matching a pattern. @@ -202,8 +109,6 @@ zstyle ':prezto:module:git:alias' skip 'yes' - `giu` adds file contents to the index (updates only known files). - `gid` displays changes between the index and a named commit (diff). - `giD` displays changes between the index and a named commit (word diff). - - `gii` temporarily ignore differences in a given file. - - `giI` unignore differences in a given file. - `gir` resets the current HEAD to the specified state. - `giR` resets the current index interactively. - `gix` removes files/directories from the index (recursively). @@ -309,7 +214,6 @@ The following aliases may shadow system commands: - `gpt` shadows the [GUID partition table maintenance utility][4]. - `gs` shadows the [Ghostscript][5]. - - `gb` shadows the [GB][9]. If you frequently use the above commands, you may wish to remove said aliases from this module or to disable them at the bottom of the zshrc with `unalias`. @@ -324,7 +228,7 @@ Functions - `git-commit-lost` lists lost commits. - `git-dir` displays the path to the Git directory. - `git-hub-browse` opens the [GitHub][3] repository in the default browser. - - `git-hub-shorten-url` shortens [GitHub URLs][10]. + - `git-hub-shorten-url` shortens GitHub URLs. - `git-info` exposes repository information via the `$git_info` associative array. - `git-root` displays the path to the working tree root. @@ -341,9 +245,7 @@ To display information about the current repository in a prompt, define the following styles in the `prompt_name_setup` function, where the syntax for setting a style is as follows. -```sh -zstyle ':prezto:module:git:info:context:subcontext' format 'string' -``` + zstyle ':prezto:module:git:info:context:subcontext' format 'string' ### Main Contexts @@ -370,9 +272,7 @@ zstyle ':prezto:module:git:info:context:subcontext' format 'string' The following contexts must be enabled with the following zstyle: -```sh -zstyle ':prezto:module:git:info' verbose 'yes' -``` + zstyle ':prezto:module:git:info' verbose 'yes' ### Verbose Contexts @@ -399,24 +299,18 @@ zstyle ':prezto:module:git:info' verbose 'yes' | rebase | value | Rebasing | rebase-interactive | value | Rebasing interactively | rebase-merge | value | Rebasing merge -| revert | value | Reverting -| revert-sequence | value | Reverting sequence First, format the repository state attributes. For example, to format the branch and remote names, define the following styles. -```sh -zstyle ':prezto:module:git:info:branch' format 'branch:%b' -zstyle ':prezto:module:git:info:remote' format 'remote:%R' -``` + zstyle ':prezto:module:git:info:branch' format 'branch:%b' + zstyle ':prezto:module:git:info:remote' format 'remote:%R' Second, format how the above attributes are displayed in prompts. -```sh -zstyle ':prezto:module:git:info:keys' format \ - 'prompt' ' git(%b)' \ - 'rprompt' '[%R]' -``` + zstyle ':prezto:module:git:info:keys' format \ + 'prompt' ' git(%b)' \ + 'rprompt' '[%R]' Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to `$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook @@ -438,5 +332,3 @@ Authors [6]: https://github.com/sorin-ionescu/prezto/issues [7]: https://github.com/sorin-ionescu/prezto/issues/219 [8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html -[9]: https://getgb.io/ -[10]: https://github.com/blog/985-git-io-github-url-shortener diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 4a5789fe..ffa854dd 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -26,239 +26,156 @@ zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_subm # Aliases # -if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then - # Git - alias g='git' - - # Branch (b) - alias gb='git branch' - alias gba='git branch --all --verbose' - alias gbc='git checkout -b' - alias gbd='git branch --delete' - alias gbD='git branch --delete --force' - alias gbl='git branch --verbose' - alias gbL='git branch --all --verbose' - alias gbm='git branch --move' - alias gbM='git branch --move --force' - alias gbr='git branch --move' - alias gbR='git branch --move --force' - alias gbs='git show-branch' - alias gbS='git show-branch --all' - alias gbv='git branch --verbose' - alias gbV='git branch --verbose --verbose' - alias gbx='git branch --delete' - alias gbX='git branch --delete --force' - - # Commit (c) - alias gc='git commit --verbose' - alias gca='git commit --verbose --all' - alias gcm='git commit --message' - alias gcS='git commit -S --verbose' - alias gcSa='git commit -S --verbose --all' - alias gcSm='git commit -S --message' - alias gcam='git commit --all --message' - alias gco='git checkout' - alias gcO='git checkout --patch' - alias gcf='git commit --amend --reuse-message HEAD' - alias gcSf='git commit -S --amend --reuse-message HEAD' - alias gcF='git commit --verbose --amend' - alias gcSF='git commit -S --verbose --amend' - alias gcp='git cherry-pick --ff' - alias gcP='git cherry-pick --no-commit' - alias gcr='git revert' - alias gcR='git reset "HEAD^"' - alias gcs='git show' - alias gcl='git-commit-lost' - - # Conflict (C) - alias gCl='git --no-pager diff --name-only --diff-filter=U' - alias gCa='git add $(gCl)' - alias gCe='git mergetool $(gCl)' - alias gCo='git checkout --ours --' - alias gCO='gCo $(gCl)' - alias gCt='git checkout --theirs --' - alias gCT='gCt $(gCl)' - - # Data (d) - alias gd='git ls-files' - alias gdc='git ls-files --cached' - alias gdx='git ls-files --deleted' - alias gdm='git ls-files --modified' - alias gdu='git ls-files --other --exclude-standard' - alias gdk='git ls-files --killed' - alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"' - - # Fetch (f) - alias gf='git fetch' - alias gfa='git fetch --all' - alias gfc='git clone' - alias gfcr='git clone --recurse-submodules' - alias gfm='git pull' - alias gfr='git pull --rebase' - - # Flow (F) - alias gFi='git flow init' - alias gFf='git flow feature' - alias gFb='git flow bugfix' - alias gFl='git flow release' - alias gFh='git flow hotfix' - alias gFs='git flow support' - - alias gFfl='git flow feature list' - alias gFfs='git flow feature start' - alias gFff='git flow feature finish' - alias gFfp='git flow feature publish' - alias gFft='git flow feature track' - alias gFfd='git flow feature diff' - alias gFfr='git flow feature rebase' - alias gFfc='git flow feature checkout' - alias gFfm='git flow feature pull' - alias gFfx='git flow feature delete' - - alias gFbl='git flow bugfix list' - alias gFbs='git flow bugfix start' - alias gFbf='git flow bugfix finish' - alias gFbp='git flow bugfix publish' - alias gFbt='git flow bugfix track' - alias gFbd='git flow bugfix diff' - alias gFbr='git flow bugfix rebase' - alias gFbc='git flow bugfix checkout' - alias gFbm='git flow bugfix pull' - alias gFbx='git flow bugfix delete' - - alias gFll='git flow release list' - alias gFls='git flow release start' - alias gFlf='git flow release finish' - alias gFlp='git flow release publish' - alias gFlt='git flow release track' - alias gFld='git flow release diff' - alias gFlr='git flow release rebase' - alias gFlc='git flow release checkout' - alias gFlm='git flow release pull' - alias gFlx='git flow release delete' - - alias gFhl='git flow hotfix list' - alias gFhs='git flow hotfix start' - alias gFhf='git flow hotfix finish' - alias gFhp='git flow hotfix publish' - alias gFht='git flow hotfix track' - alias gFhd='git flow hotfix diff' - alias gFhr='git flow hotfix rebase' - alias gFhc='git flow hotfix checkout' - alias gFhm='git flow hotfix pull' - alias gFhx='git flow hotfix delete' - - alias gFsl='git flow support list' - alias gFss='git flow support start' - alias gFsf='git flow support finish' - alias gFsp='git flow support publish' - alias gFst='git flow support track' - alias gFsd='git flow support diff' - alias gFsr='git flow support rebase' - alias gFsc='git flow support checkout' - alias gFsm='git flow support pull' - alias gFsx='git flow support delete' - - # Grep (g) - alias gg='git grep' - alias ggi='git grep --ignore-case' - alias ggl='git grep --files-with-matches' - alias ggL='git grep --files-without-matches' - alias ggv='git grep --invert-match' - alias ggw='git grep --word-regexp' - - # Index (i) - alias gia='git add' - alias giA='git add --patch' - alias giu='git add --update' - alias gid='git diff --no-ext-diff --cached' - alias giD='git diff --no-ext-diff --cached --word-diff' - alias gii='git update-index --assume-unchanged' - alias giI='git update-index --no-assume-unchanged' - alias gir='git reset' - alias giR='git reset --patch' - alias gix='git rm -r --cached' - alias giX='git rm -rf --cached' - - # Log (l) - alias gl='git log --topo-order --pretty=format:"${_git_log_medium_format}"' - alias gls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"' - alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"${_git_log_medium_format}"' - alias glo='git log --topo-order --pretty=format:"${_git_log_oneline_format}"' - alias glg='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_format}"' - alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"' - alias glc='git shortlog --summary --numbered' - - # Merge (m) - alias gm='git merge' - alias gmC='git merge --no-commit' - alias gmF='git merge --no-ff' - alias gma='git merge --abort' - alias gmt='git mergetool' - - # Push (p) - alias gp='git push' - alias gpf='git push --force-with-lease' - alias gpF='git push --force' - alias gpa='git push --all' - alias gpA='git push --all && git push --tags' - alias gpt='git push --tags' - alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"' - alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"' - - # Rebase (r) - alias gr='git rebase' - alias gra='git rebase --abort' - alias grc='git rebase --continue' - alias gri='git rebase --interactive' - alias grs='git rebase --skip' - - # Remote (R) - alias gR='git remote' - alias gRl='git remote --verbose' - alias gRa='git remote add' - alias gRx='git remote rm' - alias gRm='git remote rename' - alias gRu='git remote update' - alias gRp='git remote prune' - alias gRs='git remote show' - alias gRb='git-hub-browse' - - # Stash (s) - alias gs='git stash' - alias gsa='git stash apply' - alias gsx='git stash drop' - alias gsX='git-stash-clear-interactive' - alias gsl='git stash list' - alias gsL='git-stash-dropped' - alias gsd='git stash show --patch --stat' - alias gsp='git stash pop' - alias gsr='git-stash-recover' - alias gss='git stash save --include-untracked' - alias gsS='git stash save --patch --no-keep-index' - alias gsw='git stash save --include-untracked --keep-index' - - # Submodule (S) - alias gS='git submodule' - alias gSa='git submodule add' - alias gSf='git submodule foreach' - alias gSi='git submodule init' - alias gSI='git submodule update --init --recursive' - alias gSl='git submodule status' - alias gSm='git-submodule-move' - alias gSs='git submodule sync' - alias gSu='git submodule foreach git pull origin master' - alias gSx='git-submodule-remove' - - # Working Copy (w) - alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short' - alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}' - alias gwd='git diff --no-ext-diff' - alias gwD='git diff --no-ext-diff --word-diff' - alias gwr='git reset --soft' - alias gwR='git reset --hard' - alias gwc='git clean -n' - alias gwC='git clean -f' - alias gwx='git rm -r' - alias gwX='git rm -rf' -fi +# Git +alias g='git' + +# Branch (b) +alias gb='git branch' +alias gbc='git checkout -b' +alias gbl='git branch -v' +alias gbL='git branch -av' +alias gbx='git branch -d' +alias gbX='git branch -D' +alias gbm='git branch -m' +alias gbM='git branch -M' +alias gbs='git show-branch' +alias gbS='git show-branch -a' + +# Commit (c) +alias gc='git commit --verbose' +alias gca='git commit --verbose --all' +alias gcm='git commit --message' +alias gco='git checkout' +alias gcO='git checkout --patch' +alias gcf='git commit --amend --reuse-message HEAD' +alias gcF='git commit --verbose --amend' +alias gcp='git cherry-pick --ff' +alias gcP='git cherry-pick --no-commit' +alias gcr='git revert' +alias gcR='git reset "HEAD^"' +alias gcs='git show' +alias gcl='git-commit-lost' + +# 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' +alias gdx='git ls-files --deleted' +alias gdm='git ls-files --modified' +alias gdu='git ls-files --other --exclude-standard' +alias gdk='git ls-files --killed' +alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"' + +# Fetch (f) +alias gf='git fetch' +alias gfc='git clone' +alias gfm='git pull' +alias gfr='git pull --rebase' + +# Grep (g) +alias gg='git grep' +alias ggi='git grep --ignore-case' +alias ggl='git grep --files-with-matches' +alias ggL='git grep --files-without-matches' +alias ggv='git grep --invert-match' +alias ggw='git grep --word-regexp' + +# Index (i) +alias gia='git add' +alias giA='git add --patch' +alias giu='git add --update' +alias gid='git diff --no-ext-diff --cached' +alias giD='git diff --no-ext-diff --cached --word-diff' +alias gir='git reset' +alias giR='git reset --patch' +alias gix='git rm -r --cached' +alias giX='git rm -rf --cached' + +# Log (l) +alias gl='git log --topo-order --pretty=format:"${_git_log_medium_format}"' +alias gls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"' +alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"${_git_log_medium_format}"' +alias glo='git log --topo-order --pretty=format:"${_git_log_oneline_format}"' +alias glg='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_format}"' +alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"' +alias glc='git shortlog --summary --numbered' + +# Merge (m) +alias gm='git merge' +alias gmC='git merge --no-commit' +alias gmF='git merge --no-ff' +alias gma='git merge --abort' +alias gmt='git mergetool' + +# Push (p) +alias gp='git push' +alias gpf='git push --force' +alias gpa='git push --all' +alias gpA='git push --all && git push --tags' +alias gpt='git push --tags' +alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"' +alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"' + +# Rebase (r) +alias gr='git rebase' +alias gra='git rebase --abort' +alias grc='git rebase --continue' +alias gri='git rebase --interactive' +alias grs='git rebase --skip' + +# Remote (R) +alias gR='git remote' +alias gRl='git remote --verbose' +alias gRa='git remote add' +alias gRx='git remote rm' +alias gRm='git remote rename' +alias gRu='git remote update' +alias gRp='git remote prune' +alias gRs='git remote show' +alias gRb='git-hub-browse' + +# Stash (s) +alias gs='git stash' +alias gsa='git stash apply' +alias gsx='git stash drop' +alias gsX='git-stash-clear-interactive' +alias gsl='git stash list' +alias gsL='git-stash-dropped' +alias gsd='git stash show --patch --stat' +alias gsp='git stash pop' +alias gsr='git-stash-recover' +alias gss='git stash save --include-untracked' +alias gsS='git stash save --patch --no-keep-index' +alias gsw='git stash save --include-untracked --keep-index' + +# Submodule (S) +alias gS='git submodule' +alias gSa='git submodule add' +alias gSf='git submodule foreach' +alias gSi='git submodule init' +alias gSI='git submodule update --init --recursive' +alias gSl='git submodule status' +alias gSm='git-submodule-move' +alias gSs='git submodule sync' +alias gSu='git submodule foreach git pull origin master' +alias gSx='git-submodule-remove' + +# Working Copy (w) +alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short' +alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}' +alias gwd='git diff --no-ext-diff' +alias gwD='git diff --no-ext-diff --word-diff' +alias gwr='git reset --soft' +alias gwR='git reset --hard' +alias gwc='git clean -n' +alias gwC='git clean -f' +alias gwx='git rm -r' +alias gwX='git rm -rf' diff --git a/modules/git/functions/_git-hub-browse b/modules/git/functions/_git-hub-browse index 9e6d6f0d..54d223f2 100644 --- a/modules/git/functions/_git-hub-browse +++ b/modules/git/functions/_git-hub-browse @@ -29,7 +29,7 @@ case "$state" in remote="$words[(($CURRENT - 1))]" branches_or_tags=($( - git ls-remote --heads --tags "$remote" 2> /dev/null | cut -f2 + git ls-remote --heads --tags "$remote" 2>/dev/null | cut -f2 )) branches=(HEAD ${${(M)branches_or_tags[@]##refs/heads/?##}##refs/heads/}) @@ -39,7 +39,7 @@ case "$state" in _describe -t tag 'tags' tags && ret=0 ;; (file) - files=(${(0)"$(_call_program files git ls-files -z --exclude-standard 2> /dev/null)"}) + files=(${(0)"$(_call_program files git ls-files -z --exclude-standard 2>/dev/null)"}) _wanted file expl 'file' _multi_parts - / files && ret=0 ;; esac diff --git a/modules/git/functions/_git-hub-shorten-url b/modules/git/functions/_git-hub-shorten-url index 1d811cae..dcc7bb38 100644 --- a/modules/git/functions/_git-hub-shorten-url +++ b/modules/git/functions/_git-hub-shorten-url @@ -8,4 +8,4 @@ # Sorin Ionescu # -_arguments '::GitHub URL:_urls' && return 0 +_arguments '1:url:' && return 0 diff --git a/modules/git/functions/git-branch-current b/modules/git/functions/git-branch-current index cadb6f63..944ffe25 100644 --- a/modules/git/functions/git-branch-current +++ b/modules/git/functions/git-branch-current @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function git-branch-current { - if ! git rev-parse 2> /dev/null; then print "$0: not a repository: $PWD" >&2 return 1 @@ -20,5 +18,3 @@ if [[ -n "$ref" ]]; then else return 1 fi - -# } diff --git a/modules/git/functions/git-commit-lost b/modules/git/functions/git-commit-lost index 62789ac9..75ab5716 100644 --- a/modules/git/functions/git-commit-lost +++ b/modules/git/functions/git-commit-lost @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function git-commit-lost { - if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 @@ -20,5 +18,3 @@ git fsck 2> /dev/null \ --no-walk \ --stdin \ --pretty=format:${_git_log_oneline_format} - -# } diff --git a/modules/git/functions/git-dir b/modules/git/functions/git-dir index fdb515c5..7e16ca81 100644 --- a/modules/git/functions/git-dir +++ b/modules/git/functions/git-dir @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function git-dir { - local git_dir="${$(git rev-parse --git-dir):A}" if [[ -n "$git_dir" ]]; then @@ -16,5 +14,3 @@ else print "$0: not a repository: $PWD" >&2 return 1 fi - -# } diff --git a/modules/git/functions/git-hub-browse b/modules/git/functions/git-hub-browse index a365a5a9..549a544a 100644 --- a/modules/git/functions/git-hub-browse +++ b/modules/git/functions/git-hub-browse @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function git-hub-browse { - if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 @@ -39,7 +37,7 @@ if (( $references[(i)$reference] == $#references + 1 )); then fi if [[ "$reference" == 'HEAD' ]]; then - reference="$(git rev-parse HEAD 2> /dev/null)" + reference="$(git rev-parse HEAD 2>/dev/null)" fi file="$3" @@ -58,5 +56,3 @@ else print "$0: not a Git repository or remote not set" >&2 return 1 fi - -# } diff --git a/modules/git/functions/git-hub-shorten-url b/modules/git/functions/git-hub-shorten-url index f36662f4..77e4b0ba 100644 --- a/modules/git/functions/git-hub-shorten-url +++ b/modules/git/functions/git-hub-shorten-url @@ -5,22 +5,18 @@ # Sorin Ionescu # -# function git-hub-shorten-url { - local url="$1" if [[ "$url" == '-' ]]; then read url <&0 fi -if [[ -z "$url" || ! "$url" =~ ^https?:\/\/.*github.com\/ ]]; then - print "usage: $0 [ url | - ] ; must be a github.com URL" >&2 +if [[ -z "$url" ]]; then + print "usage: $0 [ url | - ]" >&2 fi if (( $+commands[curl] )); then - curl -s -i 'https://git.io' -F "url=$url" | sed -n 's/^Location: //p' + curl -s -i 'http://git.io' -F "url=$url" | grep 'Location:' | sed 's/Location: //' else print "$0: command not found: curl" >&2 fi - -# } diff --git a/modules/git/functions/git-info b/modules/git/functions/git-info index d27365c2..8aaa4c32 100644 --- a/modules/git/functions/git-info +++ b/modules/git/functions/git-info @@ -5,7 +5,7 @@ # Sorin Ionescu # -# Gets the Git special action (am, bisect, cherry, merge, rebase, revert). +# Gets the Git special action (am, bisect, cherry, merge, rebase). # Borrowed from vcs_info and edited. function _git-action { local action_dir @@ -18,8 +18,6 @@ function _git-action { local rebase_formatted local rebase_interactive_formatted local rebase_merge_formatted - local revert_formatted - local revert_sequence_formatted for action_dir in \ "${git_dir}/rebase-apply" \ @@ -82,18 +80,6 @@ function _git-action { return 0 fi - if [[ -f "${git_dir}/REVERT_HEAD" ]]; then - if [[ -d "${git_dir}/sequencer" ]] ; then - zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' || revert_sequence_formatted='revert-sequence' - print "$revert_sequence_formatted" - else - zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' || revert_formatted='revert' - print "$revert_formatted" - fi - - return 0 - fi - if [[ -f "${git_dir}/BISECT_LOG" ]]; then zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect' print "$bisect_formatted" diff --git a/modules/git/functions/git-root b/modules/git/functions/git-root index f7494572..712e4fe6 100644 --- a/modules/git/functions/git-root +++ b/modules/git/functions/git-root @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function git-root { - local root="$(git rev-parse --show-toplevel 2> /dev/null)" if [[ -n "$root" ]]; then @@ -16,5 +14,3 @@ else print "$0: not a repository work tree: $PWD" >&2 return 1 fi - -# } diff --git a/modules/git/functions/git-stash-clear-interactive b/modules/git/functions/git-stash-clear-interactive index 71468aa0..e45165c4 100644 --- a/modules/git/functions/git-stash-clear-interactive +++ b/modules/git/functions/git-stash-clear-interactive @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function git-stash-clear-interactive { - if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 @@ -22,5 +20,3 @@ if [[ -f "$(git-dir)/refs/stash" ]]; then fi fi fi - -# } diff --git a/modules/git/functions/git-stash-dropped b/modules/git/functions/git-stash-dropped index 2a0b7a94..51580703 100644 --- a/modules/git/functions/git-stash-dropped +++ b/modules/git/functions/git-stash-dropped @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function git-stash-dropped { - if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 @@ -22,5 +20,3 @@ git fsck --unreachable 2> /dev/null \ --merges \ --no-walk \ --stdin - -# } diff --git a/modules/git/functions/git-stash-recover b/modules/git/functions/git-stash-recover index 5cc949a7..6add26fd 100644 --- a/modules/git/functions/git-stash-recover +++ b/modules/git/functions/git-stash-recover @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function git-stash-recover { - if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 @@ -18,5 +16,3 @@ for commit in "$@"; do git update-ref \ -m "$(git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit" done - -# } diff --git a/modules/git/functions/git-submodule-move b/modules/git/functions/git-submodule-move index ec6048e6..34c5e44a 100644 --- a/modules/git/functions/git-submodule-move +++ b/modules/git/functions/git-submodule-move @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function git-submodule-move { - if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 @@ -32,5 +30,3 @@ git-submodule-remove "$src" git submodule add "$url" "$dst" return 0 - -# } diff --git a/modules/git/functions/git-submodule-remove b/modules/git/functions/git-submodule-remove index 2490e78c..852b9cdb 100644 --- a/modules/git/functions/git-submodule-remove +++ b/modules/git/functions/git-submodule-remove @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function git-submodule-remove { - if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 @@ -27,5 +25,3 @@ rm -rf "${1}" rm -rf "$(git-dir)/modules/${1}" return 0 - -# } diff --git a/modules/gnu-utility/README.md b/modules/gnu-utility/README.md index 7e62a176..34bc6635 100644 --- a/modules/gnu-utility/README.md +++ b/modules/gnu-utility/README.md @@ -20,9 +20,7 @@ Settings To use a different prefix, add the following to *zpreztorc*, and replace 'g' with the desired prefix: -```sh -zstyle ':prezto:module:gnu-utility' prefix 'g' -``` + zstyle ':prezto:module:gnu-utility' prefix 'g' Authors ------- diff --git a/modules/gnu-utility/init.zsh b/modules/gnu-utility/init.zsh index 5df4fe33..65560324 100644 --- a/modules/gnu-utility/init.zsh +++ b/modules/gnu-utility/init.zsh @@ -42,7 +42,7 @@ _gnu_utility_cmds=( 'libtool' 'libtoolize' # Miscellaneous - 'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units' 'which' + 'getopt' 'grep' 'indent' 'sed' 'tar' 'time' 'units' 'which' ) # Wrap GNU utilities in functions. diff --git a/modules/gpg/README.md b/modules/gpg/README.md index be3c1a92..80e91d0f 100644 --- a/modules/gpg/README.md +++ b/modules/gpg/README.md @@ -9,9 +9,7 @@ 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*: -```conf -enable-ssh-support -``` + enable-ssh-support When OpenSSH Agent protocol emulation is enabled, this module will load the SSH module for additional processing. diff --git a/modules/gpg/init.zsh b/modules/gpg/init.zsh index 3d80a46c..b969c7a5 100644 --- a/modules/gpg/init.zsh +++ b/modules/gpg/init.zsh @@ -12,7 +12,7 @@ fi # Set the default paths to gpg-agent files. _gpg_agent_conf="${GNUPGHOME:-$HOME/.gnupg}/gpg-agent.conf" -_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env.$UID" +_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env" # Start gpg-agent if not started. if [[ -z "$GPG_AGENT_INFO" && ! -S "${GNUPGHOME:-$HOME/.gnupg}/S.gpg-agent" ]]; then @@ -29,7 +29,7 @@ fi export GPG_TTY="$(tty)" # Integrate with the SSH module. -if grep '^enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then +if grep 'enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/helper/init.zsh b/modules/helper/init.zsh index 328bed4f..9d792186 100644 --- a/modules/helper/init.zsh +++ b/modules/helper/init.zsh @@ -12,7 +12,7 @@ function is-autoloadable { # Checks if a name is a command, function, or alias. function is-callable { - (( $+commands[$1] || $+functions[$1] || $+aliases[$1] || $+builtins[$1] )) + (( $+commands[$1] )) || (( $+functions[$1] )) || (( $+aliases[$1] )) } # Checks a boolean variable for "true". diff --git a/modules/history-substring-search/README.md b/modules/history-substring-search/README.md index 050a5c2e..79714fa9 100644 --- a/modules/history-substring-search/README.md +++ b/modules/history-substring-search/README.md @@ -6,8 +6,8 @@ the [Fish shell][2]'s history search feature, where the user can type in any part of a previously entered command and press up and down to cycle through matching commands. -If this module is used in conjunction with the *syntax-highlighting* module, -this module must be loaded **after** the *syntax-highlighting* module. +If this module is used in conjuncture with the *syntax-highlighting* module, it +must be loaded **after** it. Contributors ------------ @@ -24,9 +24,7 @@ Settings To enable case-sensitivity for this module only, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:history-substring-search' case-sensitive 'yes' -``` + zstyle ':prezto:module:history-substring-search' case-sensitive 'yes' ### Highlighting @@ -36,27 +34,19 @@ positive results. To enable highlighting for this module only, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:history-substring-search' color 'yes' -``` + zstyle ':prezto:module:history-substring-search' color 'yes' To set the query found color, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:history-substring-search:color' found '' -``` + zstyle ':prezto:module:history-substring-search:color' found '' To set the query not found color, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:history-substring-search:color' not-found '' -``` + zstyle ':prezto:module:history-substring-search:color' not-found '' To set the search globbing flags, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:history-substring-search' globbing-flags '' -``` + zstyle ':prezto:module:history-substring-search' globbing-flags '' Authors ------- diff --git a/modules/history-substring-search/external b/modules/history-substring-search/external index aae33884..7a4b54b7 160000 --- a/modules/history-substring-search/external +++ b/modules/history-substring-search/external @@ -1 +1 @@ -Subproject commit aae3388491c2312c4efb2e86bcb999927bb2900e +Subproject commit 7a4b54b708ab88e0421097614f1acaa7a973c795 diff --git a/modules/history-substring-search/init.zsh b/modules/history-substring-search/init.zsh index d3ee3a11..67990a38 100644 --- a/modules/history-substring-search/init.zsh +++ b/modules/history-substring-search/init.zsh @@ -54,6 +54,4 @@ if [[ -n "$key_info" ]]; then bindkey -M "$keymap" "$key_info[Up]" history-substring-search-up bindkey -M "$keymap" "$key_info[Down]" history-substring-search-down done - - unset keymap fi diff --git a/modules/homebrew/README.md b/modules/homebrew/README.md index 98a3444c..84b43865 100644 --- a/modules/homebrew/README.md +++ b/modules/homebrew/README.md @@ -12,9 +12,8 @@ Aliases - `brewC` cleans outdated brews, including keg-only, and their cached archives. - `brewi` installs a formula. - `brewl` lists installed formulae. - - `brewo` lists brews which have an update available. - `brews` searches for a formula. - - `brewu` updates and upgrades Homebrew packages and formulae. + - `brewu` updates Homebrew and formulae. - `brewx` uninstalls a formula. ### Homebrew Cask @@ -24,7 +23,6 @@ Aliases - `caskC` cleans up all cached downloads. - `caski` installs a cask. - `caskl` lists installed casks. - - `casko` lists casks which have an update available. - `casks` searches for a cask. - `caskx` uninstalls a cask. diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index e517c0a5..1ebe793d 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -19,9 +19,8 @@ alias brewc='brew cleanup' alias brewC='brew cleanup --force' alias brewi='brew install' alias brewl='brew list' -alias brewo='brew outdated' alias brews='brew search' -alias brewu='brew update && brew upgrade' +alias brewu='brew update && brew upgrade --all' alias brewx='brew remove' # Homebrew Cask @@ -30,6 +29,5 @@ alias caskc='brew cask cleanup --outdated' alias caskC='brew cask cleanup' alias caski='brew cask install' alias caskl='brew cask list' -alias casko='brew cask outdated' alias casks='brew cask search' alias caskx='brew cask uninstall' diff --git a/modules/node/README.md b/modules/node/README.md index 951f2a74..5f0c3caf 100644 --- a/modules/node/README.md +++ b/modules/node/README.md @@ -10,13 +10,6 @@ nvm [nvm][5] allows for managing multiple, isolated Node.js installations in the home directory. -nodenv ------- - -[nodenv][6] does one thing well. nodenv is concerned solely with switching -Node versions. It's simple and predictable, Just Works, and is rock solid in -production. nodenv is forked from the popular [rbenv][7]. - Functions --------- @@ -31,10 +24,8 @@ Theming To display the version number of the current Node.js version, define the following style inside the `prompt_name_setup` function. -```sh -# %v - Node.js version. -zstyle ':prezto:module:node:info:version' format 'version:%v' -``` + # %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. @@ -52,5 +43,3 @@ Authors [3]: http://nodejs.org/api [4]: https://github.com/sorin-ionescu/prezto/issues [5]: https://github.com/creationix/nvm -[6]: https://github.com/nodenv/nodenv -[7]: https://github.com/sstephenson/rbenv diff --git a/modules/node/functions/node-doc b/modules/node/functions/node-doc index b1a048bd..24f56414 100644 --- a/modules/node/functions/node-doc +++ b/modules/node/functions/node-doc @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function node-doc { - if [[ -z "$BROWSER" ]]; then print "$0: no web browser defined" >&2 return 1 @@ -14,5 +12,3 @@ fi # TODO: Make the sections easier to use. "$BROWSER" "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}" - -# } diff --git a/modules/node/functions/node-info b/modules/node/functions/node-info index 22ac31bd..7742f904 100644 --- a/modules/node/functions/node-info +++ b/modules/node/functions/node-info @@ -6,8 +6,6 @@ # Zeh Rizzatti # -# function node-info { - local version local version_format local version_formatted @@ -17,8 +15,6 @@ typeset -gA node_info if (( $+functions[nvm_version] )); then version="${$(nvm_version)#v}" -elif (( $+commands[nodenv] )); then - version="${${$(nodenv version)#v}[(w)0]}" fi if [[ "$version" != (none|) ]]; then @@ -26,5 +22,3 @@ if [[ "$version" != (none|) ]]; then 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 127dea72..6d600789 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -11,17 +11,8 @@ if [[ -s "$HOME/.nvm/nvm.sh" ]]; then source "$HOME/.nvm/nvm.sh" # Load package manager installed NVM into the shell session. -elif (( $+commands[brew] )) && [[ -d "$(brew --prefix nvm 2> /dev/null)" ]]; then - source "$(brew --prefix nvm)/nvm.sh" - -# Load manually installed nodenv into the shell session. -elif [[ -s "$HOME/.nodenv/bin/nodenv" ]]; then - path=("$HOME/.nodenv/bin" $path) - eval "$(nodenv init - --no-rehash zsh)" - -# Load package manager installed nodenv into the shell session. -elif (( $+commands[nodenv] )); then - eval "$(nodenv init - --no-rehash zsh)" +elif (( $+commands[brew] )) && [[ -d "$(brew --prefix nvm 2>/dev/null)" ]]; then + source $(brew --prefix nvm)/nvm.sh # Return if requirements are not found. elif (( ! $+commands[node] )); then diff --git a/modules/osx/README.md b/modules/osx/README.md index 870b4864..d8eff0ff 100644 --- a/modules/osx/README.md +++ b/modules/osx/README.md @@ -3,19 +3,6 @@ OSX Defines [Mac OS X][1] aliases and functions. -Settings --------- - -### Dash Keyword - -To change the keyword used by `mand` to open man pages in [_Dash.app_][2] from -its default value of 'manpages', add the following line in *zpreztorc* and -replace the **keyword** with the one configured in [_Dash.app_][2]. - -```sh -zstyle ':prezto:module:osx:man' dash-keyword 'keyword' -``` - Aliases ------- diff --git a/modules/osx/functions/_mand_manp b/modules/osx/functions/_manb_mand_manp similarity index 100% rename from modules/osx/functions/_mand_manp rename to modules/osx/functions/_manb_mand_manp diff --git a/modules/osx/functions/mand b/modules/osx/functions/mand index 2902c76b..7a9653a1 100644 --- a/modules/osx/functions/mand +++ b/modules/osx/functions/mand @@ -7,8 +7,7 @@ function mand { if (( $# > 0 )); then - zstyle -s ':prezto:module:osx:man' dash-keyword 'dashkw' || dashkw='manpages' - open "dash://$dashkw:$1" 2> /dev/null + open "dash://manpages:$1" 2>/dev/null if (( $? != 0 )); then print "$0: Dash is not installed" >&2 break @@ -16,8 +15,6 @@ function mand { else print 'What manual page do you want?' >&2 fi - - unset dashkw } mand "$@" diff --git a/modules/osx/functions/osx-ls-download-history b/modules/osx/functions/osx-ls-download-history index ba6a40c7..5727c1b3 100644 --- a/modules/osx/functions/osx-ls-download-history +++ b/modules/osx/functions/osx-ls-download-history @@ -5,13 +5,9 @@ # Sorin Ionescu # -# function osx-ls-download-history { - local db for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then sqlite3 "$db" 'SELECT LSQuarantineDataURLString FROM LSQuarantineEvent' fi done - -# } diff --git a/modules/osx/functions/osx-rm-dir-metadata b/modules/osx/functions/osx-rm-dir-metadata index f15f4ed6..0a91cedb 100644 --- a/modules/osx/functions/osx-rm-dir-metadata +++ b/modules/osx/functions/osx-rm-dir-metadata @@ -5,11 +5,7 @@ # Sorin Ionescu # -# function osx-rm-dir-metadata { - find "${@:-$PWD}" \( \ -type f -name '.DS_Store' -o \ -type d -name '__MACOSX' \ \) -print0 | xargs -0 rm -rf - -# } diff --git a/modules/osx/functions/osx-rm-download-history b/modules/osx/functions/osx-rm-download-history index c6a368ca..38377098 100644 --- a/modules/osx/functions/osx-rm-download-history +++ b/modules/osx/functions/osx-rm-download-history @@ -5,13 +5,9 @@ # Sorin Ionescu # -# function osx-rm-download-history { - local db for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then sqlite3 "$db" 'DELETE FROM LSQuarantineEvent; VACUUM' fi done - -# } diff --git a/modules/osx/functions/pfd b/modules/osx/functions/pfd index 264b40ba..a4d4b686 100644 --- a/modules/osx/functions/pfd +++ b/modules/osx/functions/pfd @@ -5,12 +5,8 @@ # Sorin Ionescu # -# function pfd { - -osascript 2> /dev/null </dev/null < # -# function pfs { - osascript 2>&1 <&1 < # -# function ql { - if (( $# > 0 )); then qlmanage -p "$@" &> /dev/null fi - -# } diff --git a/modules/osx/functions/tab b/modules/osx/functions/tab index c39a6a8e..e95afbf5 100644 --- a/modules/osx/functions/tab +++ b/modules/osx/functions/tab @@ -5,13 +5,11 @@ # Sorin Ionescu # -# function tab { - local command="cd \\\"$PWD\\\"" (( $# > 0 )) && command="${command}; $*" the_app=$( - osascript 2> /dev/null </dev/null < /dev/null </dev/null < /dev/null </dev/null < /dev/null < # -# function pacman-list-disowned { - local tmp="${TMPDIR:-/tmp}/pacman-disowned-$UID-$$" local db="$tmp/db" local fs="$tmp/fs" @@ -22,5 +20,3 @@ find /bin /etc /lib /sbin /usr \ \( -type d -printf '%p/\n' -o -print \) | sort > "$fs" comm -23 "$fs" "$db" - -# } diff --git a/modules/pacman/functions/pacman-list-explicit b/modules/pacman/functions/pacman-list-explicit index 7c9b08f3..2967834f 100644 --- a/modules/pacman/functions/pacman-list-explicit +++ b/modules/pacman/functions/pacman-list-explicit @@ -6,8 +6,6 @@ # Sorin Ionescu # -# function pacman-list-explicit { - pacman --query --explicit --info \ | awk ' BEGIN { @@ -20,5 +18,3 @@ pacman --query --explicit --info \ print $2 } ' - -# } diff --git a/modules/pacman/init.zsh b/modules/pacman/init.zsh index a5cacf2c..9d752a9b 100644 --- a/modules/pacman/init.zsh +++ b/modules/pacman/init.zsh @@ -70,9 +70,9 @@ alias pacman-list-orphans="${_pacman_sudo}${_pacman_frontend} --query --deps --u alias pacman-remove-orphans="${_pacman_sudo}${_pacman_frontend} --remove --recursive \$(${_pacman_frontend} --quiet --query --deps --unrequired)" # Synchronizes the local package and Arch Build System databases against the -# repositories using the asp tool. -if (( $+commands[asp] )); then - alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh && sudo asp update" +# repositories. +if (( $+commands[abs] )); then + alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh && sudo abs" else alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh" fi diff --git a/modules/perl/README.md b/modules/perl/README.md index 092c9224..90af1ebe 100644 --- a/modules/perl/README.md +++ b/modules/perl/README.md @@ -14,19 +14,15 @@ Mac OS X in *~/Library/Perl/5.12* by altering the environment. For Perl versions older than 5.14, install *local::lib*. -```console -curl -L -C - -O http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz -tar xvf local-lib-1.008004.tar.gz -cd local-lib-1.008004 -perl Makefile.PL --bootstrap=$HOME/Library/Perl/5.12 -make && make test && make install -``` + curl -L -C - -O http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz + tar xvf local-lib-1.008004.tar.gz + cd local-lib-1.008004 + perl Makefile.PL --bootstrap=$HOME/Library/Perl/5.12 + make && make test && make install Install *cpanminus*: -```console -curl -L http://cpanmin.us | perl - --self-upgrade -``` + curl -L http://cpanmin.us | perl - --self-upgrade Perlbrew -------- @@ -34,14 +30,6 @@ Perlbrew An alternative to the above is to use [Perlbrew][2], which allows for the management of multiple, isolated Perl installations in the home directory. -plenv ------ - -Yet another alternative is [plenv][3]. This is inspired from rbenv and enables -switching between multiple binary installations. - -The subcommands of plenv is similar with rbenv. - Aliases ------- @@ -63,52 +51,13 @@ Aliases - `plbu` uninstalls a Perl version. - `plbx` temporarily sets the Perl version to use. -### plenv - - - `plv` manages Perl environments. - - `plvc` List all available plenv commands. - - `plvl` Set or show the local application-specific Perl version. - - `plvg` Set or show the global Perl version. - - `plvs` Set or show the shell-specific Perl version. - - `plvi` Install a Perl version using the perl-build plugin. - - `plvu` Uninstall a specific Perl version. - - `plvr` Rehash plenv shims (run this after installing executables). - - `plvv` Show the current Perl version and its origin. - - `plvV` List all Perl versions available to plenv. - - `plvw` Display the full path to an executable. - - `plvW` List all Perl versions that contain the given executable. - - `plvm` List cpan modules in current perl. - - `plvM` Migrate cpan modules from other version. - - `plvI` Install cpanm. - -Functions ---------- - - - `perl-info` exposes information about the Perl environment via the - `$perl_info` associative array. - -Theming -------- - -To display the name of the current Perl version in a prompt, define the -following style in the `prompt_name_setup` function. - -```sh -# %v - perl version. -zstyle ':prezto:module:perl:info:version' format 'version:%v' -``` - -Then add `$perl_info[version]` to `$PROMPT` or `$RPROMPT` and call -`perl-info` in the `prompt_name_precmd` hook function. - Authors ------- -*The authors of this module should be contacted via the [issue tracker][4].* +*The authors of this module should be contacted via the [issue tracker][3].* - [Sorin Ionescu](https://github.com/sorin-ionescu) [1]: http://www.perl.org [2]: http://perlbrew.pl -[3]: https://github.com/tokuhirom/plenv -[4]: https://github.com/sorin-ionescu/prezto/issues +[3]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/perl/functions/perl-info b/modules/perl/functions/perl-info deleted file mode 100644 index b42e23d7..00000000 --- a/modules/perl/functions/perl-info +++ /dev/null @@ -1,34 +0,0 @@ -# -# Exposes information about the Perl environment via the $perl_info associative -# array. -# -# Authors: -# JINNOUCHI Yasushi -# - -# function perl-info { - -local version -local version_format -local version_formatted - -# Clean up previous $perl_info. -unset perl_info -typeset -gA perl_info - -if (( $+commands[perlbrew] )); then - version="${PERLBREW_PERL##*perl-}" -elif (( $+commands[plenv] )); then - version=$(plenv version-name) -elif (( $+commands[perl] )); then - version=$(perl -e 'printf "%vd", $^V') -fi - -# Format version. -if [[ -n "$version" ]]; then - zstyle -s ':prezto:module:perl:info:version' format 'version_format' - zformat -f version_formatted "$version_format" "v:$version" - perl_info[version]="$version_formatted" -fi - -# } diff --git a/modules/perl/init.zsh b/modules/perl/init.zsh index 1624fbf9..a8d56031 100644 --- a/modules/perl/init.zsh +++ b/modules/perl/init.zsh @@ -10,29 +10,6 @@ if (( ! $+commands[perl] )); then return 1 fi -# -# Load Perlbrew or plenv -# - -# Load Perlbrew into the shell session. -if [[ -s "${PERLBREW_ROOT:-$HOME/perl5/perlbrew}/etc/bashrc" ]]; then - source "${PERLBREW_ROOT:-$HOME/perl5/perlbrew}/etc/bashrc" - - # Load Perlbrew completion. - if [[ -s "${PERLBREW_ROOT:-$HOME/perl5/perlbrew}/etc/perlbrew-completion.bash" ]]; then - source "${PERLBREW_ROOT:-$HOME/perl5/perlbrew}/etc/perlbrew-completion.bash" - fi - -# Load manually installed plenv into the shell session. -elif [[ -s "$HOME/.plenv/bin/plenv" ]]; then - path=("$HOME/.plenv/bin" $path) - eval "$(plenv init - --no-rehash zsh)" - -# Load package manager installed plenv into the shell session. -elif (( $+commands[plenv] )); then - eval "$(plenv init - --no-rehash zsh)" -fi - # # Local Module Installation # @@ -50,7 +27,8 @@ if [[ "$OSTYPE" == darwin* ]]; then source "$cache_file" fi - unset cache_file perl_path + unset perl_path + unset cache_file fi # @@ -63,31 +41,12 @@ alias pld='perldoc' alias ple='perl -wlne' # Perlbrew -if (( $+commands[perlbrew] )); then - alias plb='perlbrew' - alias plba='perlbrew available' - alias plbi='perlbrew install' - alias plbl='perlbrew list' - alias plbo='perlbrew off' - alias plbO='perlbrew switch-off' - alias plbs='perlbrew switch' - alias plbu='perlbrew use' - alias plbx='perlbrew uninstall' - -elif (( $+commands[plenv] )); then - alias plv='plenv' - alias plvc='plenv commands' - alias plvl='plenv local' - alias plvg='plenv global' - alias plvs='plenv shell' - alias plvi='plenv install' - alias plvu='plenv uninstall' - alias plvr='plenv rehash' - alias plvv='plenv version' - alias plvV='plenv versions' - alias plvw='plenv which' - alias plvW='plenv whence' - alias plvm='plenv list-modules' - alias plvM='plenv migrate-modules' - alias plvI='plenv install-cpanm' -fi +alias plb='perlbrew' +alias plba='perlbrew available' +alias plbi='perlbrew install' +alias plbl='perlbrew list' +alias plbo='perlbrew off' +alias plbO='perlbrew switch-off' +alias plbs='perlbrew switch' +alias plbu='perlbrew use' +alias plbx='perlbrew uninstall' diff --git a/modules/prompt/README.md b/modules/prompt/README.md index 523c83e9..dc024977 100644 --- a/modules/prompt/README.md +++ b/modules/prompt/README.md @@ -6,34 +6,11 @@ Loads prompt [themes][1]. Settings -------- -### Prompt Theme - To select a prompt theme, add the following to *zpreztorc*, and replace **name** with the name of the theme you wish to load. Setting it to **random** will load a random theme. -```sh -zstyle ':prezto:module:prompt' theme 'name' -``` - -### Prompt Display Length - -To change working directory prompt display length from 'short', set the -following to 'long' (without `~` expansion) or 'full' (with `~` expansion) -in *zpreztorc*. - -```sh -zstyle ':prezto:module:prompt' pwd-length 'short' -``` - -### Display Return Value - -Some prompts display the return value in the prompt. If a prompt has support, -this can be disabled with the following snippet. - -```sh -zstyle ':prezto:module:prompt' show-return-val 'no' -``` + zstyle ':prezto:module:prompt' theme 'name' Theming ------- @@ -49,7 +26,7 @@ There are three theme functions, a setup function, a help function, and a preview function. The setup function **must** always be defined. The help function and the preview functions are optional. -#### `prompt_name_setup` +#### prompt_name_setup This function is called by the `prompt` function to install the theme. This function may define other functions as necessary to maintain the prompt, @@ -59,57 +36,51 @@ including a function that displays help or a function used to preview it. The most basic example of this function can be seen below. -```sh -function prompt_name_setup { - PROMPT='%m%# ' - RPROMPT='' -} -``` + function prompt_name_setup { + PROMPT='%m%# ' + RPROMPT='' + } -#### `prompt_name_help` +#### prompt_name_help If the `prompt_name_setup` function is customizable via parameters, a help function **should** be defined. The user will access it via `prompt -h name`. The most basic example of this function can be seen below. -```sh -function prompt_name_help { - cat <] [] + prompt theme [] [] -where the color is for the left-hand prompt. -EOH -} -``` + where the color is for the left-hand prompt. + EOH + } -#### `prompt_name_preview` +#### prompt_name_preview If the `prompt_name_setup` function is customizable via parameters, a preview function **should** be defined. The user will access it via `prompt -p name`. The most basic example of this function can be seen below. -```sh -function prompt_name_preview { - if (( $# > 0 )); then - prompt_preview_theme theme "$@" - else - prompt_preview_theme theme red green blue - print - prompt_preview_theme theme yellow magenta black - fi -} -``` + function prompt_name_preview { + if (( $# > 0 )); then + prompt_preview_theme theme "$@" + else + prompt_preview_theme theme red green blue + print + prompt_preview_theme theme yellow magenta black + fi + } ### Hook Functions There are many Zsh [hook][2] functions, but mostly the *precmd* hook will be used. -#### `prompt_name_precmd` +#### prompt_name_precmd This hook is called before the prompt is displayed and is useful for getting information to display in a prompt. @@ -122,25 +93,11 @@ a function before you calling it. The most basic example of this function can be seen below. -```sh -function prompt_name_precmd { - if (( $+functions[git-info] )); then - git-info - fi -} -``` - -Troubleshooting ---------------- - -### Fonts aren't displaying properly. - -On most systems, themes which use special characters need to have a patched font -installed and configured properly. - -Powerline provides some information on [terminal support][4] and [how to install -patched fonts][5] which should fix most font issues. - + function prompt_name_precmd { + if (( $+functions[git-info] )); then + git-info + fi + } Authors ------- @@ -152,5 +109,3 @@ Authors [1]: http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Prompt-Themes [2]: http://zsh.sourceforge.net/Doc/Release/Functions.html#Hook-Functions [3]: https://github.com/sorin-ionescu/prezto/issues -[4]: http://powerline.readthedocs.io/en/master/usage.html#terminal-emulator-requirements -[5]: http://powerline.readthedocs.io/en/latest/installation.html#fonts-installation diff --git a/modules/prompt/external/agnoster b/modules/prompt/external/agnoster index 3ad94b65..43cb371f 160000 --- a/modules/prompt/external/agnoster +++ b/modules/prompt/external/agnoster @@ -1 +1 @@ -Subproject commit 3ad94b659910c775a6560c45b1524d23d8c83b09 +Subproject commit 43cb371f361eecf62e9dac7afc73a1c16edf89c7 diff --git a/modules/prompt/external/async b/modules/prompt/external/async deleted file mode 160000 index d95adb7c..00000000 --- a/modules/prompt/external/async +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d95adb7cb58ec9d45bf024951770d975e089ef1d diff --git a/modules/prompt/external/powerlevel9k b/modules/prompt/external/powerlevel9k deleted file mode 160000 index 17c069d2..00000000 --- a/modules/prompt/external/powerlevel9k +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 17c069d25ac7b24af6b5dc7ecb9597cef881f582 diff --git a/modules/prompt/external/powerline b/modules/prompt/external/powerline index c48e4c69..8e811523 160000 --- a/modules/prompt/external/powerline +++ b/modules/prompt/external/powerline @@ -1 +1 @@ -Subproject commit c48e4c69ef5c368ea7cda961ed9d0e298a5ae1fc +Subproject commit 8e81152340c4beb2d941340d1feb2dc29bbcc309 diff --git a/modules/prompt/external/pure b/modules/prompt/external/pure index a95d55cc..fb4c37da 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit a95d55cc7d3a73fc562ac11e23c26113ed6d58cf +Subproject commit fb4c37dad3c5cbdebca61a8ff5545397c11d450f diff --git a/modules/prompt/functions/async b/modules/prompt/functions/async index ae0ec558..d4b591e1 120000 --- a/modules/prompt/functions/async +++ b/modules/prompt/functions/async @@ -1 +1 @@ -../external/async/async.zsh \ No newline at end of file +../external/pure/async.zsh \ No newline at end of file diff --git a/modules/prompt/functions/prompt-pwd b/modules/prompt/functions/prompt-pwd deleted file mode 100644 index 53613e72..00000000 --- a/modules/prompt/functions/prompt-pwd +++ /dev/null @@ -1,30 +0,0 @@ -# -# Prompt setup function commonly used by prompt themes. -# -# Authors: -# Sorin Ionescu -# - -# function prompt-pwd { - -setopt localoptions extendedglob - -local current_pwd="${PWD/#$HOME/~}" -local ret_directory - -if [[ "$current_pwd" == (#m)[/~] ]]; then - ret_directory="$MATCH" - unset MATCH -elif zstyle -m ':prezto:module:prompt' pwd-length 'full'; then - ret_directory=${PWD} -elif zstyle -m ':prezto:module:prompt' pwd-length 'long'; then - ret_directory=${current_pwd} -else - ret_directory="${${${${(@j:/:M)${(@s:/:)current_pwd}##.#?}:h}%/}//\%/%%}/${${current_pwd:t}//\%/%%}" -fi - -unset current_pwd - -print "$ret_directory" - -# } diff --git a/modules/prompt/functions/prompt_cloud_setup b/modules/prompt/functions/prompt_cloud_setup index 0637208b..3b048df1 100644 --- a/modules/prompt/functions/prompt_cloud_setup +++ b/modules/prompt/functions/prompt_cloud_setup @@ -76,7 +76,7 @@ function prompt_cloud_preview { function prompt_cloud_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) # Set the theme prefix to a cloud or to the user's given characters. if [[ -n "$1" ]]; then diff --git a/modules/prompt/functions/prompt_damoekri_setup b/modules/prompt/functions/prompt_damoekri_setup index 4fe132d6..58c4d352 100644 --- a/modules/prompt/functions/prompt_damoekri_setup +++ b/modules/prompt/functions/prompt_damoekri_setup @@ -11,12 +11,23 @@ # Load dependencies. pmodload 'helper' -prompt_damoekri_precmd() { +function prompt_damoekri_pwd { + local pwd="${PWD/#$HOME/~}" + + if [[ "$pwd" == (#m)[/~] ]]; then + _prompt_damoekri_pwd="$MATCH" + unset MATCH + else + _prompt_damoekri_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}" + fi +} + +function prompt_damoekri_precmd { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS # Format PWD. - _prompt_damoekri_pwd=$(prompt-pwd) + prompt_damoekri_pwd # Get Git repository information. if (( $+functions[git-info] )); then @@ -32,7 +43,7 @@ prompt_damoekri_precmd() { function prompt_damoekri_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/prompt/functions/prompt_giddie_setup b/modules/prompt/functions/prompt_giddie_setup index 3c194fb9..5a14ffe0 100644 --- a/modules/prompt/functions/prompt_giddie_setup +++ b/modules/prompt/functions/prompt_giddie_setup @@ -38,7 +38,7 @@ function prompt_giddie_precmd { function prompt_giddie_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) # Load required functions. autoload -Uz vcs_info diff --git a/modules/prompt/functions/prompt_kylewest_setup b/modules/prompt/functions/prompt_kylewest_setup index 70b6a54a..e4ee0c0e 100644 --- a/modules/prompt/functions/prompt_kylewest_setup +++ b/modules/prompt/functions/prompt_kylewest_setup @@ -32,7 +32,7 @@ function prompt_kylewest_precmd { function prompt_kylewest_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/prompt/functions/prompt_minimal_setup b/modules/prompt/functions/prompt_minimal_setup index 7456ffdb..8c07e70e 100644 --- a/modules/prompt/functions/prompt_minimal_setup +++ b/modules/prompt/functions/prompt_minimal_setup @@ -23,7 +23,7 @@ function prompt_minimal_precmd { function prompt_minimal_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/prompt/functions/prompt_nicoulaj_setup b/modules/prompt/functions/prompt_nicoulaj_setup index 447ba1f4..241c8b6e 100644 --- a/modules/prompt/functions/prompt_nicoulaj_setup +++ b/modules/prompt/functions/prompt_nicoulaj_setup @@ -26,7 +26,7 @@ function prompt_nicoulaj_precmd { function prompt_nicoulaj_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/prompt/functions/prompt_paradox_setup b/modules/prompt/functions/prompt_paradox_setup index 4f19989d..36ae40ec 100644 --- a/modules/prompt/functions/prompt_paradox_setup +++ b/modules/prompt/functions/prompt_paradox_setup @@ -8,7 +8,6 @@ # Isaac Wolkerstorfer # Jeff Sandberg # Sorin Ionescu -# Patrick Bos # # Screenshots: # http://i.imgur.com/0XIWX.png @@ -53,14 +52,21 @@ function prompt_paradox_build_prompt { prompt_paradox_start_segment green black '${(e)git_info[ref]}${(e)git_info[status]}' fi - if [[ -n "$python_info" ]]; then - prompt_paradox_start_segment white black '${(e)python_info[virtualenv]}' - fi - prompt_paradox_end_segment } -prompt_paradox_print_elapsed_time() { +function prompt_paradox_pwd { + local pwd="${PWD/#$HOME/~}" + + if [[ "$pwd" == (#m)[/~] ]]; then + _prompt_paradox_pwd="$MATCH" + unset MATCH + else + _prompt_paradox_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}" + fi +} + +function prompt_paradox_print_elapsed_time { local end_time=$(( SECONDS - _prompt_paradox_start_time )) local hours minutes seconds remainder @@ -84,18 +90,13 @@ function prompt_paradox_precmd { unsetopt XTRACE KSH_ARRAYS # Format PWD. - _prompt_paradox_pwd=$(prompt-pwd) + prompt_paradox_pwd # Get Git repository information. if (( $+functions[git-info] )); then git-info fi - # Get Python environment information. - if (( $+functions[python-info] )); then - python-info - fi - # Calculate and print the elapsed time. prompt_paradox_print_elapsed_time } @@ -107,7 +108,7 @@ function prompt_paradox_preexec { function prompt_paradox_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) # Load required functions. autoload -Uz add-zsh-hook @@ -142,9 +143,6 @@ function prompt_paradox_setup { 'ref' '$(coalesce "%b" "%p" "%c")' \ 'status' '%s%D%A%B%S%a%d%m%r%U%u' - # %v - virtualenv name. - zstyle ':prezto:module:python:info:virtualenv' format 'virtualenv:%v' - # Define prompts. PROMPT=' ${(e)$(prompt_paradox_build_prompt)} diff --git a/modules/prompt/functions/prompt_peepcode_setup b/modules/prompt/functions/prompt_peepcode_setup index 2081961c..c70fb9a7 100644 --- a/modules/prompt/functions/prompt_peepcode_setup +++ b/modules/prompt/functions/prompt_peepcode_setup @@ -25,7 +25,7 @@ function prompt_peepcode_precmd { function prompt_peepcode_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/prompt/functions/prompt_powerlevel9k_setup b/modules/prompt/functions/prompt_powerlevel9k_setup deleted file mode 120000 index f692e0ae..00000000 --- a/modules/prompt/functions/prompt_powerlevel9k_setup +++ /dev/null @@ -1 +0,0 @@ -../external/powerlevel9k/powerlevel9k.zsh-theme \ No newline at end of file diff --git a/modules/prompt/functions/prompt_skwp_setup b/modules/prompt/functions/prompt_skwp_setup index f69dcddf..1c8f0a90 100644 --- a/modules/prompt/functions/prompt_skwp_setup +++ b/modules/prompt/functions/prompt_skwp_setup @@ -28,7 +28,7 @@ function prompt_skwp_precmd { function prompt_skwp_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index c2258867..e339dffe 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -32,33 +32,44 @@ # Load dependencies. pmodload 'helper' +function prompt_sorin_pwd { + local pwd="${PWD/#$HOME/~}" + + if [[ "$pwd" == (#m)[/~] ]]; then + _prompt_sorin_pwd="$MATCH" + unset MATCH + else + _prompt_sorin_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}" + fi +} + function prompt_sorin_git_info { - # We can safely split on ':' because it isn't allowed in ref names. - IFS=':' read _git_target _git_post_target <<<"$3" - - # The target actually contains 3 space separated possibilities, so we need to - # make sure we grab the first one. - _git_target=$(coalesce ${(@)${(z)_git_target}}) - - if [[ -z "$_git_target" ]]; then - # No git target detected, flush the git fragment and redisplay the prompt. - if [[ -n "$_prompt_sorin_git" ]]; then - _prompt_sorin_git='' - zle && zle reset-prompt + if (( _prompt_sorin_precmd_async_pid > 0 )); then + # Append Git status. + if [[ -s "$_prompt_sorin_precmd_async_data" ]]; then + alias typeset='typeset -g' + source "$_prompt_sorin_precmd_async_data" + RPROMPT+='${git_info:+${(e)git_info[status]}}' + unalias typeset fi - else - # Git target detected, update the git fragment and redisplay the prompt. - _prompt_sorin_git="${_git_target}${_git_post_target}" + + # Reset PID. + _prompt_sorin_precmd_async_pid=0 + + # Redisplay prompt. zle && zle reset-prompt fi } -function prompt_sorin_async_git { - cd -q "$1" +function prompt_sorin_precmd_async { + # Get Git repository information. if (( $+functions[git-info] )); then git-info - print ${git_info[status]} + typeset -p git_info >! "$_prompt_sorin_precmd_async_data" fi + + # Signal completion to parent process. + kill -WINCH $$ } function prompt_sorin_precmd { @@ -66,41 +77,31 @@ function prompt_sorin_precmd { unsetopt XTRACE KSH_ARRAYS # Format PWD. - _prompt_sorin_pwd=$(prompt-pwd) + prompt_sorin_pwd + + # Define prompts. + RPROMPT='${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}' # Kill the old process of slow commands if it is still running. - async_flush_jobs async_sorin_git - - # Handle updating git data. We also clear the git prompt data if we're in a - # different git root now. - if (( $+functions[git-dir] )); then - local new_git_root="$(git-dir 2> /dev/null)" - if [[ $new_git_root != $_sorin_cur_git_root ]]; then - _prompt_sorin_git='' - _sorin_cur_git_root=$new_git_root - fi + if (( _prompt_sorin_precmd_async_pid > 0 )); then + kill -KILL "$_prompt_sorin_precmd_async_pid" &>/dev/null fi - - # Run python info (this should be fast and not require any async) - if (( $+functions[python-info] )); then - python-info - fi - # Compute slow commands in the background. - async_job async_sorin_git prompt_sorin_async_git "$PWD" + trap prompt_sorin_git_info WINCH + prompt_sorin_precmd_async &! + _prompt_sorin_precmd_async_pid=$! } function prompt_sorin_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) _prompt_sorin_precmd_async_pid=0 - _prompt_sorin_precmd_async_data=$(mktemp "${TMPDIR:-/tmp}/sorin-prompt-async-XXXXXXXXXX") + _prompt_sorin_precmd_async_data="${TMPPREFIX}-prompt_sorin_data" # Load required functions. autoload -Uz add-zsh-hook - autoload -Uz async && async # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_sorin_precmd @@ -127,30 +128,11 @@ function prompt_sorin_setup { zstyle ':prezto:module:git:info:unmerged' format ' %%B%F{3}═%f%%b' zstyle ':prezto:module:git:info:untracked' format ' %%B%F{7}◼%f%%b' zstyle ':prezto:module:git:info:keys' format \ - 'status' '%b %p %c:%s%A%B%S%a%d%m%r%U%u' - - # Set up non-zero return value display - local show_return="✘ " - # Default is to show the return value - if zstyle -T ':prezto:module:prompt' show-return-val; then - show_return+='%? ' - fi - # Set python-info format - zstyle ':prezto:module:python:info:virtualenv' format '%f%F{3}(%v)%F{7} ' - - # Get the async worker set up - async_start_worker async_sorin_git -n - async_register_callback async_sorin_git prompt_sorin_git_info - _sorin_cur_git_root='' - - _prompt_sorin_git='' - _prompt_sorin_pwd='' + 'status' '$(coalesce "%b" "%p" "%c")%s%A%B%S%a%d%m%r%U%u' # Define prompts. PROMPT='${SSH_TTY:+"%F{9}%n%f%F{7}@%f%F{3}%m%f "}%F{4}${_prompt_sorin_pwd}%(!. %B%F{1}#%f%b.)${editor_info[keymap]} ' - RPROMPT='$python_info[virtualenv]${editor_info[overwrite]}%(?:: %F{1}' - RPROMPT+=${show_return} - RPROMPT+='%f)${VIM:+" %B%F{6}V%f%b"}${_prompt_sorin_git}' + RPROMPT='' SPROMPT='zsh: correct %F{1}%R%f to %F{2}%r%f [nyae]? ' } @@ -159,7 +141,7 @@ function prompt_sorin_preview { local +h RPROMPT='' local +h SPROMPT='' - editor-info 2> /dev/null + editor-info 2>/dev/null prompt_preview_theme 'sorin' } diff --git a/modules/prompt/functions/prompt_steeef_setup b/modules/prompt/functions/prompt_steeef_setup index b241f9aa..996331fd 100644 --- a/modules/prompt/functions/prompt_steeef_setup +++ b/modules/prompt/functions/prompt_steeef_setup @@ -32,7 +32,7 @@ function prompt_steeef_precmd { function prompt_steeef_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(cr percent subst) # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/python/README.md b/modules/python/README.md index 27d18e62..d9497d6f 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -14,7 +14,7 @@ execution of `pyenv`. ### Usage -Install Python versions with `pyenv install` into `~/.pyenv/versions`. +Install Python versions with `pyenv install` into *~/.pyenv/versions*. Local Package Installation -------------------------- @@ -28,81 +28,43 @@ documentation. ### Usage -Install packages into the per user site directory with `pip install --user`. +Install packages into the per user site directory with `easy_install --user` or +`pip install --user`. virtualenvwrapper ----------------- -[`virtualenvwrapper`][2] is a frontend to the popular [`virtualenv`][3] utility. +[virtualenvwrapper][2] is a frontend to the popular [virtualenv][3] utility. -`virtualenv` creates isolated Python environments and `virtualenvwrapper` provides +virtualenv creates isolated Python environments and virtualenvwrapper provides convenient shell functions to create, switch, and manage them. ### Usage -Install `virtualenvwrapper`. +Install virtualenvwrapper. -Virtual environments are stored in `~/.virtualenvs`. +Virtual environments are stored in *~/.virtualenvs*. There are configuration variables that have to be set to enable certain features. -If you wish to use these features, export the variables in [`zshenv`][6]. +If you wish to use these features, export the variables in *~/.zshenv* -The variable `$PROJECT_HOME` tells `virtualenvwrapper` where to place project +The variable `$PROJECT_HOME` tells virtualenvwrapper where to place project working directories. It must be set and the directory created before `mkproject` is used. Replace *Developer* with your projects directory. -```sh -export PROJECT_HOME="$HOME/Developer" -``` + export PROJECT_HOME="$HOME/Developer" -The variable `VIRTUALENVWRAPPER_PYTHON` tells `virtualenvwrapper` to use the -specified full path of the `python` interpreter overriding the `$PATH` search. - -```sh -export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python -``` - -The variable `VIRTUALENVWRAPPER_VIRTUALENV` tells `virtualenvwrapper` to use the -specified full path of `virtualenv` binary overriding the `$PATH` search. - -```sh -export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv -``` - -The variable `$VIRTUALENVWRAPPER_VIRTUALENV_ARGS` tells `virtualenvwrapper` what +The variable `$VIRTUALENVWRAPPER_VIRTUALENV_ARGS` tells virtualenvwrapper what arguments to pass to `virtualenv`. For example, set the value to -`--system-site-packages` to ensure that all new environments have access to the +*--no-site-packages* to ensure that all new environments are isolated from the system site-packages directory. -```sh -export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--system-site-packages' -``` - -### Additional Options - -There is a hook to enable auto-switching to virtualenvs when switching into a -directory where the root of the project matches a virtualenv name. - -This can be enabled with: - -```sh -zstyle ':prezto:module:python:virtualenv' auto-switch 'yes' -``` - -`virtualenvwrapper` is automatically initialized if pre-requisites are met -(`$VIRTUALENVWRAPPER_VIRTUALENV` is explicitly set or `virtualenv` is in -`$PATH`). This can be disabled with: - -``` -zstyle ':prezto:module:python:virtualenv' initialize 'no' -``` + export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' Aliases ------- - `py` is short for `python`. - - `py2` is short for `python2`. - - `py3` is short for `python3`. Functions --------- @@ -135,4 +97,3 @@ Authors [3]: http://pypi.python.org/pypi/virtualenv [4]: https://github.com/yyuu/pyenv [5]: https://github.com/sorin-ionescu/prezto/issues -[6]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zshenv diff --git a/modules/python/functions/python-info b/modules/python/functions/python-info index a616814c..6a8c7589 100644 --- a/modules/python/functions/python-info +++ b/modules/python/functions/python-info @@ -6,8 +6,6 @@ # Sorin Ionescu # -# function python-info { - local virtualenv_format local virtualenv_formatted @@ -21,5 +19,3 @@ if [[ -n "$VIRTUAL_ENV" ]]; then zformat -f virtualenv_formatted "$virtualenv_format" "v:${VIRTUAL_ENV:t}" python_info[virtualenv]="$virtualenv_formatted" fi - -# } diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 6f8ae7f1..da78ea79 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -9,12 +9,10 @@ # Load manually installed pyenv into the shell session. if [[ -s "$HOME/.pyenv/bin/pyenv" ]]; then path=("$HOME/.pyenv/bin" $path) - export PYENV_ROOT=$(pyenv root) eval "$(pyenv init -)" # Load package manager installed pyenv into the shell session. elif (( $+commands[pyenv] )); then - export PYENV_ROOT=$(pyenv root) eval "$(pyenv init -)" # Prepend PEP 370 per user site packages directory, which defaults to @@ -36,112 +34,15 @@ if (( ! $+commands[python] && ! $+commands[pyenv] )); then return 1 fi -function _python-workon-cwd { - # Check if this is a Git repo - local GIT_REPO_ROOT="" - local GIT_TOPLEVEL="$(git rev-parse --show-toplevel 2> /dev/null)" - if [[ $? == 0 ]]; then - GIT_REPO_ROOT="$GIT_TOPLEVEL" - fi - # Get absolute path, resolving symlinks - local PROJECT_ROOT="${PWD:A}" - while [[ "$PROJECT_ROOT" != "/" && ! -e "$PROJECT_ROOT/.venv" \ - && ! -d "$PROJECT_ROOT/.git" && "$PROJECT_ROOT" != "$GIT_REPO_ROOT" ]]; do - PROJECT_ROOT="${PROJECT_ROOT:h}" - done - if [[ "$PROJECT_ROOT" == "/" ]]; then - PROJECT_ROOT="." - fi - # Check for virtualenv name override - local ENV_NAME="" - if [[ -f "$PROJECT_ROOT/.venv" ]]; then - ENV_NAME="$(cat "$PROJECT_ROOT/.venv")" - elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then - ENV_NAME="$PROJECT_ROOT/.venv" - elif [[ "$PROJECT_ROOT" != "." ]]; then - ENV_NAME="${PROJECT_ROOT:t}" - fi - if [[ -n $CD_VIRTUAL_ENV && "$ENV_NAME" != "$CD_VIRTUAL_ENV" ]]; then - # We've just left the repo, deactivate the environment - # Note: this only happens if the virtualenv was activated automatically - deactivate && unset CD_VIRTUAL_ENV - fi - if [[ "$ENV_NAME" != "" ]]; then - # Activate the environment only if it is not already active - if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then - if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then - workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" - elif [[ -e "$ENV_NAME/bin/activate" ]]; then - source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME" - fi - fi - fi -} - -# Load auto workon cwd hook -if zstyle -t ':prezto:module:python:virtualenv' auto-switch 'yes'; then - # Auto workon when changing directory - add-zsh-hook chpwd _python-workon-cwd -fi - -# Load virtualenvwrapper into the shell session, if pre-requisites are met -# and unless explicitly requested not to -if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ - zstyle -T ':prezto:module:python:virtualenv' initialize ; then +# Load virtualenvwrapper into the shell session. +if (( $+commands[virtualenvwrapper.sh] )); then # Set the directory where virtual environments are stored. - export WORKON_HOME="${WORKON_HOME:-$HOME/.virtualenvs}" + export WORKON_HOME="$HOME/.virtualenvs" # Disable the virtualenv prompt. VIRTUAL_ENV_DISABLE_PROMPT=1 - # Create a sorted array of available virtualenv related 'pyenv' commands to - # look for plugins of interest. Scanning shell '$path' isn't enough as they - # can exist in 'pyenv' synthesized paths (e.g., '~/.pyenv/plugins') instead. - local -a pyenv_plugins - if (( $+commands[pyenv] )); then - pyenv_plugins=(${(@oM)${(f)"$(pyenv commands --no-sh 2>/dev/null)"}:#virtualenv*}) - fi - - if (( $pyenv_plugins[(i)virtualenv-init] <= $#pyenv_plugins )); then - # Enable 'virtualenv' with 'pyenv'. - eval "$(pyenv virtualenv-init -)" - - # Optionally activate 'virtualenvwrapper' plugin when available. - if (( $pyenv_plugins[(i)virtualenvwrapper(_lazy|)] <= $#pyenv_plugins )); then - pyenv "$pyenv_plugins[(R)virtualenvwrapper(_lazy|)]" - fi - else - # Fallback to 'virtualenvwrapper' without 'pyenv' wrapper if available - # in '$path' or in an alternative location on a Debian based system. - virtenv_sources=( - ${(@Ov)commands[(I)virtualenvwrapper(_lazy|).sh]} - /usr/share/virtualenvwrapper/virtualenvwrapper(_lazy|).sh(OnN) - ) - if (( $#virtenv_sources )); then - source "${virtenv_sources[1]}" - fi - - unset virtenv_sources - fi - - unset pyenv_plugins -fi - -# Load PIP completion. -if (( $#commands[(i)pip(|[23])] )); then - cache_file="${0:h}/cache.zsh" - - # Detect and use one available from among 'pip', 'pip2', 'pip3' variants - pip_command="$commands[(i)pip(|[23])]" - - if [[ "$pip_command" -nt "$cache_file" || ! -s "$cache_file" ]]; then - # pip is slow; cache its output. And also support 'pip2', 'pip3' variants - $pip_command completion --zsh \ - | sed -e "s|compctl -K [-_[:alnum:]]* pip|& pip2 pip3|" >! "$cache_file" 2> /dev/null - fi - - source "$cache_file" - unset cache_file pip_command + source "$commands[virtualenvwrapper.sh]" fi # @@ -149,5 +50,3 @@ fi # alias py='python' -alias py2='python2' -alias py3='python3' diff --git a/modules/rsync/README.md b/modules/rsync/README.md index b418780b..951e3c6a 100644 --- a/modules/rsync/README.md +++ b/modules/rsync/README.md @@ -23,5 +23,5 @@ Authors - [Sorin Ionescu](https://github.com/sorin-ionescu) [1]: http://rsync.samba.org -[2]: https://bombich.com/kb/ccc5/credits#rsync +[2]: http://help.bombich.com/kb/overview/credits#opensource [3]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/ruby/README.md b/modules/ruby/README.md index 12848d86..1c955f5e 100644 --- a/modules/ruby/README.md +++ b/modules/ruby/README.md @@ -8,7 +8,7 @@ Local Gem Installation ---------------------- When a Ruby version manager is not detected, local gems are installed in -`~/.gems`; otherwise, they are installed according to the manager. +*~/.gems*; otherwise, they are installed according to the manager. RVM --- @@ -35,7 +35,7 @@ not known to cause conflicts with shell scripts. chruby ------ -Yet another alternative is [chruby][4], which is simpler than both RVM and +Yet another alternative is [chruby][6], which is simpler than both RVM and rbenv. ### Settings @@ -43,17 +43,15 @@ rbenv. #### Auto-Switch To enable auto switching the Ruby version on directory change based on the -`.ruby-version` file, add the following line to [`zpreztorc`][5]: +.ruby-version file, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:ruby:chruby' auto-switch 'yes' -``` + zstyle ':prezto:module:ruby:chruby' auto-switch 'yes' Bundler ------- Manage gems that are not meant to be used as commands, such as application -dependencies, with [Bundler][6]. +dependencies, with [Bundler][4]. Aliases ------- @@ -65,16 +63,15 @@ Aliases ### Bundler - `rbb` manages ruby dependencies (`bundle`). - - `rbbc` cleans up unused gems in your bundler directory. - `rbbe` executes a script in the context of the current bundle. - - `rbbi` installs the gems specified in the `Gemfile` in `vendor/bundle`. + - `rbbi` installs the gems specified in the *Gemfile* in *vendor/bundle*. - `rbbI` installs the following: - - gems specified in the `Gemfile` in `vendor/bundle`. - - packages the gems into `vendor/cache`. - - appends bundler directories to `.gitignore`. + - gems specified in the *Gemfile* in *vendor/bundle*. + - packages the gems into *vendor/cache*. + - appends bundler directories to *.gitignore*. - `rbbl` lists all gems in the current bundle. - `rbbo` opens an installed gem in the editor. - - `rbbp` packages gem files into `vendor/cache`. + - `rbbp` packages gem files into *vendor/cache*. - `rbbu` updates gems to their latest version. Functions @@ -99,14 +96,13 @@ Then add `$ruby_info[version]` to `$PROMPT` or `$RPROMPT` and call Authors ------- -*The authors of this module should be contacted via the [issue tracker][7].* +*The authors of this module should be contacted via the [issue tracker][5].* - [Sorin Ionescu](https://github.com/sorin-ionescu) [1]: http://www.ruby-lang.org [2]: https://rvm.io [3]: https://github.com/sstephenson/rbenv -[4]: https://github.com/postmodern/chruby -[5]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zpreztorc -[6]: http://gembundler.com -[7]: https://github.com/sorin-ionescu/prezto/issues +[4]: http://gembundler.com +[5]: https://github.com/sorin-ionescu/prezto/issues +[6]: https://github.com/postmodern/chruby diff --git a/modules/ruby/functions/ruby-app-root b/modules/ruby/functions/ruby-app-root index ef28c5b0..ea35be60 100644 --- a/modules/ruby/functions/ruby-app-root +++ b/modules/ruby/functions/ruby-app-root @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function ruby-app-root { - local root_dir="$PWD" while [[ "$root_dir" != '/' ]]; do @@ -18,5 +16,3 @@ while [[ "$root_dir" != '/' ]]; do done return 1 - -# } diff --git a/modules/ruby/functions/ruby-info b/modules/ruby/functions/ruby-info index d53435b4..ebf0f7fe 100644 --- a/modules/ruby/functions/ruby-info +++ b/modules/ruby/functions/ruby-info @@ -6,8 +6,6 @@ # Sorin Ionescu # -# function ruby-info { - local version local version_format local version_formatted @@ -30,5 +28,3 @@ if [[ -n "$version" ]]; then zformat -f version_formatted "$version_format" "v:$version" ruby_info[version]="$version_formatted" fi - -# } diff --git a/modules/ruby/init.zsh b/modules/ruby/init.zsh index 3f666c3e..fd707d00 100644 --- a/modules/ruby/init.zsh +++ b/modules/ruby/init.zsh @@ -53,7 +53,6 @@ alias rb='ruby' # Bundler if (( $+commands[bundle] )); then alias rbb='bundle' - alias rbbc='bundle clean' alias rbbe='bundle exec' alias rbbi='bundle install --path vendor/bundle' alias rbbl='bundle list' diff --git a/modules/screen/README.md b/modules/screen/README.md index 0a9ff07c..ef964049 100644 --- a/modules/screen/README.md +++ b/modules/screen/README.md @@ -13,16 +13,12 @@ Starts a GNU Screen session automatically when Zsh is launched. To enable this feature when launching Zsh in a local terminal, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:screen:auto-start' local '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*: -```sh -zstyle ':prezto:module:screen:auto-start' remote 'yes' -``` + zstyle ':prezto:module:screen:auto-start' remote 'yes' Aliases ------- diff --git a/modules/ssh/README.md b/modules/ssh/README.md index a1727b9a..7324ae9a 100644 --- a/modules/ssh/README.md +++ b/modules/ssh/README.md @@ -3,6 +3,10 @@ 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. Use `ssh-add -K` to store identities in Keychain; they will be +added to `ssh-agent` automatically and persist between reboots. + Settings -------- @@ -10,9 +14,7 @@ Settings To load multiple identities, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_dsa' 'id_github' -``` + zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_dsa' 'id_github' Authors ------- diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index 08edce57..f632328d 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -6,7 +6,7 @@ # # Return if requirements are not found. -if (( ! $+commands[ssh-agent] )); then +if [[ "$OSTYPE" == darwin* ]] || (( ! $+commands[ssh-agent] )); then return 1 fi @@ -14,10 +14,10 @@ fi _ssh_dir="$HOME/.ssh" # Set the path to the environment file if not set by another module. -_ssh_agent_env="${_ssh_agent_env:-${TMPDIR:-/tmp}/ssh-agent.env.$UID}" +_ssh_agent_env="${_ssh_agent_env:-${TMPDIR:-/tmp}/ssh-agent.env}" # Set the path to the persistent authentication socket. -_ssh_agent_sock="${TMPDIR:-/tmp}/ssh-agent.sock.$UID" +_ssh_agent_sock="${TMPDIR:-/tmp}/ssh-agent.sock" # Start ssh-agent if not started. if [[ ! -S "$SSH_AUTH_SOCK" ]]; then @@ -39,20 +39,10 @@ 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' - # ssh-add has strange requirements for running SSH_ASKPASS, so we duplicate - # them here. Essentially, if the other requirements are met, we redirect stdin - # from /dev/null in order to meet the final requirement. - # - # From ssh-add(1): - # If ssh-add needs a passphrase, it will read the passphrase from the current - # terminal if it was run from a terminal. If ssh-add does not have a terminal - # associated with it but DISPLAY and SSH_ASKPASS are set, it will execute the - # program specified by SSH_ASKPASS and open an X11 window to read the - # passphrase. - if [[ -n "$DISPLAY" && -x "$SSH_ASKPASS" ]]; then - ssh-add ${_ssh_identities:+$_ssh_dir/${^_ssh_identities[@]}} < /dev/null 2> /dev/null + if (( ${#_ssh_identities} > 0 )); then + ssh-add "$_ssh_dir/${^_ssh_identities[@]}" 2> /dev/null else - ssh-add ${_ssh_identities:+$_ssh_dir/${^_ssh_identities[@]}} 2> /dev/null + ssh-add 2> /dev/null fi fi diff --git a/modules/syntax-highlighting/README.md b/modules/syntax-highlighting/README.md index 5dad5bba..87f85bea 100644 --- a/modules/syntax-highlighting/README.md +++ b/modules/syntax-highlighting/README.md @@ -22,9 +22,7 @@ Settings To enable highlighting for this module only, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:syntax-highlighting' color 'yes' -``` + zstyle ':prezto:module:syntax-highlighting' color 'yes' ### Highlighters @@ -33,15 +31,12 @@ only enables the *main* highlighter by default. To enable all highlighters, add the following to *zpreztorc*: -```sh -zstyle ':prezto:module:syntax-highlighting' highlighters \ - 'main' \ - 'brackets' \ - 'pattern' \ - 'line' \ - 'cursor' \ - 'root' -``` + zstyle ':prezto:module:syntax-highlighting' highlighters \ + 'main' \ + 'brackets' \ + 'pattern' \ + 'cursor' \ + 'root' ### Highlighting Styles @@ -50,12 +45,10 @@ 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*: -```sh -zstyle ':prezto:module:syntax-highlighting' styles \ - 'builtin' 'bg=blue' \ - 'command' 'bg=blue' \ - 'function' 'bg=blue' -``` + zstyle ':prezto:module:syntax-highlighting' styles \ + 'builtin' 'bg=blue' \ + 'command' 'bg=blue' \ + 'function' 'bg=blue' Authors ------- diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index 434af7b1..7044c198 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit 434af7b11dd33641231f1b48b8432e68eb472e46 +Subproject commit 7044c1986e2f6b15eec27a03651207fccb0a2fbe diff --git a/modules/syntax-highlighting/init.zsh b/modules/syntax-highlighting/init.zsh index 52cc0c36..25cd96b6 100644 --- a/modules/syntax-highlighting/init.zsh +++ b/modules/syntax-highlighting/init.zsh @@ -26,11 +26,3 @@ 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,} - -# Set pattern highlighting styles. -typeset -A syntax_pattern_styles -zstyle -a ':prezto:module:syntax-highlighting' pattern 'syntax_pattern_styles' -for syntax_pattern_style in "${(k)syntax_pattern_styles[@]}"; do - ZSH_HIGHLIGHT_PATTERNS[$syntax_pattern_style]="$syntax_pattern_styles[$syntax_pattern_style]" -done -unset syntax_pattern_style{s,} diff --git a/modules/terminal/README.md b/modules/terminal/README.md index 41a08855..58f81be1 100644 --- a/modules/terminal/README.md +++ b/modules/terminal/README.md @@ -11,27 +11,16 @@ Settings To auto set the terminal window and tab titles with the current command or directory, add the following to *zpreztorc*: -```sh -zstyle ':prezto:module:terminal' auto-title 'yes' -``` + zstyle ':prezto:module:terminal' auto-title 'yes' -Auto titling is disabled inside terminal multiplexers (except inside dvtm) -since it interferes with window names defined in configuration files and -profile managers. This can be overridden by setting it to `always`. - -```sh -zstyle ':prezto:module:terminal' auto-title 'always' -``` - -### Title formats +Auto titling is disabled inside terminal multiplexers, except inside dvtm, since +it interferes with window names defined in configuration files and profile +managers. To format terminal window and tab titles, add the following to *zpreztorc*: -```sh -zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s' -zstyle ':prezto:module:terminal:tab-title' format '%m: %s' -zstyle ':prezto:module:terminal:multiplexer-title' format '%s' -``` + zstyle ':prezto:module:terminal:window-title' format '%n@%m: %s' + zstyle ':prezto:module:terminal:tab-title' format '%m: %s' `%s` will be replaced with the current working directory path or the currently executing program name. @@ -42,8 +31,7 @@ Functions --------- - `set-tab-title` sets the terminal tab title. -- `set-window-title` sets the terminal window title. -- `set-multiplexer-title` sets the terminal multiplexer title. +- `set-window-title` sets the terminal or terminal multiplexer window title. Authors ------- @@ -51,7 +39,6 @@ Authors *The authors of this module should be contacted via the [issue tracker][2].* - [Sorin Ionescu](https://github.com/sorin-ionescu) - - [Olaf Conradi](https://github.com/oohlaf) [1]: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences [2]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/terminal/init.zsh b/modules/terminal/init.zsh index 2a5b9bed..b0be5023 100644 --- a/modules/terminal/init.zsh +++ b/modules/terminal/init.zsh @@ -3,7 +3,6 @@ # # Authors: # Sorin Ionescu -# Olaf Conradi # # Return if requirements are not found. @@ -11,12 +10,19 @@ if [[ "$TERM" == (dumb|linux|*bsd*|eterm*) ]]; then return 1 fi -# Sets the terminal window title. +# Sets the terminal or terminal multiplexer window title. function set-window-title { local title_format{,ted} zstyle -s ':prezto:module:terminal:window-title' format 'title_format' || title_format="%s" zformat -f title_formatted "$title_format" "s:$argv" - printf '\e]2;%s\a' "${(V%)title_formatted}" + + if [[ "$TERM" == screen* ]]; then + title_format="\ek%s\e\\" + else + title_format="\e]2;%s\a" + fi + + printf "$title_format" "${(V%)title_formatted}" } # Sets the terminal tab title. @@ -24,15 +30,8 @@ function set-tab-title { local title_format{,ted} zstyle -s ':prezto:module:terminal:tab-title' format 'title_format' || title_format="%s" zformat -f title_formatted "$title_format" "s:$argv" - printf '\e]1;%s\a' "${(V%)title_formatted}" -} -# Sets the terminal multiplexer tab title. -function set-multiplexer-title { - local title_format{,ted} - zstyle -s ':prezto:module:terminal:multiplexer-title' format 'title_format' || title_format="%s" - zformat -f title_formatted "$title_format" "s:$argv" - printf '\ek%s\e\\' "${(V%)title_formatted}" + printf "\e]1;%s\a" ${(V%)title_formatted} } # Sets the tab and window titles with a given command. @@ -49,7 +48,7 @@ function _terminal-set-titles-with-command { local -A jobtexts_from_parent_shell jobtexts_from_parent_shell=(${(kv)jobtexts}) - jobs "$job_name" 2> /dev/null > >( + jobs "$job_name" 2>/dev/null > >( read index discarded # The index is already surrounded by brackets: [1]. _terminal-set-titles-with-command "${(e):-\$jobtexts_from_parent_shell$index}" @@ -60,11 +59,8 @@ function _terminal-set-titles-with-command { local truncated_cmd="${cmd/(#m)?(#c15,)/${MATCH[1,12]}...}" unset MATCH - if [[ "$TERM" == screen* ]]; then - set-multiplexer-title "$truncated_cmd" - fi - set-tab-title "$truncated_cmd" set-window-title "$cmd" + set-tab-title "$truncated_cmd" fi } @@ -78,11 +74,8 @@ function _terminal-set-titles-with-path { local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}" unset MATCH - if [[ "$TERM" == screen* ]]; then - set-multiplexer-title "$truncated_path" - fi - set-tab-title "$truncated_path" set-window-title "$abbreviated_path" + set-tab-title "$truncated_path" } # Do not override precmd/preexec; append to the hook array. @@ -117,13 +110,12 @@ then fi # Set up non-Apple terminals. -if zstyle -t ':prezto:module:terminal' auto-title 'always' \ - || (zstyle -t ':prezto:module:terminal' auto-title \ - && ( ! [[ -n "$STY" || -n "$TMUX" ]] )) +if zstyle -t ':prezto:module:terminal' auto-title \ + && ( ! [[ -n "$STY" || -n "$TMUX" ]] ) then - # Sets titles before the prompt is displayed. + # Sets the tab and window titles before the prompt is displayed. add-zsh-hook precmd _terminal-set-titles-with-path - # Sets titles before command execution. + # Sets the tab and window titles before command execution. add-zsh-hook preexec _terminal-set-titles-with-command fi diff --git a/modules/tmux/README.md b/modules/tmux/README.md index 3d742ba6..11c8a08a 100644 --- a/modules/tmux/README.md +++ b/modules/tmux/README.md @@ -13,43 +13,29 @@ Starts a tmux session automatically when Zsh is launched. To enable this feature when launching Zsh in a local terminal, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:tmux:auto-start' local 'yes' -``` + zstyle ':prezto:module:tmux:auto-start' local 'yes' To enable this feature when launching Zsh in a SSH connection, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:tmux:auto-start' remote 'yes' -``` + zstyle ':prezto:module:tmux:auto-start' remote 'yes' In both cases, it will create a background session named _prezto_ if the tmux server is not started. -You can change the default session name with: - -```sh -zstyle ':prezto:module:tmux:session' name '' -``` - With `auto-start` enabled, you may want to control how multiple sessions are managed. The `destroy-unattached` option of tmux controls if the unattached sessions must be kept alive, making sessions available for later use, configured in *tmux.conf*: -```conf -set-option -g destroy-unattached [on | off] -``` + set-option -g destroy-unattached [on | off] #### iTerm2 Integration [iTerm2][6] offers significant integration with tmux. This can be enabled by adding the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:tmux:iterm' integrate 'yes' -``` + zstyle ':prezto:module:tmux:iterm' integrate 'yes' Read [iTerm2 and tmux Integration][7] for more information. @@ -67,9 +53,7 @@ connected** to be displayed, which can be fixed by installing [reattach-to-user-namespace][3], available in [Homebrew][4], and adding the following to *tmux.conf*: -```conf -set-option -g default-command "reattach-to-user-namespace -l $SHELL -l" -``` + set-option -g default-command "reattach-to-user-namespace -l $SHELL -l" Furthermore, tmux is known to cause **kernel panics** on Mac OS X. A discussion about this and Prezto has already been [opened][2]. diff --git a/modules/tmux/init.zsh b/modules/tmux/init.zsh index a361a6a6..070abcaf 100644 --- a/modules/tmux/init.zsh +++ b/modules/tmux/init.zsh @@ -23,7 +23,7 @@ if ([[ "$TERM_PROGRAM" = 'iTerm.app' ]] && \ _tmux_iterm_integration='-CC' fi -if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" && -z "$INSIDE_EMACS" ]] && ( \ +if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" ]] && ( \ ( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' remote ) || ( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' local ) \ ); then @@ -31,14 +31,14 @@ if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" && -z "$INSIDE_EMACS" ]] && ( \ # Create a 'prezto' session if no session has been defined in tmux.conf. if ! tmux has-session 2> /dev/null; then - zstyle -s ':prezto:module:tmux:session' name tmux_session || tmux_session='prezto' + tmux_session='prezto' tmux \ new-session -d -s "$tmux_session" \; \ set-option -t "$tmux_session" destroy-unattached off &> /dev/null fi - # Attach to the 'prezto' session or to the last session used. (detach first) - exec tmux $_tmux_iterm_integration attach-session -d + # Attach to the 'prezto' session or to the last session used. + exec tmux $_tmux_iterm_integration attach-session fi # diff --git a/modules/utility/README.md b/modules/utility/README.md index a2b93be3..5e7919ea 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -14,27 +14,19 @@ commands. To disable `ls` color, add the following line to *zpreztorc*; when coloring is disabled, type indicators (\*, /, =>, @, =, |, %) will be appended to entries. -```sh -zstyle ':prezto:module:utility:ls' color 'no' -``` + zstyle ':prezto:module:utility:ls' color 'no' To disable `diff` highlighting, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:utility:diff' color 'no' -``` + zstyle ':prezto:module:utility:diff' color 'no' To disable `wdiff` highlighting, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:utility:wdiff' color 'no' -``` + zstyle ':prezto:module:utility:wdiff' color 'no' To disable `make` highlighting, add the following line to *zpreztorc*: -```sh -zstyle ':prezto:module:utility:make' color 'no' -``` + zstyle ':prezto:module:utility:make' color 'no' Aliases ------- @@ -65,22 +57,24 @@ Aliases - `history` - `locate` - `rake` - - `rsync` (selectively enabled for local files) - - `scp` (selectively enabled for local files) + - `rsync` + - `scp` - `sftp` ### General - `_` executes a command as another user (`sudo`). - `b` opens the default web browser. - - `diffu` shorthand for `diff --unified` + - `cp` copies files and directories interactively. - `e` opens the default editor. + - `ln` links files and directories interactively. - `mkdir` creates directories, including intermediary directories. + - `mv` moves files and directories interactively. - `p` opens the default pager. - `po` removes a directory from the stack and changes to it (`popd`). - `pu` changes the directory and pushes the old directory onto the stack (`pushd`). - - `sa` search aliases for a word. + - `rm` removes files and directories interactively. - `type` displays all the attribute values of a shell parameter. ### Files and Directories @@ -98,7 +92,7 @@ Aliases - `lu` lists sorted by date, most recent last, shows access time. - `sl` lists directory contents (`ls`). -### macOS Everywhere +### Mac OS X Everywhere - `o` opens files and directories (`open` or `xdg-open`). - `get` downloads files (`curl` or `wget`). @@ -109,26 +103,13 @@ Aliases ### Resource Usage - - `df` displays free disk space using human readable units (aliases to `pydf`, if installed). + - `df` displays free disk space using human readable units. - `du` displays disk usage using human readable units. - - `top` displays information about processes. - - `topc` displays information about processes sorted by CPU usage. - - `topm` displays information about processes sorted by RAM usage. - -### Safe ops - -By default, `cp`,`ln`, `mv` and `rm` are aliased to their interactive variants. -If this is not desired, it can be disabled by adding the following line to -*zpreztorc*: - - zstyle ':prezto:module:utility' safe-ops 'no'. - -In addition, the following aliases have been added: - - - `cpi` copies files and directories interactively. - - `lni` links files and directories interactively. - - `mvi` moves files and directories interactively. - - `rmi` removes files and directories interactively. + - `top` displays information about processes (aliased to `htop`, if installed). + - `topc` displays information about processes sorted by CPU usage (`htop` not + installed). + - `topm` displays information about processes sorted by RAM usage (`htop` not + installed). ### Miscellaneous @@ -149,7 +130,6 @@ Functions - `mkdcd` makes a directory and changes to it. - `popdls` pops an entry off the directory stack and lists its contents. - `pushdls` pushes an entry onto the directory stack and lists its contents. - - `noremoteglob` enable local path globbing but disable remote path globbing. ### Developer diff --git a/modules/utility/functions/_noremoteglob b/modules/utility/functions/_noremoteglob deleted file mode 100644 index de5290e4..00000000 --- a/modules/utility/functions/_noremoteglob +++ /dev/null @@ -1,11 +0,0 @@ -#compdef noremoteglob -#autoload - -# -# Completes noremoteglob. -# -# Authors: -# Indrajit Raychaudhuri -# - -_precommand diff --git a/modules/utility/functions/diff b/modules/utility/functions/diff index 51806e81..8347899e 100644 --- a/modules/utility/functions/diff +++ b/modules/utility/functions/diff @@ -8,12 +8,14 @@ function diff { if zstyle -t ':prezto:module:utility:diff' color; then if (( $+commands[colordiff] )); then - command colordiff "$@" + command diff --unified "$@" | colordiff --difftype diffu + elif (( $+commands[git] )); then + git --no-pager diff --color=auto --no-ext-diff --no-index "$@" else - command diff "$@" + command diff --unified "$@" fi else - command diff "$@" + command diff --unified "$@" fi } diff --git a/modules/utility/functions/prep b/modules/utility/functions/prep index d6448aeb..23028ec4 100644 --- a/modules/utility/functions/prep +++ b/modules/utility/functions/prep @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function prep { - local usage pattern modifiers invert usage="$( @@ -52,5 +50,3 @@ pattern="$1" shift perl -n -l -e "print if ${invert:+not} m/${pattern//\//\\/}/${modifiers}" "$@" - -# } diff --git a/modules/utility/functions/psub b/modules/utility/functions/psub index af191fde..ffc01088 100644 --- a/modules/utility/functions/psub +++ b/modules/utility/functions/psub @@ -5,8 +5,6 @@ # Sorin Ionescu # -# function psub { - local usage pattern replacement modifiers usage="$( @@ -53,5 +51,3 @@ replacement="$2" repeat 2 shift perl -i'.orig' -n -l -e "s/${pattern//\//\\/}/${replacement//\//\\/}/${modifiers}; print" "$@" - -# } diff --git a/modules/utility/functions/zsh-help b/modules/utility/functions/zsh-help deleted file mode 100644 index f6605ea0..00000000 --- a/modules/utility/functions/zsh-help +++ /dev/null @@ -1,102 +0,0 @@ -# -# Provides a much easier way to search and access ZSH's manual. First checks for -# terms at the start of the manual, then checks if it's at start of a line allowing -# whitespace. -# -# Authors: -# Samantha McVey -# - -# function zsh-help { - -local usage="$( -cat <&2; fi - if man --pager='' ${i} | grep -E ${case} "${pattern}" > /dev/null; then - printf "%s" "${i}"; return 0; - fi - done - return 1 - } - # By default search only things at start of line - local first_prefix='^' - local prefix='^\s*' - if [[ ${1} == '--zsh-help-debug' ]]; then - shift; debug=1 - fi - if [[ ${1} == "--all" ]]; then - shift; first_prefix='' # We're searching everything, so remove the prefix - fi - if [[ $# < 1 || $1 == "--help" ]]; then - printf "%s\n" "${usage}" - unfunction _zsh-help-join; unfunction _zsh-help-try-query; # unfunction so it's not in the global scope - return 1 - fi - if [[ ${1} == "test" && $# == 1 ]]; then - case='' - pattern='^CONDITIONAL EXPRESSIONS$' - elif [[ ($1 == "-eq" || $1 == "-ne" || $1 == "-lt" || $1 == "-gt" || $1 == "-le" || $1 == "-ge") && $# == 1 ]]; then - case='' - pattern="${prefix}exp1\s+${1}\s+exp2" - elif [[ $1 == 'zstyle' ]]; then - pattern=$(_zsh-help-join '\s+' "$@") - section=ZSHMODULES - fi - # If it wasn't one of the special-cased things, check ZSHBUILTINS first. If - # not found there, we will search ZSHALL - if [[ ${pattern} == "" ]]; then - pattern="$(_zsh-help-join '\s+' "$@")" - # search for sections at the start of the man page first - section=$(_zsh-help-try-query "${case}" "${first_prefix}${pattern}") - # If it exists there, keep ZSHBUILTINS as the section - if (( $? == 0 )); then - pattern="${first_prefix}${pattern}" - elif [[ "${prefix}" ]]; then - # if not found, search for the term preceeded by whitetext - section=$(_zsh-help-try-query "${case}" "${prefix}${pattern}") - if (( $? == 0 )); then - pattern="${prefix}${pattern}" - else - pattern="" - fi - fi - if [[ ! ${pattern} ]]; then # Otherwise we use zshall - printf "Can't find term\n" 2>&1 - unfunction _zsh-help-join; unfunction _zsh-help-try-query; # unfunction so it's not in the global scope - return 1; - fi - fi - local command="man --pager=\"less ${case} -p '${pattern}'\" \"${section}\"" - if [[ ${debug} ]]; then - printf "\nFinal search term is:\n"; printf "%s\n" "${command}"; - else - eval $command - fi - local rtrn=$? - unfunction _zsh-help-join; unfunction _zsh-help-try-query; # unfunction so it's not in the global scope - return $? -#} diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 75e72b26..fd7aaf6e 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -41,35 +41,24 @@ alias ftp='noglob ftp' alias history='noglob history' alias locate='noglob locate' alias rake='noglob rake' -alias rsync='noglob noremoteglob rsync' -alias scp='noglob noremoteglob scp' +alias rsync='noglob rsync' +alias scp='noglob scp' alias sftp='noglob sftp' # Define general aliases. alias _='sudo' alias b='${(z)BROWSER}' - -alias diffu="diff --unified" +alias cp="${aliases[cp]:-cp} -i" alias e='${(z)VISUAL:-${(z)EDITOR}}' +alias ln="${aliases[ln]:-ln} -i" alias mkdir="${aliases[mkdir]:-mkdir} -p" +alias mv="${aliases[mv]:-mv} -i" alias p='${(z)PAGER}' alias po='popd' alias pu='pushd' -alias sa='alias | grep -i' +alias rm="${aliases[rm]:-rm} -i" alias type='type -a' -# Safe ops. Ask the user before doing anything destructive. -alias rmi="${aliases[rm]:-rm} -i" -alias mvi="${aliases[mv]:-mv} -i" -alias cpi="${aliases[cp]:-cp} -i" -alias lni="${aliases[ln]:-ln} -i" -if zstyle -T ':prezto:module:utility' safe-ops; then - alias rm='rmi' - alias mv='mvi' - alias cp='cpi' - alias ln='lni' -fi - # ls if is-callable 'dircolors'; then # GNU Core Utilities @@ -151,30 +140,25 @@ elif (( $+commands[wget] )); then fi # Resource Usage -if (( $+commands[pydf] )); then - alias df=pydf -else - alias df='df -kh' -fi - +alias df='df -kh' alias du='du -kh' -if [[ "$OSTYPE" == (darwin*|*bsd*) ]]; then - alias topc='top -o cpu' - alias topm='top -o vsize' +if (( $+commands[htop] )); then + alias top=htop else - alias topc='top -o %CPU' - alias topm='top -o %MEM' + if [[ "$OSTYPE" == (darwin*|*bsd*) ]]; then + alias topc='top -o cpu' + alias topm='top -o vsize' + else + alias topc='top -o %CPU' + alias topm='top -o %MEM' + fi fi # Miscellaneous # Serves a directory via HTTP. -if (( $+commands[python3] )); then - alias http-serve='python3 -m http.server' -else - alias http-serve='python -m SimpleHTTPServer' -fi +alias http-serve='python -m SimpleHTTPServer' # # Functions @@ -214,23 +198,3 @@ function find-exec { function psu { ps -U "${1:-$LOGNAME}" -o 'pid,%cpu,%mem,command' "${(@)argv[2,-1]}" } - -# Enables globbing selectively on path arguments. -# Globbing is enabled on local paths (starting in '/' and './') and disabled -# on remote paths (containing ':' but not starting in '/' and './'). This is -# useful for programs that have their own globbing for remote paths. -# Currently, this is used by default for 'rsync' and 'scp'. -# Example: -# - Local: '*.txt', './foo:2017*.txt', '/var/*:log.txt' -# - Remote: user@localhost:foo/ -function noremoteglob { - local -a argo - local cmd="$1" - for arg in ${argv:2}; do case $arg in - ( ./* ) argo+=( ${~arg} ) ;; # local relative, glob - ( /* ) argo+=( ${~arg} ) ;; # local absolute, glob - ( *:* ) argo+=( ${arg} ) ;; # remote, noglob - ( * ) argo+=( ${~arg} ) ;; # default, glob - esac; done - command $cmd "${(@)argo}" -} diff --git a/modules/wakeonlan/README.md b/modules/wakeonlan/README.md index dacfa52d..9bde199e 100644 --- a/modules/wakeonlan/README.md +++ b/modules/wakeonlan/README.md @@ -14,15 +14,11 @@ Each file should contain a line with the MAC address of the target device and the network broadcast address. For instance, there might be a file *~/.wakeonlan/leto* with the following contents: -```conf -00:11:22:33:44:55:66 192.168.0.255 -``` + 00:11:22:33:44:55:66 192.168.0.255 To wake that device, use the following command: -```sh -$ wake leto -``` + wake leto For more information on the configuration file format, read the [wakeonlan man page][2]. diff --git a/modules/wakeonlan/functions/wake b/modules/wakeonlan/functions/wake index 6f7d6c5a..5259c95b 100644 --- a/modules/wakeonlan/functions/wake +++ b/modules/wakeonlan/functions/wake @@ -6,8 +6,6 @@ # Sorin Ionescu # -# function wake { - local config_file="$HOME/.wakeonlan/$1" if [[ ! -s "$config_file" ]]; then print "$0: invalid device file: $1" >&2 @@ -20,5 +18,3 @@ if (( ! $+commands[wakeonlan] )); then fi wakeonlan -f "$config_file" - -# } diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index cd92317f..e93ac6bf 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -41,14 +41,6 @@ zstyle ':prezto:load' pmodule \ # Set the query found color. # zstyle ':prezto:module:autosuggestions:color' found '' -# -# Completions -# - -# Set the entries to ignore in static */etc/hosts* for host completion. -# zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \ -# '0.0.0.0' '127.0.0.1' - # # Editor # @@ -59,9 +51,6 @@ zstyle ':prezto:module:editor' key-bindings 'emacs' # Auto convert .... to ../.. # zstyle ':prezto:module:editor' dot-expansion 'yes' -# Allow the zsh prompt context to be shown. -#zstyle ':prezto:module:editor' ps-context 'yes' - # # Git # @@ -89,13 +78,6 @@ zstyle ':prezto:module:editor' key-bindings 'emacs' # Set the search globbing flags. # zstyle ':prezto:module:history-substring-search' globbing-flags '' -# -# OS X -# - -# Set the keyword used by `mand` to open man pages in Dash.app -# zstyle ':prezto:module:osx:man' dash-keyword 'manpages' - # # Pacman # @@ -112,15 +94,6 @@ zstyle ':prezto:module:editor' key-bindings 'emacs' # Auto set to 'off' on dumb terminals. zstyle ':prezto:module:prompt' theme 'sorin' -# Set the working directory prompt display length. -# By default, it is set to 'short'. Set it to 'long' (without '~' expansion) -# for longer or 'full' (with '~' expansion) for even longer prompt display. -# zstyle ':prezto:module:prompt' pwd-length 'short' - -# Set the prompt to display the return code along with an indicator for non-zero -# return codes. This is not supported by all prompts. -# zstyle ':prezto:module:prompt' show-return-val 'yes' - # # Ruby # @@ -128,16 +101,6 @@ zstyle ':prezto:module:prompt' theme 'sorin' # Auto switch the Ruby version on directory change. # zstyle ':prezto:module:ruby:chruby' auto-switch 'yes' -# -# Python -# - -# Auto switch the Python virtualenv on directory change. -# zstyle ':prezto:module:python:virtualenv' auto-switch 'yes' - -# Automatically initialize virtualenvwrapper if pre-requisites are met. -# zstyle ':prezto:module:python:virtualenv' initialize 'yes' - # # Screen # @@ -174,10 +137,6 @@ zstyle ':prezto:module:prompt' theme 'sorin' # 'builtin' 'bg=blue' \ # 'command' 'bg=blue' \ # 'function' 'bg=blue' -# -# Set syntax pattern styles. -# zstyle ':prezto:module:syntax-highlighting' pattern \ -# 'rm*-rf*' 'fg=white,bold,bg=red' # # Terminal @@ -192,9 +151,6 @@ zstyle ':prezto:module:prompt' theme 'sorin' # Set the tab title format. # zstyle ':prezto:module:terminal:tab-title' format '%m: %s' -# Set the terminal multiplexer title format. -# zstyle ':prezto:module:terminal:multiplexer-title' format '%s' - # # Tmux # @@ -207,15 +163,3 @@ zstyle ':prezto:module:prompt' theme 'sorin' # Integrate with iTerm2. # zstyle ':prezto:module:tmux:iterm' integrate 'yes' - -# Set the default session name: -# zstyle ':prezto:module:tmux:session' name 'YOUR DEFAULT SESSION NAME' - -# -# Utility -# - -# Enabled safe options. This aliases cp, ln, mv and rm so that they prompt -# before deleting or overwriting files. Set to 'no' to disable this safer -# behavior. -# zstyle ':prezto:module:utility' safe-ops 'yes' diff --git a/runcoms/zprofile b/runcoms/zprofile index acd77425..d87cb3b0 100644 --- a/runcoms/zprofile +++ b/runcoms/zprofile @@ -36,7 +36,7 @@ fi # Ensure path arrays do not contain duplicates. typeset -gU cdpath fpath mailpath path -# Set the list of directories that cd searches. +# Set the the list of directories that cd searches. # cdpath=( # $cdpath # ) @@ -61,3 +61,14 @@ export LESS='-F -g -i -M -R -S -w -X -z-4' if (( $#commands[(i)lesspipe(|.sh)] )); then export LESSOPEN="| /usr/bin/env $commands[(i)lesspipe(|.sh)] %s 2>&-" fi + +# +# Temporary Files +# + +if [[ ! -d "$TMPDIR" ]]; then + export TMPDIR="/tmp/$LOGNAME" + mkdir -p -m 700 "$TMPDIR" +fi + +TMPPREFIX="${TMPDIR%/}/zsh" diff --git a/runcoms/zshenv b/runcoms/zshenv index 2dbf12a8..2d972031 100644 --- a/runcoms/zshenv +++ b/runcoms/zshenv @@ -6,6 +6,6 @@ # # Ensure that a non-login, non-interactive shell has a defined environment. -if [[ ( "$SHLVL" -eq 1 && ! -o LOGIN ) && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then +if [[ "$SHLVL" -eq 1 && ! -o LOGIN && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then source "${ZDOTDIR:-$HOME}/.zprofile" fi