From 7242b4ed49f83d0ad905a1a72d405d895ad56215 Mon Sep 17 00:00:00 2001 From: Khai Do Date: Mon, 17 Apr 2017 22:04:28 -0700 Subject: [PATCH 001/322] archive: add support for *.jar files (#1302) --- modules/archive/README.md | 2 +- modules/archive/functions/_lsarchive | 2 +- modules/archive/functions/_unarchive | 2 +- modules/archive/functions/lsarchive | 2 +- modules/archive/functions/unarchive | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/archive/README.md b/modules/archive/README.md index a1d49011a3..fca34cf17d 100644 --- a/modules/archive/README.md +++ b/modules/archive/README.md @@ -25,7 +25,7 @@ installed: - *.xz* requires `unxz`. - *.lzma* requires `unlzma`. - *.Z* requires `uncompress`. - - *.zip* requires `unzip`. + - *.zip*, *.jar* requires `unzip`. - *.rar* requires `unrar` or `rar`. - *.7z* requires `7za`. - *.deb* requires `ar`, `tar`. diff --git a/modules/archive/functions/_lsarchive b/modules/archive/functions/_lsarchive index 00f83e0584..f2cee88125 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|rar|7z)(-.)'" && return 0 + "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z)(-.)'" && return 0 diff --git a/modules/archive/functions/_unarchive b/modules/archive/functions/_unarchive index aceb27b639..90e32f1a38 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|rar|7z|deb)(-.)'" && return 0 + "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|jar|rar|7z|deb)(-.)'" && return 0 diff --git a/modules/archive/functions/lsarchive b/modules/archive/functions/lsarchive index 7ac6145056..6b1b321a5b 100644 --- a/modules/archive/functions/lsarchive +++ b/modules/archive/functions/lsarchive @@ -40,7 +40,7 @@ while (( $# > 0 )); do && tar --lzma -t${verbose:+v}f "$1" \ || lzcat "$1" | tar x${verbose:+v}f - ;; (*.tar) tar t${verbose:+v}f "$1" ;; - (*.zip) unzip -l${verbose:+v} "$1" ;; + (*.zip|*.jar) unzip -l${verbose:+v} "$1" ;; (*.rar) unrar &> /dev/null \ && unrar ${${verbose:+v}:-l} "$1" \ || rar ${${verbose:+v}:-l} "$1" ;; diff --git a/modules/archive/functions/unarchive b/modules/archive/functions/unarchive index 72dfbd1f75..fac77ff6e8 100644 --- a/modules/archive/functions/unarchive +++ b/modules/archive/functions/unarchive @@ -54,7 +54,7 @@ while (( $# > 0 )); do (*.xz) unxz "$1" ;; (*.lzma) unlzma "$1" ;; (*.Z) uncompress "$1" ;; - (*.zip) unzip "$1" -d $extract_dir ;; + (*.zip|*.jar) unzip "$1" -d $extract_dir ;; (*.rar) unrar &> /dev/null \ && unrar x -ad "$1" \ || rar x -ad "$1" ;; From fb37539f439fc5e382d223c3f9b2abb2b4267cb3 Mon Sep 17 00:00:00 2001 From: Matt Hamilton Date: Mon, 5 Oct 2015 18:47:41 -0400 Subject: [PATCH 002/322] archive: add archive function --- modules/archive/README.md | 12 ++++-- modules/archive/functions/archive | 67 +++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 modules/archive/functions/archive diff --git a/modules/archive/README.md b/modules/archive/README.md index fca34cf17d..28a2c3b18e 100644 --- a/modules/archive/README.md +++ b/modules/archive/README.md @@ -1,11 +1,12 @@ Archive ======= -Provides functions to list and extract archives. +Provides functions to create, list, and extract archives. Functions --------- + - `archive` creates an archive based on the provided archive name. - `lsarchive` lists the contents of one or more archives. - `unarchive` extracts the contents of one or more archives. @@ -15,8 +16,8 @@ Supported Formats The following archive formats are supported when the required utilities are installed: - - *.tar.gz*, *.tgz* require `tar`. - - *.tar.bz2*, *.tbz* require `tar`. + - *.tar.gz*, *.tgz* require `tar` (optionally `pigz`). + - *.tar.bz2*, *.tbz* require `tar` (optionally `pbzip2`). - *.tar.xz*, *.txz* require `tar` with *xz* support. - *.tar.zma*, *.tlz* require `tar` with *lzma* support. - *.tar* requires `tar`. @@ -30,11 +31,16 @@ installed: - *.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/archive b/modules/archive/functions/archive new file mode 100644 index 0000000000..ab0d56da88 --- /dev/null +++ b/modules/archive/functions/archive @@ -0,0 +1,67 @@ +#!/usr/bin/env zsh +# +# Creates archive file +# +# Authors: +# Matt Hamilton +# + +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 From cf7d3cffbdc201595c0c650798fab9f9e44b4d51 Mon Sep 17 00:00:00 2001 From: delphinus Date: Tue, 18 Apr 2017 17:57:35 +0900 Subject: [PATCH 003/322] Add perl-info function & plenv subcommand aliases (#1303) * Add perl-info function * Add alias for plenv subcommands * Load perlbrew if needed * Load plenv if needed * Use PERLBREW_ROOT as priority to detect Perlbrew --- modules/perl/README.md | 49 ++++++++++++++++++++++++-- modules/perl/functions/perl-info | 30 ++++++++++++++++ modules/perl/init.zsh | 60 +++++++++++++++++++++++++++----- 3 files changed, 128 insertions(+), 11 deletions(-) create mode 100644 modules/perl/functions/perl-info diff --git a/modules/perl/README.md b/modules/perl/README.md index 90af1ebe4b..cc5a9d3242 100644 --- a/modules/perl/README.md +++ b/modules/perl/README.md @@ -30,6 +30,14 @@ 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 ------- @@ -51,13 +59,50 @@ 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 currach Perl version in a prompt, define the +following style in the `prompt_name_setup` function. + + # %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][3].* +*The authors of this module should be contacted via the [issue tracker][4].* - [Sorin Ionescu](https://github.com/sorin-ionescu) [1]: http://www.perl.org [2]: http://perlbrew.pl -[3]: https://github.com/sorin-ionescu/prezto/issues +[3]: https://github.com/tokuhirom/plenv +[4]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/perl/functions/perl-info b/modules/perl/functions/perl-info new file mode 100644 index 0000000000..2c396ea513 --- /dev/null +++ b/modules/perl/functions/perl-info @@ -0,0 +1,30 @@ +# +# Exposes information about the Perl environment via the $perl_info associative +# array. +# +# Authors: +# JINNOUCHI Yasushi +# + +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 a8d56031bd..d22a5f986a 100644 --- a/modules/perl/init.zsh +++ b/modules/perl/init.zsh @@ -10,6 +10,29 @@ 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 # @@ -41,12 +64,31 @@ alias pld='perldoc' alias ple='perl -wlne' # Perlbrew -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' +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 From 81b41d2367542abc742d113dc4e43f8245d11c41 Mon Sep 17 00:00:00 2001 From: Guillaume Subiron Date: Fri, 18 Mar 2016 08:29:57 +0100 Subject: [PATCH 004/322] Add utility alias for pydf --- modules/utility/README.md | 2 +- modules/utility/init.zsh | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/utility/README.md b/modules/utility/README.md index 2d276d6e30..c949a66d02 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -105,7 +105,7 @@ Aliases ### Resource Usage - - `df` displays free disk space using human readable units. + - `df` displays free disk space using human readable units (aliases to `pydf`, if installed). - `du` displays disk usage using human readable units. - `top` displays information about processes (aliased to `htop`, if installed). - `topc` displays information about processes sorted by CPU usage (`htop` not diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 34ff578d4f..33ec147982 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -142,7 +142,12 @@ elif (( $+commands[wget] )); then fi # Resource Usage -alias df='df -kh' +if (( $+commands[pydf] )); then + alias df=pydf +else + alias df='df -kh' +fi + alias du='du -kh' if (( $+commands[htop] )); then From f15557159a0c7b8af3cb904f42644fadff3dc6a1 Mon Sep 17 00:00:00 2001 From: Sudarshan Wadkar Date: Fri, 14 Apr 2017 19:51:02 -0400 Subject: [PATCH 005/322] New `alias gfa=git fetch --all` for git module Also includes an updated README.md ! --- modules/git/README.md | 1 + modules/git/alias.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/modules/git/README.md b/modules/git/README.md index 81693f2378..6e89d87eee 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -93,6 +93,7 @@ Aliases are enabled by default. You can disable them with: ### 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. - `gfm` fetches from and merges with another repository or local branch. - `gfr` fetches from and rebases on another repository or local branch. diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 06e47b1665..79f27b2160 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -77,6 +77,7 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then # Fetch (f) alias gf='git fetch' + alias gfa='git fetch --all' alias gfc='git clone' alias gfm='git pull' alias gfr='git pull --rebase' From 876f42658124379d3b2a8756f9169fc47839f8be Mon Sep 17 00:00:00 2001 From: Mathieu Chataigner Date: Tue, 8 Mar 2016 17:14:47 +0100 Subject: [PATCH 006/322] Update ssh module for multi session hosts create ssh_agent_env with current user id in file name to avoid collisions with other users create ssh_agent_sock with current user id in file name to avoid collisions with other users --- modules/ssh/init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index f632328d0b..8caac92c6c 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -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}" +_ssh_agent_env="${_ssh_agent_env:-${TMPDIR:-/tmp}/ssh-agent.env.$UID}" # Set the path to the persistent authentication socket. -_ssh_agent_sock="${TMPDIR:-/tmp}/ssh-agent.sock" +_ssh_agent_sock="${TMPDIR:-/tmp}/ssh-agent.sock.$UID" # Start ssh-agent if not started. if [[ ! -S "$SSH_AUTH_SOCK" ]]; then From 4f87376b507c712c0d401b43f1819604cb40833e Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 11 Feb 2017 16:39:48 -0600 Subject: [PATCH 007/322] Add support for 'pip', 'pip2', 'pip3' completion Since `pip completion --zsh` might be slow, we cache it beforehand. The implementation is along the lines of 'npm' completion in 'node' module. --- modules/python/init.zsh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 458253b2e7..8b63251a96 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -46,6 +46,20 @@ if (( $? && $+commands[virtualenvwrapper.sh] )); then source "$commands[virtualenvwrapper.sh]" fi +# Load PIP completion. +if (( $+commands[pip] )); then + cache_file="${0:h}/cache.zsh" + + if [[ "$commands[pip]" -nt "$cache_file" || ! -s "$cache_file" ]]; then + # pip is slow; cache its output. And also support 'pip2', 'pip3' variants + pip completion --zsh | sed -e "s|compctl -K [-_[:alnum:]]* pip|& pip2 pip3|" >! "$cache_file" 2> /dev/null + fi + + source "$cache_file" + + unset cache_file +fi + # # Aliases # From 850ad42c96d22425e96c0d5a5eb3c641b7b53510 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Wed, 26 Apr 2017 12:58:54 -0500 Subject: [PATCH 008/322] rsync: Update reference to Bombich's rsync page Seems like Bombich's rsync page moved with the previous link doing 404. Adjusted to fix this. --- modules/rsync/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rsync/README.md b/modules/rsync/README.md index 951e3c6ad5..a8c32e4d41 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]: http://help.bombich.com/kb/overview/credits#opensource +[2]: https://bombich.com/kb/ccc4/credits#rsync [3]: https://github.com/sorin-ionescu/prezto/issues From 7c509a264fcca690d3da8e9589dc346db7f76ec0 Mon Sep 17 00:00:00 2001 From: Kyle Rich Date: Wed, 26 Apr 2017 10:07:34 -0600 Subject: [PATCH 009/322] Add zstyle option to show pwd in long format --- modules/prompt/functions/promptpwd | 2 ++ runcoms/zpreztorc | 3 +++ 2 files changed, 5 insertions(+) diff --git a/modules/prompt/functions/promptpwd b/modules/prompt/functions/promptpwd index b8fcc0cb41..af30e7cb05 100644 --- a/modules/prompt/functions/promptpwd +++ b/modules/prompt/functions/promptpwd @@ -9,6 +9,8 @@ local ret_directory if [[ "$current_pwd" == (#m)[/~] ]]; then ret_directory="$MATCH" unset MATCH +elif zstyle -t ':prezto:module:prompt' long-pwd; then + ret_directory=${current_pwd} else ret_directory="${${${${(@j:/:M)${(@s:/:)current_pwd}##.#?}:h}%/}//\%/%%}/${${current_pwd:t}//\%/%%}" fi diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 8b2af26759..3741a1cea9 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -97,6 +97,9 @@ zstyle ':prezto:module:editor' key-bindings 'emacs' # Auto set to 'off' on dumb terminals. zstyle ':prezto:module:prompt' theme 'sorin' +# Display pwd in long format for themes that use promptpwd function +# zstyle ':prezto:module:prompt' long-pwd 'yes' + # # Ruby # From 723b3812e170975901fd371d549bc4ae78a88298 Mon Sep 17 00:00:00 2001 From: Kyle Rich Date: Thu, 27 Apr 2017 11:25:42 -0600 Subject: [PATCH 010/322] Convert long-pwd to pwd-length --- modules/prompt/functions/promptpwd | 4 +++- runcoms/zpreztorc | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/prompt/functions/promptpwd b/modules/prompt/functions/promptpwd index af30e7cb05..d7659f9c97 100644 --- a/modules/prompt/functions/promptpwd +++ b/modules/prompt/functions/promptpwd @@ -9,7 +9,9 @@ local ret_directory if [[ "$current_pwd" == (#m)[/~] ]]; then ret_directory="$MATCH" unset MATCH -elif zstyle -t ':prezto:module:prompt' long-pwd; then +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}//\%/%%}" diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 3741a1cea9..e88ae3c746 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -97,8 +97,8 @@ zstyle ':prezto:module:editor' key-bindings 'emacs' # Auto set to 'off' on dumb terminals. zstyle ':prezto:module:prompt' theme 'sorin' -# Display pwd in long format for themes that use promptpwd function -# zstyle ':prezto:module:prompt' long-pwd 'yes' +# Set how themes that use promptpwd function display the pwd, can be 'short', 'long', or 'full' +# zstyle ':prezto:module:prompt' pwd-length 'short' # # Ruby From 1050a0a290324f3b96256d3b1fefe4a84ab402d0 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 18 Apr 2017 03:14:22 -0700 Subject: [PATCH 011/322] Add better support for pyenv virtualenvs --- modules/python/init.zsh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 8b63251a96..e40bca6b4c 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -35,15 +35,20 @@ if (( ! $+commands[python] && ! $+commands[pyenv] )); then fi # Load virtualenvwrapper into the shell session, unless requested not to -zstyle -t ':prezto:module:python' skip-virtualenvwrapper-init -if (( $? && $+commands[virtualenvwrapper.sh] )); then +if zstyle -T ':prezto:module:python' skip-virtualenvwrapper-init; then # Set the directory where virtual environments are stored. export WORKON_HOME="${WORKON_HOME:-$HOME/.virtualenvs}" # Disable the virtualenv prompt. VIRTUAL_ENV_DISABLE_PROMPT=1 - source "$commands[virtualenvwrapper.sh]" + if (( $+commands[pyenv-virtualenvwrapper] )); then + pyenv virtualenvwrapper + elif (( $+commands[pyenv-virtualenv-init] )); then + eval "$(pyenv virtualenv-init -)" + elif (( $+commands[virtualenvwrapper.sh] )); then + source "$commands[virtualenvwrapper.sh]" + fi fi # Load PIP completion. From 3d7a8c28704fbe9ec0fbe842cb80f45003364a13 Mon Sep 17 00:00:00 2001 From: Kyle Rich Date: Mon, 1 May 2017 10:41:17 -0600 Subject: [PATCH 012/322] Add some new git aliases, modify a few more. (#1301) * Add some new git aliases, modify a few more. * Add `gbV` command to show more verbose git branch info. * Add `gcam` to make it possible to execute `gca; gcm ''` more simply. * Add `gii` command to temporarily untrack (ignore) a file. * Add `giI` command to uningore a file. * Change alias of `gbl` to `gbv`. Personally, I think aliases that include a switch in the command should include the switch in the alias if possible. This makes them easier to remember. * Change alias of `gbL` to `gba`. I think the `-a` switch is more salient to what this alias does than the `-v`. Furthermore, with this PR there are already `gbv` and `gbV` aliases, so those are out. * Change implementation of `gCl` alias to use built-in capabilities of git, rather than sed. * Rename gbx and gbX to gbd and gbD respectively * Mostly revert alias changes * Add gbr and gbR aliases to gbm and gbM commands --- modules/git/README.md | 16 ++++++++++------ modules/git/alias.zsh | 26 ++++++++++++++++++-------- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/modules/git/README.md b/modules/git/README.md index 6e89d87eee..f4297431b0 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -41,15 +41,16 @@ Aliases are enabled by default. You can disable them with: - `gb` lists, creates, renames, and deletes branches. - `gbc` creates a new branch. - - `gbl` lists branches and their commits. - - `gbL` lists local and remote branches and their commits. + - `gbl` lists branches and their commits. (also `gbv`) + - `gbL` lists all local and remote branches and their commits. + - `gbm` renames a branch. + - `gbM` renames a branch even if the new branch name already exists. - `gbs` lists branches and their commits with ancestry graphs. - `gbS` lists local and remote branches and their commits with ancestry graphs. - - `gbx` deletes a branch. - - `gbX` deletes a branch irrespective of its merged status. - - `gbm` renames a branch. - - `gbM` renames a branch even if the new branch name already exists. + - `gbV` lists branches with more verbose information about their commits. + - `gbx` deletes a branch. (also `gbd`) + - `gbX` deletes a branch irrespective of its merged status. (also `gbD`) ### Commit @@ -57,6 +58,7 @@ Aliases are enabled by default. You can disable them with: - `gc` records changes to the repository. - `gca` stages all modified and deleted files. - `gcm` records changes to the repository with the given message. + - `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 @@ -188,6 +190,8 @@ Aliases are enabled by default. You can disable them with: - `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). diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 79f27b2160..946ad32c56 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -32,20 +32,28 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then # Branch (b) alias gb='git branch' + alias gba='git branch --all --verbose' 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 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 -a' + 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 gcam='git commit --all --message' alias gco='git checkout' alias gcO='git checkout --patch' alias gcf='git commit --amend --reuse-message HEAD' @@ -58,7 +66,7 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then alias gcl='git-commit-lost' # Conflict (C) - alias gCl='git status | sed -n "s/^.*both [a-z]*ed: *//p"' + 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 --' @@ -159,6 +167,8 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then 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' From 46a1ffaf7e9a3cddc12f5b88eeee1d94e5f02a47 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 1 May 2017 09:43:12 -0700 Subject: [PATCH 013/322] Add gbr and gbR aliases to module readme --- modules/git/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/git/README.md b/modules/git/README.md index f4297431b0..f7af33aedb 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -43,8 +43,9 @@ Aliases are enabled by default. You can disable them with: - `gbc` creates a new branch. - `gbl` lists branches and their commits. (also `gbv`) - `gbL` lists all local and remote branches and their commits. - - `gbm` renames a branch. - - `gbM` renames a branch even if the new branch name already exists. + - `gbr` renames a branch. (also `gbm`) + - `gbR` renames a branch even if the new branch name already exists. (also + `gbM`) - `gbs` lists branches and their commits with ancestry graphs. - `gbS` lists local and remote branches and their commits with ancestry graphs. From 2794f95d3eb7d5b65be56710d9d9e9ac9d642ff8 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 2 May 2017 10:08:01 -0700 Subject: [PATCH 014/322] Use the lazy-loaded version of virtualenvwrapper if available This shouldn't cause problems for anyone and should improve startup times for anyone using python with virtualenvwrapper because it will wait for the first command to load rather than right away. --- modules/python/init.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index e40bca6b4c..4f67a0813e 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -46,6 +46,8 @@ if zstyle -T ':prezto:module:python' skip-virtualenvwrapper-init; then pyenv virtualenvwrapper elif (( $+commands[pyenv-virtualenv-init] )); then eval "$(pyenv virtualenv-init -)" + elif (( $+commands[virtualenvwrapper_lazy.sh] )); then + source "$commands[virtualenvwrapper_lazy.sh]" elif (( $+commands[virtualenvwrapper.sh] )); then source "$commands[virtualenvwrapper.sh]" fi From 42d9b78907d256061fe641eed83accab41d4ac0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20H-T=20Gold=C3=A1raz?= Date: Tue, 2 May 2017 20:38:19 +0200 Subject: [PATCH 015/322] broken $path and $PATH if nodenv exists (#1315) This change fixes a bug where no command can be found (e.g. `ls`) due to the $path array being set to two elements, one of them with all the previous paths separated by spaces. This makes zsh break $PATH, instead of colons there are spaces, and nothing works. The idea is to have the array be set leveraging the word splitting that we usually are told to avoid by quoting. --- modules/node/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/node/init.zsh b/modules/node/init.zsh index 46ab4411aa..a15bace43e 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -16,7 +16,7 @@ elif (( $+commands[brew] )) && [[ -d "$(brew --prefix nvm 2>/dev/null)" ]]; then # Load manually installed nodenv into the shell session. elif [[ -s "$HOME/.nodenv/bin/nodenv" ]]; then - path=("$HOME/.nodenv/bin $path") + path=("$HOME/.nodenv/bin" $path) eval "$(nodenv init - --no-rehash zsh)" # Load package manager installed nodenv into the shell session. From 871b15663cbb8d6b13efc9ba734c6ee2781c7e07 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 2 May 2017 01:36:23 -0700 Subject: [PATCH 016/322] Cache the completion for a quicker startup The original idea was by @samjonester in #1210. This version aims to avoid relying on the stat or date programs because they have different flags depending on the OS and if it uses BSD or GNU coreutils. --- modules/completion/init.zsh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index 620a9b38e0..912c586b0f 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -14,9 +14,6 @@ fi # Add zsh-completions to $fpath. fpath=("${0:h}/external/src" $fpath) -# Load and initialize the completion system ignoring insecure directories. -autoload -Uz compinit && compinit -i - # # Options # @@ -27,9 +24,21 @@ 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 +compfiles=(${ZDOTDIR:-$HOME}/.zcompdump(Nm-20)) +if [[ $#compfiles > 0 ]]; then + compinit -i -C +else + compinit -i +fi + # # Styles # From d02c2951b39ceee3e37dc163661df054fb641d8d Mon Sep 17 00:00:00 2001 From: Matt Henkel Date: Tue, 2 May 2017 17:57:00 -0700 Subject: [PATCH 017/322] Add the ability to specify tmux session name --- modules/tmux/README.md | 4 ++++ modules/tmux/init.zsh | 2 +- runcoms/zpreztorc | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/tmux/README.md b/modules/tmux/README.md index 11c8a08a0d..28695fa407 100644 --- a/modules/tmux/README.md +++ b/modules/tmux/README.md @@ -23,6 +23,10 @@ following line to *zpreztorc*: 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: + + zstyle ':prezto:module:tmux' session 'YOUR DEFAULT 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 diff --git a/modules/tmux/init.zsh b/modules/tmux/init.zsh index 070abcaf42..0c3a78e8a1 100644 --- a/modules/tmux/init.zsh +++ b/modules/tmux/init.zsh @@ -31,7 +31,7 @@ if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" ]] && ( \ # Create a 'prezto' session if no session has been defined in tmux.conf. if ! tmux has-session 2> /dev/null; then - tmux_session='prezto' + zstyle -s ':prezto:module:tmux' tmux_session 'session' || tmux_session='prezto' tmux \ new-session -d -s "$tmux_session" \; \ set-option -t "$tmux_session" destroy-unattached off &> /dev/null diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index e88ae3c746..2ed618d40e 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -176,3 +176,6 @@ 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 'YOUR DEFAULT SESSION NAME' From 6975b119b643eaf574c1c429fee15fab6947309d Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 2 May 2017 18:02:28 -0700 Subject: [PATCH 018/322] Change the zstyle config name for #607 --- modules/tmux/init.zsh | 2 +- runcoms/zpreztorc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/tmux/init.zsh b/modules/tmux/init.zsh index 0c3a78e8a1..aadf6bfcf9 100644 --- a/modules/tmux/init.zsh +++ b/modules/tmux/init.zsh @@ -31,7 +31,7 @@ if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" ]] && ( \ # 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' tmux_session 'session' || tmux_session='prezto' + zstyle -s ':prezto:module:tmux:session' name tmux_session || tmux_session='prezto' tmux \ new-session -d -s "$tmux_session" \; \ set-option -t "$tmux_session" destroy-unattached off &> /dev/null diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 2ed618d40e..2ac6c58c80 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -178,4 +178,4 @@ zstyle ':prezto:module:prompt' theme 'sorin' # zstyle ':prezto:module:tmux:iterm' integrate 'yes' # Set the default session name: -# zstyle ':prezto:module:tmux' session 'YOUR DEFAULT SESSION NAME' +# zstyle ':prezto:module:tmux:session' name 'YOUR DEFAULT SESSION NAME' From 658fffb3a67a1f951d9c413802844694359caa7e Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 5 May 2017 09:58:19 -0700 Subject: [PATCH 019/322] Allow ssh module to run on OSX --- modules/ssh/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index 8caac92c6c..3ead593f6a 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -6,7 +6,7 @@ # # Return if requirements are not found. -if [[ "$OSTYPE" == darwin* ]] || (( ! $+commands[ssh-agent] )); then +if (( ! $+commands[ssh-agent] )); then return 1 fi From 08e39a587fa130f04077201d050e72b2130d637e Mon Sep 17 00:00:00 2001 From: Matthew Crenshaw Date: Tue, 30 May 2017 20:26:18 -0400 Subject: [PATCH 020/322] Python virtualenv auto workon cwd hook (#1300) * Command to activate virtualenvs on changing directory Enables automatic activation of a virtualenv when jumping into a directory This is done by looking in the current directory for a file or directory named `.venv`. If it's not found in the current directory its parents will also be examined. `.venv` can be either: 1. A file containing the name of a virtualenv found in $WORKON_HOME 2. A directory containing bin/activate (meaning that the directory is assumed to be a virtualenv.) If $WORKON_HOME is set it is assumed that virtualenvwrapper is installed and the `workon` command will be issued. --- modules/python/init.zsh | 48 +++++++++++++++++++++++++++++++++++++++++ runcoms/zpreztorc | 7 ++++++ 2 files changed, 55 insertions(+) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 4f67a0813e..47f7b5a122 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -34,6 +34,48 @@ 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 virtualenvwrapper into the shell session, unless requested not to if zstyle -T ':prezto:module:python' skip-virtualenvwrapper-init; then # Set the directory where virtual environments are stored. @@ -65,6 +107,12 @@ if (( $+commands[pip] )); then source "$cache_file" unset cache_file + + # 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 fi # diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 2ac6c58c80..690add7af2 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -107,6 +107,13 @@ 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' + # # Screen # From 7ae7a0266c04f2645bdf9917378645fc505e7461 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 30 May 2017 17:29:32 -0700 Subject: [PATCH 021/322] Update python docs to include info on virtualenv auto-switching --- modules/python/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/python/README.md b/modules/python/README.md index 4047d0ff8e..a554bdf1eb 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -61,6 +61,15 @@ system site-packages directory. 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: + + zstyle ':prezto:module:python:virtualenv' auto-switch 'yes' + Aliases ------- From 14670f40f0191a8dc219b98eae48d9e8113f16c9 Mon Sep 17 00:00:00 2001 From: Luis Fernando Milano Oliveira Date: Thu, 8 Jun 2017 14:18:37 -0300 Subject: [PATCH 022/322] replace the deprecated abs call in the pacu alias. --- modules/pacman/init.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/pacman/init.zsh b/modules/pacman/init.zsh index 9d752a9b1d..a5cacf2c44 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. -if (( $+commands[abs] )); then - alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh && sudo abs" +# repositories using the asp tool. +if (( $+commands[asp] )); then + alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh && sudo asp update" else alias pacu="${_pacman_sudo}${_pacman_frontend} --sync --refresh" fi From 5bcc223e95abf7025f131b5aade44eb412ebd214 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Tue, 13 Jun 2017 10:51:23 +0200 Subject: [PATCH 023/322] zprofile: Use non-random static TMPDIR Closes #1319 --- runcoms/zprofile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/runcoms/zprofile b/runcoms/zprofile index 052d5f9892..e5efb20524 100644 --- a/runcoms/zprofile +++ b/runcoms/zprofile @@ -65,9 +65,14 @@ fi # # Temporary Files # +# +if [[ -z "$TMPDIR" ]]; then + export TMPDIR="/tmp/zsh-$UID" +fi if [[ ! -d "$TMPDIR" ]]; then - export TMPDIR="$(mktemp -d)" + mkdir "$TMPDIR" + chmod 700 "$TMPDIR" fi TMPPREFIX="${TMPDIR%/}/zsh" From 2f20a80f7255bffcf878de70192f6df126c6069f Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Tue, 13 Jun 2017 10:55:49 +0200 Subject: [PATCH 024/322] sorin theme: Use a proper temp file for async data --- modules/prompt/functions/prompt_sorin_setup | 2 +- runcoms/zprofile | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index c4d12c343f..fe1343db3d 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -87,7 +87,7 @@ function prompt_sorin_setup { unsetopt XTRACE KSH_ARRAYS prompt_opts=(cr percent subst) _prompt_sorin_precmd_async_pid=0 - _prompt_sorin_precmd_async_data="${TMPPREFIX}-prompt_sorin_data" + _prompt_sorin_precmd_async_data=$(mktemp "${TMPDIR}/sorin-prompt-async-XXXXXXXXXX") # Load required functions. autoload -Uz add-zsh-hook diff --git a/runcoms/zprofile b/runcoms/zprofile index e5efb20524..2fe10b5715 100644 --- a/runcoms/zprofile +++ b/runcoms/zprofile @@ -74,5 +74,3 @@ if [[ ! -d "$TMPDIR" ]]; then mkdir "$TMPDIR" chmod 700 "$TMPDIR" fi - -TMPPREFIX="${TMPDIR%/}/zsh" From a0541ce7a5f3ee5b0d869f1cd2b5546558e3750d Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 16 Jun 2017 10:37:51 -0700 Subject: [PATCH 025/322] Default sorin theme to /tmp when TMPDIR is not set Fixes #1331 --- modules/prompt/functions/prompt_sorin_setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index fe1343db3d..272e4f4e24 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -87,7 +87,7 @@ function prompt_sorin_setup { unsetopt XTRACE KSH_ARRAYS prompt_opts=(cr percent subst) _prompt_sorin_precmd_async_pid=0 - _prompt_sorin_precmd_async_data=$(mktemp "${TMPDIR}/sorin-prompt-async-XXXXXXXXXX") + _prompt_sorin_precmd_async_data=$(mktemp "${TMPDIR:-/tmp}/sorin-prompt-async-XXXXXXXXXX") # Load required functions. autoload -Uz add-zsh-hook From a75c63768c14f7315c87616d82b17690ae6e2630 Mon Sep 17 00:00:00 2001 From: Ihab Soliman Date: Mon, 19 Jun 2017 04:40:44 -0400 Subject: [PATCH 026/322] Add git aliases for signing commits (#1126) --- modules/git/README.md | 8 ++++++-- modules/git/alias.zsh | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/git/README.md b/modules/git/README.md index f7af33aedb..fc4ce9e46e 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -59,12 +59,16 @@ Aliases are enabled by default. You can disable them with: - `gc` records changes to the repository. - `gca` stages all modified and deleted files. - `gcm` records changes to the repository with the given message. + - `gcS` records changes to the repository. (Signed) + - `gcSa` stages all modified and deleted files. (Signed) + - `gcSm` records changes to the repository with the given message. (Signed) - `gco` checks out a branch or paths to work tree. - `gcam` stages all modified and deleted files, and records changes to the repository with the given message. - `gco` checks out a branch or paths to work tree. - `gcO` checks out hunks from the index or the tree interactively. - - `gcf` amends the tip of the current branch using the same log message as - *HEAD*. + - `gcf` amends the tip of the current branch using the same log message as *HEAD*. + - `gcSf` amends the tip of the current branch using the same log message as *HEAD*. (Signed) - `gcF` amends the tip of the current branch. + - `gcSF` amends the tip of the current branch. (Signed) - `gcp` applies changes introduced by existing commits. - `gcP` applies changes introduced by existing commits without committing. - `gcr` reverts existing commits by reverting patches and recording new diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 946ad32c56..9a2a95b5f2 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -53,11 +53,16 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then 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' From d9a1380263bbeb27a9ed91b79e04e99b65760535 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Mon, 19 Jun 2017 14:18:14 -0700 Subject: [PATCH 027/322] Change print to printf in init.zsh error (#1335) When my zsh had issues, and I was debugging it, this line would end up being run but no output would be made to the screen. Changing it from print to printf caused the error to properly be displayed. --- init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.zsh b/init.zsh index 665e6c40da..74d9eddece 100644 --- a/init.zsh +++ b/init.zsh @@ -12,7 +12,7 @@ # Check for the minimum supported version. min_zsh_version='4.3.17' if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then - print "prezto: old shell detected, minimum required: $min_zsh_version" >&2 + printf "prezto: old shell detected, minimum required: %s\n" "$min_zsh_version" >&2 return 1 fi unset min_zsh_version From 1c041c04339eeb45556acef5e1ac43742b20bda1 Mon Sep 17 00:00:00 2001 From: Nargoth Date: Tue, 20 Jun 2017 00:52:54 +0200 Subject: [PATCH 028/322] fixed vivisual key binding (#1148) Fixes #1236 --- modules/editor/init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index f1260021d7..be227cef5e 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -255,8 +255,8 @@ fi # Vi Key Bindings # -# Edit command in an external editor. -bindkey -M vicmd "v" edit-command-line +# Edit command in an external editor emacs style (v is used for visual mode) +bindkey -M vicmd "$key_info[Control]X$key_info[Control]E" edit-command-line # Undo/Redo bindkey -M vicmd "u" undo From ecc34e00511eee18501b39afd2998c416219849c Mon Sep 17 00:00:00 2001 From: Matthew Crenshaw Date: Wed, 21 Jun 2017 15:30:57 -0400 Subject: [PATCH 029/322] Move virtualenv auto-switch cwd hook optional loader out from inside unrelated if statement (#1338) --- modules/python/init.zsh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 47f7b5a122..859569d6ad 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -76,6 +76,12 @@ function _python-workon-cwd { 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, unless requested not to if zstyle -T ':prezto:module:python' skip-virtualenvwrapper-init; then # Set the directory where virtual environments are stored. @@ -105,14 +111,7 @@ if (( $+commands[pip] )); then fi source "$cache_file" - unset cache_file - - # 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 fi # From 7c172fc9a71d91c12bd14937875863c452d5c568 Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Wed, 21 Jun 2017 18:37:03 -0300 Subject: [PATCH 030/322] Fix #1337 by removing top alias to htop. (#1341) Fixes #1337 --- modules/utility/README.md | 8 +++----- modules/utility/init.zsh | 14 +++++--------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/modules/utility/README.md b/modules/utility/README.md index c949a66d02..57e3b07d58 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -107,11 +107,9 @@ Aliases - `df` displays free disk space using human readable units (aliases to `pydf`, if installed). - `du` displays disk usage using human readable units. - - `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). + - `top` displays information about processes. + - `topc` displays information about processes sorted by CPU usage. + - `topm` displays information about processes sorted by RAM usage. ### Miscellaneous diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 33ec147982..fb3de559c1 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -150,16 +150,12 @@ fi alias du='du -kh' -if (( $+commands[htop] )); then - alias top=htop +if [[ "$OSTYPE" == (darwin*|*bsd*) ]]; then + alias topc='top -o cpu' + alias topm='top -o vsize' else - 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 + alias topc='top -o %CPU' + alias topm='top -o %MEM' fi # Miscellaneous From f8f4953dcea8a43a21c381c0891e26842f3c3d47 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Wed, 21 Jun 2017 22:02:47 -0700 Subject: [PATCH 031/322] [completion] Bump external repository to version 0.25.0 8cdf60b Updated rkt commands and arguments f9d7d9d Implemented autocompletion for rkt pods and images (Fixes #465) 9feab39 Added completion for yarn a63a098 Update completion for mix, add completion for mix test, fix completion for mix help 6285e0e Add completions for bitcoin-cli 0ed2e86 Set proper description for gist -r df5a3a1 Try to follow the style guide d7a2972 Add gist completion for read flag b0cb2ad Added _rclone b7c11f4 drop ripgrep completion 907cba3 Update repository infos ccb53f4 Support newer versions of OpenSSL f02dc8f add licence information ceaff68 Add completion for ffind --- modules/completion/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/external b/modules/completion/external index 72af5d08f1..89dcaeb562 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit 72af5d08f1c07507d74103af039e98a2791fccb5 +Subproject commit 89dcaeb5624eeceabf41cfc00e79cce35cfd722b From d101b0a319e034fb0b171c3801fb18f9528e8849 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Wed, 21 Jun 2017 22:11:28 -0700 Subject: [PATCH 032/322] [autosuggestions] Bump external repository to version v0.4.0 14179d8 Bump version 281ed9b v0.4.0 changelog updates 83129dd Make asynchronous suggestions disabled by default a2f0ffb Enabling suggestions should not fetch a suggestion if buffer is empty 7d4a1d9 Add enable/disable/toggle widgets to disable suggestion functionality e1959d0 Put in a general fix for #219 - Handling input from `zle -U` c52c428 Fix issues with widgets wrapped by other plugins ea505b0 Add a spec for unlisted widgets fetching a new suggestion 502fb4a Make tmux_socket_name public so you can access easily from binding.pry ce36224 Use pry-byebug instead of pry for more functionality 39762ec Set up circle ci 468b740 Test should be passing block to RSpec wait_for c9a51e0 Handle dashes at the beginning of commands 48a21bf [cleanup] Remove an extra newline 4afbbba We only need to run the feature detection if starting async e3fa4e4 Don't do anything but re-bind widgets on each precmd 2cd99e6 Add a test for modifying widget list vars after sourcing plugin c70d685 Clean up widget list spec 255359d Use `+=` to be a bit more true to the spec language 4321fc0 We need to bind on every precmd to ensure we wrap other wrappers 75e8505 Gracefully handle being sourced multiple times a0fcd81 Destroy zpty on load if it already exists 39ca3da Use a different name for feature detection zpty dcce973 Remove support for long-deprecated options 0c940e7 Don't bind any zle-* methods 23ef16c Do not show suggestions if the buffer is empty 9381445 Fix tests c4bfd8e Need to prevent zpty feature detection from HUPing existing zptys c959408 Only wait a max of 2 seconds for content to match after clearing screen 06fca77 Readme updates for v0.4.0 9feac57 Do not show any error output from async zpty server process ed8056c Lots of async changes 38eb7cd Update license date 64e7ec5 Rename internal term session method 98f926d Clean up TerminalSession constructor a bit 51e8755 TerminalSession methods return self to support chaining 5151adf Make TerminalSession#clear block until the screen is cleared 2c465a9 Rename async pty name config var e3eb286 Lots of little async cleanups c342587 Wait for the terminal.clear to go through before continuing 89dd69d Add pry gem for debugging support 40bb2e7 little cleanup 16666da Handle versions of zsh where zpty does not set REPLY to fd of opened pty f33b605 Move async initialization into `start` function to keep in one place 78ba071 Add feature detection 3f57198 Only bind widgets once, on initial sourcing 2dbd261 Allow configuring of zsh binary to run integration tests against 6c5cd42 Go back to tracking last pid because `kill %1` didn't seem to be working 54e1eee Optimize case where manually typing in a suggestion 21d9eda Wrap suggestion fetch command in parens to actually run in background 50e6832 Escape the prefix passed into the match_prev_cmd strategy 0305908 Revert `fc` usage in calculating suggestion 8e06a54 Add test for string with "\n" in it b3208b0 Pass the chosen strategy into the suggestion server pty ab27425 Quote the suggestion to support sh_split_word option e5a5b0c Output only newlines in the pty 0337005 Disable word splitting while reading to preserve whitespace b530b0c Use `zpty -r` with pattern matching to fetch suggestion 5c891af Reset zsh options inside pty (from zsh-async) e33eb57 Send only the prefix to the suggestion server fba20b0 Use %1 instead of tracking pid 0308ed7 Rename worker to server e72c2d8 add a bunch of comments ab8f295 First pass at async functionality debbffc Add rspec test around accepting suggestions 4850119 Add separate test task for RSpec c22ab0e Implement suggestion integration tests in RSpec + tmux 07a6768 Add TerminalSession helper for managing a tmux session e6591d5 Add RSpec for high-level integration testing af671fb Add ruby settings to editor config --- modules/autosuggestions/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 9cfaf5d342..2cb6eb6e29 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 9cfaf5d3424ceb5fedd2c7e3253f823faae74383 +Subproject commit 2cb6eb6e29852e64a146b0284275ecdc0661b082 From 7fe28574a8aa87526ed8e3d51f5e0f34a47e7529 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Wed, 21 Jun 2017 22:20:13 -0700 Subject: [PATCH 033/322] [syntax-highlighting] Bump external repository to get bug fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ad522a0 driver: Fix printing error message to file when cannot resolve highlighters directory location 73cb832 'main': Highlight mismatched 'if'/'fi'. be083d7 driver: Improve «unhandled ZLE widget 'foo'» error message. 237f89a 'main': Don't consider «$*» a glob. 835fec7 workaround for PAT_STATIC bug in zsh 9523d6d tests: zsh 5.4-to-be compatibility: Set a new "I am shooting myself in the foot" option. aac4a44 driver: Fix duplicated slash in error message 4f49c4a docs: Update zplug install instruction 5efd062 tests: Add a regression test for issue #392 (aliases beginning with a '+' are lost). 67be621 tests: Move some code in preparation for next commit. No functional change. 74949c2 driver: Don't undefine aliases that begin with a '+', to workaround an upstream bug. 8d5afe4 driver: Be immune to 'alias' having been redefined. 76ea9e1 'main': Highlight possible history expansions in double-quoted strings. 50fbb5f docs: Update Homebrew link. 2dce602 driver: Be immune to weird aliases in the calling scope. 347cf0e 'main': Add regression test for previous commit. 5625e30 'main': Fix bug: no start_pos=$end_pos in comment short path fed37a9 'main': Fix a bug concerning command word with embedded colon-space sequences. 626c034 Add FreeBSD port 3d74aa4 Add Fedora package 5398949 changelog: Update for changes pulled out of 0.5.x. --- modules/syntax-highlighting/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index 15d4587514..ad522a0914 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit 15d4587514a3beaa13972093e335bf685b6726a9 +Subproject commit ad522a091429ba180c930f84b2a023b40de4dbcc From 961326f8e9f1afa6c2e2cd29404d9ca60b5c5dfb Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Fri, 23 Jun 2017 03:10:17 -0700 Subject: [PATCH 034/322] [editor] Set Delete key in vicmd mode to delete character Delete key deletes character in vimcmd cmd mode instead of weird default functionality. The default functionality in vicmd mode is the Delete key will change the case of many of the characters on the screen, which is not the default thing that vim does. This could be confusing and frustrating to users, so set it to delete a character instead. --- modules/editor/init.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index be227cef5e..6a14f62150 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -322,6 +322,9 @@ 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 From e52523204b69f18746a2d22f433c831919973bfa Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 26 Jun 2017 14:40:31 -0700 Subject: [PATCH 035/322] Remove redundant style rules from CONTRIBUTING.md --- CONTRIBUTING.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5079e6419e..3b8ae4fb70 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,15 +25,13 @@ improve its performance, do not hesitate to fork and send pull requests. #### Code Style - - Indent using 2 spaces. No tabs. - - Put `; do` and `; then` on the same line as the `while`, `for` or `if`. +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. - - Use `snake_case` for variable and function naming. - - Local variables should be lower cased. - - Global variables should be upper cased. - - Use `$(command)` instead of backticks. - - Avoid `eval` if possible. - Prefer `zstyle` over environment variables for configuration. + - Use the `my_func()` syntax for defining functions. + - The 80 character hard limit can be waved for readability. #### Modules @@ -44,10 +42,11 @@ improve its performance, do not hesitate to fork and send pull requests. #### Themes - A screenshots section must be present in the file header. - - The pull request description must have [embedded screenshots][5]. + - The pull request description must have [embedded screenshots][6]. [1]: https://github.com/sorin-ionescu/prezto/contributors [2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request [3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html [4]: https://help.github.com/articles/using-pull-requests -[5]: http://daringfireball.net/projects/markdown/syntax#img +[5]: https://google.github.io/styleguide/shell.xml +[6]: http://daringfireball.net/projects/markdown/syntax#img From a4ff6acd563b53e2afd997fd77fef7014619cebf Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Mon, 26 Jun 2017 14:52:59 -0700 Subject: [PATCH 036/322] [runcoms/zprofile+zshenv] Ensure TMPDIR is always set In some cases TMPDIR may not be set, in which case it could cause issues for zsh modules. This change was prompted by issue #1331. Also when creating a missing TMPDIR, use mkdir --mode=700 instead of creating the directory and then chmoding it afterward. --- runcoms/zprofile | 10 +++++----- runcoms/zshenv | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/runcoms/zprofile b/runcoms/zprofile index 2fe10b5715..04742d1fb2 100644 --- a/runcoms/zprofile +++ b/runcoms/zprofile @@ -66,11 +66,11 @@ fi # Temporary Files # # -if [[ -z "$TMPDIR" ]]; then - export TMPDIR="/tmp/zsh-$UID" +# Set TMPDIR if the variable is not set/empty or the directory doesn't exist +if [[ -z "${TMPDIR}" ]]; then + export TMPDIR="/tmp/zsh-${UID}" fi -if [[ ! -d "$TMPDIR" ]]; then - mkdir "$TMPDIR" - chmod 700 "$TMPDIR" +if [[ ! -d "${TMPDIR}" ]]; then + mkdir -m 700 "${TMPDIR}" fi diff --git a/runcoms/zshenv b/runcoms/zshenv index 2d97203180..eb16f5d667 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 || -z "${TMPDIR}" ) && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then source "${ZDOTDIR:-$HOME}/.zprofile" fi From eb47b45a0d4a36545a2ed6cfb991d776cdcb0684 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Mon, 26 Jun 2017 15:24:46 -0700 Subject: [PATCH 037/322] [CONTRUBITING] Add section on using a secondary devel directory Add a section on how to use a separate directory than your normal ZDOTDIR for development with its own zprezto. --- CONTRIBUTING.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3b8ae4fb70..488d08b9a8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,6 +33,28 @@ there are a number of additional things to keep in mind. - Use the `my_func()` syntax for defining 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. From 87868441ebd1411ab3f257861c35b115830d71b3 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Thu, 29 Jun 2017 23:26:53 -0700 Subject: [PATCH 038/322] [zprezto-update] Add convenience function to update zprezto (#1344) * [zprezto-update] Add convenience function to update zprezto This function checks if there is any update to zprezto, and if so will pull in the changes. It will not attempt a pull unless it is fastforwardable. It also makes sure the user is on the master branch before attempting. * [zprezto-update] Improve resilience of the function Better error checking of status of the git repository and better error producing. Fit columns into mostly 80 width and add a missing printf argument. Use ( ) around the function so changing directory does not affect the outer scope. * [README] Add instructions on using zprezto-update function --- README.md | 11 +++++++++-- init.zsh | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fee70a492b..f90888c616 100644 --- a/README.md +++ b/README.md @@ -50,9 +50,16 @@ window or tab. Updating -------- -Pull the latest changes and update submodules. +Run `zprezto-update` to automatically check if there is an update to zprezto. +If there are no file conflicts, zprezto its submodules will be automatically +be updated. If there are conflicts you will instructed to go +into the `$ZPREZTODIR` directory and resolve them yourself. - git pull && git submodule update --init --recursive +To pull the latest changes and update submodules manually: + + cd $ZPREZTODIR + git pull + git submodule update --init --recursive Usage ----- diff --git a/init.zsh b/init.zsh index 74d9eddece..b2a79c8319 100644 --- a/init.zsh +++ b/init.zsh @@ -17,6 +17,52 @@ if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then 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" + [[ "${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 @) + local REMOTE=$(git rev-parse "$UPSTREAM") + local BASE=$(git merge-base @ "$UPSTREAM") + if [[ $LOCAL == $REMOTE ]]; then + printf "There are no updates.\n" + return 0 + elif [[ $LOCAL == $BASE ]]; then + printf "There is an update availible. 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 # From 5ef10f765896d5849c4c98bb495f0c82c5533bda Mon Sep 17 00:00:00 2001 From: Philipp A Date: Mon, 19 Jun 2017 20:54:54 +0200 Subject: [PATCH 039/322] Fixed ssh-add not using SSH_ASKPASS --- modules/ssh/init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index 3ead593f6a..6c073321b8 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -40,9 +40,9 @@ fi if ssh-add -l 2>&1 | grep -q 'The agent has no identities'; then zstyle -a ':prezto:module:ssh:load' identities '_ssh_identities' if (( ${#_ssh_identities} > 0 )); then - ssh-add "$_ssh_dir/${^_ssh_identities[@]}" 2> /dev/null + ssh-add "$_ssh_dir/${^_ssh_identities[@]}" < /dev/null 2> /dev/null else - ssh-add 2> /dev/null + ssh-add < /dev/null 2> /dev/null fi fi From dbe9a5ea28ebe3e09a48b703017f8d25d674bc19 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Mon, 3 Jul 2017 17:00:14 -0700 Subject: [PATCH 040/322] [editor] set forward/backward word for Ctrl+Right Ctrl+Left Set forward/backward word to be mapped the same as they are in vim, instead of having weird functionality when unset. --- modules/editor/init.zsh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 6a14f62150..20760bd390 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -274,6 +274,14 @@ fi # Emacs and Vi Key Bindings # +# 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 From a876890afd14304fee06dd87d7ba70412e4780d2 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Sat, 1 Jul 2017 23:55:54 -0700 Subject: [PATCH 041/322] [utility] scp/rsync glob local paths but don't glob remote paths Adds a function which wraps rsync and scp so that remote paths are not globbed but local paths are globbed. This is because the programs have their own globbing for remote paths. The wrap function globs args starting in / and ./ and doesn't glob paths with : in it as these are interpreted as remote paths by these programs unless the path starts with / or ./ Fixes issue #1125 --- modules/utility/init.zsh | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index fb3de559c1..8e319bbb60 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -41,8 +41,26 @@ alias ftp='noglob ftp' alias history='noglob history' alias locate='noglob locate' alias rake='noglob rake' -alias rsync='noglob rsync' -alias scp='noglob scp' +alias rsync='noglob rsync_scp_wrap rsync' +alias scp='noglob rsync_scp_wrap scp' +# This function wraps rsync and scp so that remote paths are not globbed +# but local paths are globbed. This is because the programs have their own +# globbing for remote paths. The wrap function globs args starting in / and ./ +# and doesn't glob paths with : in it as these are interpreted as remote paths +# by these programs unless the path starts with / or ./ +function rsync_scp_wrap { + local args=( ) + local cmd="$1" + shift + local i + for i in "$@"; do case $i in + ( ./* ) args+=( ${~i} ) ;; # glob + ( /* ) args+=( ${~i} ) ;; # glob + ( *:* ) args+=( ${i} ) ;; # noglob + ( * ) args+=( ${~i} ) ;; # glob + esac; done + command $cmd "${(@)args}" +} alias sftp='noglob sftp' # Define general aliases. From 09b333eb4177c47929ba8ab309f489818af640d7 Mon Sep 17 00:00:00 2001 From: Luiz Gonzaga dos Santos Filho Date: Sun, 2 Jul 2017 03:40:22 +0200 Subject: [PATCH 042/322] Fix README example on tmux's default session name --- modules/tmux/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tmux/README.md b/modules/tmux/README.md index 28695fa407..87a83f489a 100644 --- a/modules/tmux/README.md +++ b/modules/tmux/README.md @@ -25,7 +25,7 @@ server is not started. You can change the default session name with: - zstyle ':prezto:module:tmux' session 'YOUR DEFAULT SESSION NAME' + zstyle ':prezto:module:tmux:session' name 'YOUR DEFAULT 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 From c6124d4d37bd1571662d395a4d70f91610bc3139 Mon Sep 17 00:00:00 2001 From: "Brian K. Christensen" Date: Wed, 5 Jul 2017 15:42:35 +0200 Subject: [PATCH 043/322] Updater: fix bug regarding source init in new updater logic --- init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.zsh b/init.zsh index b2a79c8319..eb1609135d 100644 --- a/init.zsh +++ b/init.zsh @@ -23,7 +23,7 @@ unset min_zsh_version function zprezto-update () ( function cannot-fast-forward { local STATUS="$1" - [[ "${STATUS}" ]] && printf "%s\n" "${STATUS}" + [[ -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" From 5cd3380d9ddaa45f912339e9cac00dc7457202cb Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Wed, 5 Jul 2017 11:56:41 -0700 Subject: [PATCH 044/322] [prompt/sorin] Fix branch code exploit vulnerability Escape all $ except the first $. Escape all backtick `'s. This prevents variable names or shell expansions placed as branch names from remotely exploiting code. Fixes issue #1267 for sorin prompt. --- modules/prompt/functions/prompt_sorin_setup | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 272e4f4e24..3a2a9f71c3 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -54,7 +54,23 @@ function prompt_sorin_precmd_async { # Get Git repository information. if (( $+functions[git-info] )); then git-info - typeset -p git_info >! "$_prompt_sorin_precmd_async_data" + ### TODO XXX + # This section exists to patch over vulnerabilities when sourcing the + # file in $_prompt_sorin_precmd_async_data. Without it if a branch is named + # $foo it will expand if we have a $foo variable, and a branch named + # $(IFS=_;cmd=rm_-rf_~;$cmd) could delete the users home directory. + # This is a stopgap to prevent code execution and fix the vulnerability, + # but it eventually needs to be removed in favor of zsh_async and not using + # a file to store the prompt data in. + ### + local tmp_prompt_var=$(typeset -p git_info) + # Replace all $ with $\ to escape + tmp_prompt_var=${tmp_prompt_var//\$/\\$} + # Unescape the first \$ as it's our $( ) + tmp_prompt_var=${tmp_prompt_var:s/\\$/\$} + # Escape all backticks ` to \` + tmp_prompt_var=${tmp_prompt_var//\`/\\\`} + printf "%s\n" "$tmp_prompt_var" >! "$_prompt_sorin_precmd_async_data" fi # Signal completion to parent process. From 75a60bc7bff3281ce3aae8fb4b25b8b461ccc0f7 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Wed, 5 Jul 2017 23:05:31 -0700 Subject: [PATCH 045/322] [editor] Add bindkey-all function to show all bound keys (#1358) * [editor] Add bindkey-all function to show all bound keys Function which allows you to see all the bound keys for all of the different keymaps. It does accept arguments and passes them through to bindkey -m "$keymap" so you could set a shortcut to all keymaps as well if you wished. Makes it much easier to see and grep what keys are bound to each of the different keymaps. When no arguments are given it will print keymap headers to stderr, if given arguments it will not print anything extra to the screen. * [editor] Update README to include information about bindkey-all funct. --- modules/editor/README.md | 15 +++++++++++++++ modules/editor/init.zsh | 10 +++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/modules/editor/README.md b/modules/editor/README.md index 44bc829c80..78a7ea3824 100644 --- a/modules/editor/README.md +++ b/modules/editor/README.md @@ -58,6 +58,21 @@ To indicate when the editor is completing, add the following to your 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 fear each keymap. + Authors ------- diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 20760bd390..93a7735acd 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -78,7 +78,15 @@ zle -N edit-command-line # # Functions # - +# Runs bindkey but for all of the keymaps. Running it with no arguments will +# print out the mappings for all of the keymaps. +function bindkey-all { + local keymap='' + for keymap in $(bindkey -l); do + [[ "$#" -eq 0 ]] && printf "#### %s\n" "${keymap}" 1>&2 + bindkey -M "${keymap}" "$@" + done +} # Exposes information about the Zsh Line Editor via the $editor_info associative # array. function editor-info { From a70bce3ea6ab68d8a89459525133ca4e4d7f878e Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 6 Jul 2017 16:00:58 -0700 Subject: [PATCH 046/322] Ensure we use the same function definition syntax everywhere --- CONTRIBUTING.md | 2 +- init.zsh | 74 +++++++++++++++++++++++++------------------------ 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 488d08b9a8..377e6f0f36 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,7 +30,7 @@ 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. - - Use the `my_func()` syntax for defining functions. + - Use the function keyword to define functions. - The 80 character hard limit can be waved for readability. #### Using an Alternative zprezto Directory diff --git a/init.zsh b/init.zsh index eb1609135d..be565663e7 100644 --- a/init.zsh +++ b/init.zsh @@ -20,49 +20,51 @@ 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 @) - local REMOTE=$(git rev-parse "$UPSTREAM") - local BASE=$(git merge-base @ "$UPSTREAM") - if [[ $LOCAL == $REMOTE ]]; then - printf "There are no updates.\n" - return 0 - elif [[ $LOCAL == $BASE ]]; then - printf "There is an update availible. Trying to pull.\n\n" - if git pull --ff-only; then - printf "Syncing submodules\n" - git submodule update --recursive - return $? +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 @) + local REMOTE=$(git rev-parse "$UPSTREAM") + local BASE=$(git merge-base @ "$UPSTREAM") + if [[ $LOCAL == $REMOTE ]]; then + printf "There are no updates.\n" + return 0 + elif [[ $LOCAL == $BASE ]]; then + printf "There is an update availible. 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 + cannot-fast-forward "Upstream and local have diverged." 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." + 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 - 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 # From 7d5beeab51627de9b68fb13b0359438da32dd6ac Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 6 Jul 2017 16:01:26 -0700 Subject: [PATCH 047/322] Add comments into each of the function files to make them easier to find --- modules/archive/functions/archive | 4 ++++ modules/archive/functions/lsarchive | 4 ++++ modules/archive/functions/unarchive | 4 ++++ modules/dpkg/functions/deb-clone | 4 ++++ modules/dpkg/functions/deb-history | 4 ++++ modules/dpkg/functions/deb-kbuild | 4 ++++ modules/git/functions/git-branch-current | 4 ++++ modules/git/functions/git-commit-lost | 4 ++++ modules/git/functions/git-dir | 4 ++++ modules/git/functions/git-hub-browse | 4 ++++ modules/git/functions/git-hub-shorten-url | 4 ++++ modules/git/functions/git-root | 4 ++++ modules/git/functions/git-stash-clear-interactive | 4 ++++ modules/git/functions/git-stash-dropped | 4 ++++ modules/git/functions/git-stash-recover | 4 ++++ modules/git/functions/git-submodule-move | 4 ++++ modules/git/functions/git-submodule-remove | 4 ++++ modules/node/functions/node-doc | 4 ++++ modules/node/functions/node-info | 4 ++++ modules/osx/functions/osx-ls-download-history | 4 ++++ modules/osx/functions/osx-rm-dir-metadata | 4 ++++ modules/osx/functions/osx-rm-download-history | 4 ++++ modules/osx/functions/pfd | 4 ++++ modules/osx/functions/pfs | 4 ++++ modules/osx/functions/ql | 4 ++++ modules/osx/functions/tab | 4 ++++ modules/pacman/functions/pacman-list-disowned | 4 ++++ modules/pacman/functions/pacman-list-explicit | 4 ++++ modules/perl/functions/perl-info | 4 ++++ modules/prompt/functions/promptpwd | 4 ++++ modules/python/functions/python-info | 4 ++++ modules/ruby/functions/ruby-app-root | 4 ++++ modules/ruby/functions/ruby-info | 4 ++++ modules/utility/functions/prep | 4 ++++ modules/utility/functions/psub | 4 ++++ modules/wakeonlan/functions/wake | 4 ++++ 36 files changed, 144 insertions(+) diff --git a/modules/archive/functions/archive b/modules/archive/functions/archive index ab0d56da88..0e3bb616bf 100644 --- a/modules/archive/functions/archive +++ b/modules/archive/functions/archive @@ -6,6 +6,8 @@ # Matt Hamilton # +# function archive { + local archive_name dir_to_archive _gzip_bin _bzip2_bin if (( $# != 2 )); then @@ -65,3 +67,5 @@ case "${archive_name}" in (*.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 6b1b321a5b..d2bd83416d 100644 --- a/modules/archive/functions/lsarchive +++ b/modules/archive/functions/lsarchive @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function lsarchive { + local verbose if (( $# == 0 )); then @@ -53,3 +55,5 @@ while (( $# > 0 )); do shift done + +# } diff --git a/modules/archive/functions/unarchive b/modules/archive/functions/unarchive index fac77ff6e8..c9ed148858 100644 --- a/modules/archive/functions/unarchive +++ b/modules/archive/functions/unarchive @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function unarchive { + local remove_archive local success local file_name @@ -78,3 +80,5 @@ while (( $# > 0 )); do (( $success == 0 )) && (( $remove_archive == 0 )) && rm "$1" shift done + +# } diff --git a/modules/dpkg/functions/deb-clone b/modules/dpkg/functions/deb-clone index a284c96fc0..a767bd323e 100644 --- a/modules/dpkg/functions/deb-clone +++ b/modules/dpkg/functions/deb-clone @@ -6,6 +6,8 @@ # Sorin Ionescu # +# function deb-clone { + local clone_script="${0}.sh" local package_list=$( perl \ @@ -23,3 +25,5 @@ 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 3737679031..a1369dea24 100644 --- a/modules/dpkg/functions/deb-history +++ b/modules/dpkg/functions/deb-history @@ -7,6 +7,8 @@ # Sorin Ionescu # +# function deb-history { + case "$1" in (install) zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*) @@ -34,3 +36,5 @@ Commands: EOF ;; esac + +# } diff --git a/modules/dpkg/functions/deb-kbuild b/modules/dpkg/functions/deb-kbuild index bdf7801e5b..a84a9b6de5 100644 --- a/modules/dpkg/functions/deb-kbuild +++ b/modules/dpkg/functions/deb-kbuild @@ -6,9 +6,13 @@ # 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/git/functions/git-branch-current b/modules/git/functions/git-branch-current index 944ffe25cd..cadb6f63df 100644 --- a/modules/git/functions/git-branch-current +++ b/modules/git/functions/git-branch-current @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function git-branch-current { + if ! git rev-parse 2> /dev/null; then print "$0: not a repository: $PWD" >&2 return 1 @@ -18,3 +20,5 @@ 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 75ab571655..62789ac916 100644 --- a/modules/git/functions/git-commit-lost +++ b/modules/git/functions/git-commit-lost @@ -5,6 +5,8 @@ # 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 @@ -18,3 +20,5 @@ 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 7e16ca8140..fdb515c5d4 100644 --- a/modules/git/functions/git-dir +++ b/modules/git/functions/git-dir @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function git-dir { + local git_dir="${$(git rev-parse --git-dir):A}" if [[ -n "$git_dir" ]]; then @@ -14,3 +16,5 @@ 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 549a544ab7..4e7c314e56 100644 --- a/modules/git/functions/git-hub-browse +++ b/modules/git/functions/git-hub-browse @@ -5,6 +5,8 @@ # 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 @@ -56,3 +58,5 @@ 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 d37b04eb85..78f2d7ba26 100644 --- a/modules/git/functions/git-hub-shorten-url +++ b/modules/git/functions/git-hub-shorten-url @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function git-hub-shorten-url { + local url="$1" if [[ "$url" == '-' ]]; then @@ -20,3 +22,5 @@ if (( $+commands[curl] )); then else print "$0: command not found: curl" >&2 fi + +# } diff --git a/modules/git/functions/git-root b/modules/git/functions/git-root index 712e4fe6b4..f749457205 100644 --- a/modules/git/functions/git-root +++ b/modules/git/functions/git-root @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function git-root { + local root="$(git rev-parse --show-toplevel 2> /dev/null)" if [[ -n "$root" ]]; then @@ -14,3 +16,5 @@ 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 e45165c499..71468aa0e0 100644 --- a/modules/git/functions/git-stash-clear-interactive +++ b/modules/git/functions/git-stash-clear-interactive @@ -5,6 +5,8 @@ # 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 @@ -20,3 +22,5 @@ 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 51580703f2..2a0b7a94e7 100644 --- a/modules/git/functions/git-stash-dropped +++ b/modules/git/functions/git-stash-dropped @@ -5,6 +5,8 @@ # 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 @@ -20,3 +22,5 @@ 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 6add26fdd9..5cc949a730 100644 --- a/modules/git/functions/git-stash-recover +++ b/modules/git/functions/git-stash-recover @@ -5,6 +5,8 @@ # 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 @@ -16,3 +18,5 @@ 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 34c5e44aba..ec6048e68e 100644 --- a/modules/git/functions/git-submodule-move +++ b/modules/git/functions/git-submodule-move @@ -5,6 +5,8 @@ # 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 @@ -30,3 +32,5 @@ 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 852b9cdbc8..2490e78c87 100644 --- a/modules/git/functions/git-submodule-remove +++ b/modules/git/functions/git-submodule-remove @@ -5,6 +5,8 @@ # 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 @@ -25,3 +27,5 @@ rm -rf "${1}" rm -rf "$(git-dir)/modules/${1}" return 0 + +# } diff --git a/modules/node/functions/node-doc b/modules/node/functions/node-doc index 24f5641422..b1a048bd24 100644 --- a/modules/node/functions/node-doc +++ b/modules/node/functions/node-doc @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function node-doc { + if [[ -z "$BROWSER" ]]; then print "$0: no web browser defined" >&2 return 1 @@ -12,3 +14,5 @@ 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 e4cd52d02c..22ac31bd5c 100644 --- a/modules/node/functions/node-info +++ b/modules/node/functions/node-info @@ -6,6 +6,8 @@ # Zeh Rizzatti # +# function node-info { + local version local version_format local version_formatted @@ -24,3 +26,5 @@ if [[ "$version" != (none|) ]]; then zformat -f version_formatted "$version_format" "v:$version" node_info[version]="$version_formatted" fi + +# } diff --git a/modules/osx/functions/osx-ls-download-history b/modules/osx/functions/osx-ls-download-history index 5727c1b33e..ba6a40c7ea 100644 --- a/modules/osx/functions/osx-ls-download-history +++ b/modules/osx/functions/osx-ls-download-history @@ -5,9 +5,13 @@ # 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 0a91cedb66..f15f4ed619 100644 --- a/modules/osx/functions/osx-rm-dir-metadata +++ b/modules/osx/functions/osx-rm-dir-metadata @@ -5,7 +5,11 @@ # 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 3837709871..c6a368cafb 100644 --- a/modules/osx/functions/osx-rm-download-history +++ b/modules/osx/functions/osx-rm-download-history @@ -5,9 +5,13 @@ # 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 a4d4b686bb..41537698c7 100644 --- a/modules/osx/functions/pfd +++ b/modules/osx/functions/pfd @@ -5,8 +5,12 @@ # Sorin Ionescu # +# function pfd { + osascript 2>/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 e0f2dc244f..114c92eee1 100644 --- a/modules/osx/functions/tab +++ b/modules/osx/functions/tab @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function tab { + local command="cd \\\"$PWD\\\"" (( $# > 0 )) && command="${command}; $*" @@ -50,3 +52,5 @@ EOF end tell EOF } + +# } diff --git a/modules/pacman/functions/pacman-list-disowned b/modules/pacman/functions/pacman-list-disowned index a097c9db99..9c8f56a0e9 100644 --- a/modules/pacman/functions/pacman-list-disowned +++ b/modules/pacman/functions/pacman-list-disowned @@ -6,6 +6,8 @@ # Sorin Ionescu # +# function pacman-list-disowned { + local tmp="${TMPDIR:-/tmp}/pacman-disowned-$UID-$$" local db="$tmp/db" local fs="$tmp/fs" @@ -20,3 +22,5 @@ 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 2967834f11..7c9b08f3c2 100644 --- a/modules/pacman/functions/pacman-list-explicit +++ b/modules/pacman/functions/pacman-list-explicit @@ -6,6 +6,8 @@ # Sorin Ionescu # +# function pacman-list-explicit { + pacman --query --explicit --info \ | awk ' BEGIN { @@ -18,3 +20,5 @@ pacman --query --explicit --info \ print $2 } ' + +# } diff --git a/modules/perl/functions/perl-info b/modules/perl/functions/perl-info index 2c396ea513..b42e23d737 100644 --- a/modules/perl/functions/perl-info +++ b/modules/perl/functions/perl-info @@ -6,6 +6,8 @@ # JINNOUCHI Yasushi # +# function perl-info { + local version local version_format local version_formatted @@ -28,3 +30,5 @@ if [[ -n "$version" ]]; then zformat -f version_formatted "$version_format" "v:$version" perl_info[version]="$version_formatted" fi + +# } diff --git a/modules/prompt/functions/promptpwd b/modules/prompt/functions/promptpwd index d7659f9c97..bf6e227daf 100644 --- a/modules/prompt/functions/promptpwd +++ b/modules/prompt/functions/promptpwd @@ -1,6 +1,8 @@ # prompt setup function common to many prompts # moved to external function to reduce code redundancy +# function promptpwd { + setopt localoptions extendedglob local current_pwd="${PWD/#$HOME/~}" @@ -18,3 +20,5 @@ else fi print "$ret_directory" + +# } diff --git a/modules/python/functions/python-info b/modules/python/functions/python-info index 6a8c758934..a616814c8a 100644 --- a/modules/python/functions/python-info +++ b/modules/python/functions/python-info @@ -6,6 +6,8 @@ # Sorin Ionescu # +# function python-info { + local virtualenv_format local virtualenv_formatted @@ -19,3 +21,5 @@ 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/ruby/functions/ruby-app-root b/modules/ruby/functions/ruby-app-root index ea35be6059..ef28c5b0e1 100644 --- a/modules/ruby/functions/ruby-app-root +++ b/modules/ruby/functions/ruby-app-root @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function ruby-app-root { + local root_dir="$PWD" while [[ "$root_dir" != '/' ]]; do @@ -16,3 +18,5 @@ while [[ "$root_dir" != '/' ]]; do done return 1 + +# } diff --git a/modules/ruby/functions/ruby-info b/modules/ruby/functions/ruby-info index ebf0f7fe8d..d53435b42e 100644 --- a/modules/ruby/functions/ruby-info +++ b/modules/ruby/functions/ruby-info @@ -6,6 +6,8 @@ # Sorin Ionescu # +# function ruby-info { + local version local version_format local version_formatted @@ -28,3 +30,5 @@ if [[ -n "$version" ]]; then zformat -f version_formatted "$version_format" "v:$version" ruby_info[version]="$version_formatted" fi + +# } diff --git a/modules/utility/functions/prep b/modules/utility/functions/prep index 23028ec436..d6448aeb20 100644 --- a/modules/utility/functions/prep +++ b/modules/utility/functions/prep @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function prep { + local usage pattern modifiers invert usage="$( @@ -50,3 +52,5 @@ 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 ffc01088f8..af191fde60 100644 --- a/modules/utility/functions/psub +++ b/modules/utility/functions/psub @@ -5,6 +5,8 @@ # Sorin Ionescu # +# function psub { + local usage pattern replacement modifiers usage="$( @@ -51,3 +53,5 @@ replacement="$2" repeat 2 shift perl -i'.orig' -n -l -e "s/${pattern//\//\\/}/${replacement//\//\\/}/${modifiers}; print" "$@" + +# } diff --git a/modules/wakeonlan/functions/wake b/modules/wakeonlan/functions/wake index 5259c95b78..6f7d6c5a26 100644 --- a/modules/wakeonlan/functions/wake +++ b/modules/wakeonlan/functions/wake @@ -6,6 +6,8 @@ # Sorin Ionescu # +# function wake { + local config_file="$HOME/.wakeonlan/$1" if [[ ! -s "$config_file" ]]; then print "$0: invalid device file: $1" >&2 @@ -18,3 +20,5 @@ if (( ! $+commands[wakeonlan] )); then fi wakeonlan -f "$config_file" + +# } From e6136a517b6b795ed71e7538f3a0d9ae8dfcce9a Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 7 Jul 2017 00:02:13 -0500 Subject: [PATCH 048/322] [git] Fix 'git-hub-shorten-url' helper Changes: - Use git.io over 'https' - Add extra check to conform to *.github.com URLs - Use built-in _urls function for completion - Update readme with GitHub blog URL --- modules/git/README.md | 3 ++- modules/git/functions/_git-hub-shorten-url | 2 +- modules/git/functions/git-hub-shorten-url | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/git/README.md b/modules/git/README.md index fc4ce9e46e..d8491d62c5 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -317,7 +317,7 @@ Functions - `git-commit-lost` lists lost commits. - `git-dir` displays the path to the Git directory. - `git-hub-browse` opens the [GitHub][3] repository in the default browser. - - `git-hub-shorten-url` shortens GitHub URLs. + - `git-hub-shorten-url` shortens [GitHub URLs][10]. - `git-info` exposes repository information via the `$git_info` associative array. - `git-root` displays the path to the working tree root. @@ -422,3 +422,4 @@ Authors [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 \ No newline at end of file diff --git a/modules/git/functions/_git-hub-shorten-url b/modules/git/functions/_git-hub-shorten-url index dcc7bb3880..1d811caee7 100644 --- a/modules/git/functions/_git-hub-shorten-url +++ b/modules/git/functions/_git-hub-shorten-url @@ -8,4 +8,4 @@ # Sorin Ionescu # -_arguments '1:url:' && return 0 +_arguments '::GitHub URL:_urls' && return 0 diff --git a/modules/git/functions/git-hub-shorten-url b/modules/git/functions/git-hub-shorten-url index 78f2d7ba26..f36662f4ec 100644 --- a/modules/git/functions/git-hub-shorten-url +++ b/modules/git/functions/git-hub-shorten-url @@ -13,12 +13,12 @@ if [[ "$url" == '-' ]]; then read url <&0 fi -if [[ -z "$url" ]]; then - print "usage: $0 [ url | - ]" >&2 +if [[ -z "$url" || ! "$url" =~ ^https?:\/\/.*github.com\/ ]]; then + print "usage: $0 [ url | - ] ; must be a github.com URL" >&2 fi if (( $+commands[curl] )); then - curl -s -i 'http://git.io' -F "url=$url" | sed -n 's/^Location: //p' + curl -s -i 'https://git.io' -F "url=$url" | sed -n 's/^Location: //p' else print "$0: command not found: curl" >&2 fi From db48a22c741cc553da0e0699955ffe3952efd43f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Chr=C3=A9tien?= Date: Thu, 11 Feb 2016 21:35:09 +0900 Subject: [PATCH 049/322] gpg: fix enable-ssh-support detection That line may be commented in the config file. --- modules/gpg/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gpg/init.zsh b/modules/gpg/init.zsh index b969c7a553..f21c8cfba4 100644 --- a/modules/gpg/init.zsh +++ b/modules/gpg/init.zsh @@ -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 From e3520b737f8f6b908e3fc62934ede1a75a16e32b Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Fri, 7 Jul 2017 12:50:53 -0700 Subject: [PATCH 050/322] [editor] Fix undefined results with unbound keys in viins/vicmd Bind the remaining unbound keys in the main mode so that they don't result in undefined functionality when pressed. (Often this will change the casing of one/most/all of the characters you've typed or even stranger things). In emacs mode this usually just inserts a tilde, but this will fix that as well so nothing happens when unbound keys are pressed. Since there isn't any binding which does "nothing", create a noop ZLE widget and bind them to that. The user or other modules are still able to override these bindings either by overriding the main keymap or setting a keymap in one of the other modes which will take precedence over the main fallback. --- modules/editor/init.zsh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 93a7735acd..a80cbbc92f 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -282,6 +282,32 @@ 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 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]}" +) +for keymap in $unbound_keys; do + bindkey -M main "${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]}" From 3f9951902192be04b44ac96c533ffd155b88774b Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 7 Jul 2017 23:27:18 -0500 Subject: [PATCH 051/322] Prefer evaluation over test for arithmetic expression Usage of `(( ... ))` over `[[ ... ]]` is preferred for arithmetic expression since the former is less error prone. Also, unset local variable whenever possible. --- CONTRIBUTING.md | 1 + modules/completion/init.zsh | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 377e6f0f36..7800b818c4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,6 +30,7 @@ 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. diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index 912c586b0f..8b7634a8eb 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -32,12 +32,13 @@ unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor. # cache time of 20 hours, so it should almost always regenerate the first time a # shell is opened each day. autoload -Uz compinit -compfiles=(${ZDOTDIR:-$HOME}/.zcompdump(Nm-20)) -if [[ $#compfiles > 0 ]]; then +_comp_files=(${ZDOTDIR:-$HOME}/.zcompdump(Nm-20)) +if (( $#_comp_files )); then compinit -i -C else compinit -i fi +unset _comp_files # # Styles From 899c176942e8217bb3b61dbea6551ff65031ef4e Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 10 Jul 2017 00:03:36 -0700 Subject: [PATCH 052/322] python: add ubuntu locations for virtualenvwrapper.sh --- modules/python/init.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 859569d6ad..7ed3428f78 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -98,6 +98,10 @@ if zstyle -T ':prezto:module:python' skip-virtualenvwrapper-init; then source "$commands[virtualenvwrapper_lazy.sh]" elif (( $+commands[virtualenvwrapper.sh] )); then source "$commands[virtualenvwrapper.sh]" + elif [[ -f /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh ]]; then + source /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh + elif [[ -f /usr/share/virtualenvwrapper/virtualenvwrapper.sh ]]; then + source /usr/share/virtualenvwrapper/virtualenvwrapper.sh fi fi From 7d109fb3fa9de41cbde2d860b2ca4595c3d31f8d Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 10 Jul 2017 10:30:21 -0700 Subject: [PATCH 053/322] [editor] Ensure unbound_keys is defined as an array Somewhere around zsh 5.1, there was a change which turned typeset (and most likely local) into a keyword. In older versions of zsh, using `local x=()` will cause the () to be treated as a glob qualifier. Fixes #1373 --- modules/editor/init.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index a80cbbc92f..4e373eea0a 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -289,7 +289,8 @@ fi # it will fall back and do nothing. function _prezto-zle-noop { ; } zle -N _prezto-zle-noop -local unbound_keys=( +local -a unbound_keys +unbound_keys=( "${key_info[F1]}" "${key_info[F2]}" "${key_info[F3]}" From 6e1f4ddd19dca2a02a79658fc8b9f8d230b591d0 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 8 Jul 2017 21:27:34 -0500 Subject: [PATCH 054/322] [completion] Minor cleanup of zstyle completion 'tag-order' De-duplicate common zstyle 'tag-order' for ssh, scp and rsync. --- modules/completion/init.zsh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index 8b7634a8eb..ca2117b4ed 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -150,9 +150,8 @@ if [[ -s "$HOME/.mutt/aliases" ]]; then fi # SSH/SCP/RSYNC -zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' +zstyle ':completion:*:(ssh|scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr -zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*' From 2a75fba6a80b91a764fbd2e25123f69e22554232 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Mon, 10 Jul 2017 20:40:37 -0700 Subject: [PATCH 055/322] [utility] Add safe-ops zstyle option to disable safe rm/cp/ln/mv Currently rm/cp/ln/mv are aliased to rm/cp/ln/mv -i so that it will prompt before removing files. Some people would not like this functionality and wish for an easy way to disable it. This adds a new option: zstyle ':prezto:module:utility' safe-ops yes/no It is enabled by default even if zstyle is not set, but can be set to no to disable these aliases. This should resolve issue #205 --- modules/utility/init.zsh | 11 +++++++---- runcoms/zpreztorc | 5 +++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 8e319bbb60..dd6158a685 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -66,16 +66,19 @@ alias sftp='noglob sftp' # Define general aliases. alias _='sudo' alias b='${(z)BROWSER}' -alias cp="${aliases[cp]:-cp} -i" + alias diffu="diff --unified" 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 rm="${aliases[rm]:-rm} -i" +if zstyle -T ':prezto:module:utility' safe-ops; then + alias rm="${aliases[rm]:-rm} -i" + alias mv="${aliases[mv]:-mv} -i" + alias cp="${aliases[cp]:-cp} -i" + alias ln="${aliases[ln]:-ln} -i" +fi alias sa='alias | grep -i' alias type='type -a' diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 690add7af2..66f88d7fab 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -171,6 +171,11 @@ zstyle ':prezto:module:prompt' theme 'sorin' # Set the terminal multiplexer title format. # zstyle ':prezto:module:terminal:multiplexer-title' format '%s' +# safe-ops is enabled by default. This aliases rm, mv, cp, and ln so that they +# prompt before deleting or copying over files. Set to no to disable this safer +# behavior. +# zstyle ':prezto:module:utility' safe-ops yes + # # Tmux # From aad91beb3c60bab04a09a10fa56c56b469251cd3 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 11 Jul 2017 11:52:47 -0700 Subject: [PATCH 056/322] [utility] Move the safeops aliases into their own section and add XXi variants --- modules/utility/init.zsh | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index dd6158a685..e9c20b2125 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -73,15 +73,21 @@ alias mkdir="${aliases[mkdir]:-mkdir} -p" alias p='${(z)PAGER}' alias po='popd' alias pu='pushd' -if zstyle -T ':prezto:module:utility' safe-ops; then - alias rm="${aliases[rm]:-rm} -i" - alias mv="${aliases[mv]:-mv} -i" - alias cp="${aliases[cp]:-cp} -i" - alias ln="${aliases[ln]:-ln} -i" -fi alias sa='alias | grep -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="${aliases[rm]:-rm} -i" + alias mv="${aliases[mv]:-mv} -i" + alias cp="${aliases[cp]:-cp} -i" + alias ln="${aliases[ln]:-ln} -i" +fi + # ls if is-callable 'dircolors'; then # GNU Core Utilities From 17bc7530ba307a50fd197248b2b0697d2326ef66 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 11 Jul 2017 11:58:56 -0700 Subject: [PATCH 057/322] Update documentation on safeops --- modules/utility/README.md | 17 +++++++++++++---- runcoms/zpreztorc | 14 +++++++++----- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/modules/utility/README.md b/modules/utility/README.md index 57e3b07d58..9e9e34cac1 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -65,17 +65,13 @@ Aliases - `_` executes a command as another user (`sudo`). - `b` opens the default web browser. - - `cp` copies files and directories interactively. - `diffu` shorthand for `diff --unified` - `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`). - - `rm` removes files and directories interactively. - `sa` search aliases for a word. - `type` displays all the attribute values of a shell parameter. @@ -111,6 +107,19 @@ Aliases - `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, you can disable it by adding +`zstyle ':prezto:module:utility' safe-ops no` to your zpreztorc. + +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. + ### Miscellaneous - `http-serve` serves a directory via HTTP. diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 66f88d7fab..fcf1204cd5 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -171,11 +171,6 @@ zstyle ':prezto:module:prompt' theme 'sorin' # Set the terminal multiplexer title format. # zstyle ':prezto:module:terminal:multiplexer-title' format '%s' -# safe-ops is enabled by default. This aliases rm, mv, cp, and ln so that they -# prompt before deleting or copying over files. Set to no to disable this safer -# behavior. -# zstyle ':prezto:module:utility' safe-ops yes - # # Tmux # @@ -191,3 +186,12 @@ zstyle ':prezto:module:prompt' theme 'sorin' # Set the default session name: # zstyle ':prezto:module:tmux:session' name 'YOUR DEFAULT SESSION NAME' + +# +# Utility +# + +# safe-ops is enabled by default. This aliases rm, mv, cp, and ln so that they +# prompt before deleting or copying over files. Set to no to disable this safer +# behavior. +# zstyle ':prezto:module:utility' safe-ops yes From 1221e4030d0315f66eb97e8df9add73513fc5624 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Thu, 6 Jul 2017 14:16:17 -0700 Subject: [PATCH 058/322] Add a .editorconfig file to setup tabstyle preferences With editors that support it it will setup preferences so that it will use 2 spaces as the indent, except in .gitignore and .gitmodules which in our files use tabs. For more info see http://EditorConfig.org --- .editorconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..74766921bd --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +# EditorConfig is awesome: http://EditorConfig.org + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true +[{.gitignore,.gitmodules}] +indent_style = tab From 86de7a8d2eae4466a62259b84c0946e57dd18805 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 11 Jul 2017 12:07:09 -0700 Subject: [PATCH 059/322] Small editorconfig file cleanup --- .editorconfig | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.editorconfig b/.editorconfig index 74766921bd..42dd37a6e8 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,11 +1,9 @@ -# EditorConfig is awesome: http://EditorConfig.org - -# Unix-style newlines with a newline ending every file [*] end_of_line = lf insert_final_newline = true indent_style = space indent_size = 2 trim_trailing_whitespace = true -[{.gitignore,.gitmodules}] + +[{.gitattributes,.gitignore,.gitmodules}] indent_style = tab From d69070268afed774a055557942154e9cac2b0030 Mon Sep 17 00:00:00 2001 From: Khai Do Date: Mon, 17 Apr 2017 22:31:47 -0700 Subject: [PATCH 060/322] add alias for cloning a repo including all submodules --- modules/git/alias.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 9a2a95b5f2..e5071a8a47 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -92,6 +92,7 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then alias gf='git fetch' alias gfa='git fetch --all' alias gfc='git clone' + alias gfcs='git clone --recurse-submodules' alias gfm='git pull' alias gfr='git pull --rebase' From ebae698f707c667cfd77143a1910246921041d11 Mon Sep 17 00:00:00 2001 From: Khai Do Date: Thu, 22 Jun 2017 13:18:16 -0700 Subject: [PATCH 061/322] change alias to gfcr --- modules/git/README.md | 1 + modules/git/alias.zsh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/git/README.md b/modules/git/README.md index d8491d62c5..4d37cbc41e 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -102,6 +102,7 @@ Aliases are enabled by default. You can disable them with: - `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. diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index e5071a8a47..4a5789fe1d 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -92,7 +92,7 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then alias gf='git fetch' alias gfa='git fetch --all' alias gfc='git clone' - alias gfcs='git clone --recurse-submodules' + alias gfcr='git clone --recurse-submodules' alias gfm='git pull' alias gfr='git pull --rebase' From 0f3a5f745e3dd66449f49b4defc101c5ea597a37 Mon Sep 17 00:00:00 2001 From: alan blount Date: Tue, 11 Jul 2017 15:15:24 -0400 Subject: [PATCH 062/322] Detach from tmux if attached, before attach (#1088) If you are in a tmux session, and auto-start is enabled Then you `sudo su` and then `su ` it will re-attach, in a loop. This resolves that problem, by forcing a detach before a (re)attach. --- modules/tmux/init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/tmux/init.zsh b/modules/tmux/init.zsh index aadf6bfcf9..720fb04dee 100644 --- a/modules/tmux/init.zsh +++ b/modules/tmux/init.zsh @@ -37,8 +37,8 @@ if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" ]] && ( \ set-option -t "$tmux_session" destroy-unattached off &> /dev/null fi - # Attach to the 'prezto' session or to the last session used. - exec tmux $_tmux_iterm_integration attach-session + # Attach to the 'prezto' session or to the last session used. (detach first) + exec tmux $_tmux_iterm_integration attach-session -d fi # From d25b251ef7fca67320e2a65f05b4a912c133a19e Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Sun, 17 Jan 2016 13:22:54 -0800 Subject: [PATCH 063/322] git: Add revert to special action contexts revert is very similar to cherry-pick and has a sequence variant. --- modules/git/README.md | 2 ++ modules/git/functions/git-info | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/modules/git/README.md b/modules/git/README.md index 4d37cbc41e..0a31e0027d 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -389,6 +389,8 @@ The following contexts must be enabled with the following zstyle: | rebase | value | Rebasing | rebase-interactive | value | Rebasing interactively | rebase-merge | value | Rebasing merge +| revert | value | Reverting +| revert-sequence | value | Reverting sequence First, format the repository state attributes. For example, to format the branch and remote names, define the following styles. diff --git a/modules/git/functions/git-info b/modules/git/functions/git-info index 8aaa4c32d6..d27365c243 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). +# Gets the Git special action (am, bisect, cherry, merge, rebase, revert). # Borrowed from vcs_info and edited. function _git-action { local action_dir @@ -18,6 +18,8 @@ function _git-action { local rebase_formatted local rebase_interactive_formatted local rebase_merge_formatted + local revert_formatted + local revert_sequence_formatted for action_dir in \ "${git_dir}/rebase-apply" \ @@ -80,6 +82,18 @@ function _git-action { return 0 fi + if [[ -f "${git_dir}/REVERT_HEAD" ]]; then + if [[ -d "${git_dir}/sequencer" ]] ; then + zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' || revert_sequence_formatted='revert-sequence' + print "$revert_sequence_formatted" + else + zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' || revert_formatted='revert' + print "$revert_formatted" + fi + + return 0 + fi + if [[ -f "${git_dir}/BISECT_LOG" ]]; then zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect' print "$bisect_formatted" From 19990c80252a588ef0983fe16c2f001391775af8 Mon Sep 17 00:00:00 2001 From: Demjan Kaluzki Date: Thu, 12 Nov 2015 23:08:47 +0100 Subject: [PATCH 064/322] Add fasd as an external module --- .gitmodules | 3 +++ modules/fasd/external | 1 + modules/fasd/init.zsh | 6 ++---- 3 files changed, 6 insertions(+), 4 deletions(-) create mode 160000 modules/fasd/external diff --git a/.gitmodules b/.gitmodules index 6494149210..ee6967ded4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,3 +19,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 diff --git a/modules/fasd/external b/modules/fasd/external new file mode 160000 index 0000000000..90b531a5da --- /dev/null +++ b/modules/fasd/external @@ -0,0 +1 @@ +Subproject commit 90b531a5daaa545c74c7d98974b54cbdb92659fc diff --git a/modules/fasd/init.zsh b/modules/fasd/init.zsh index fc2142510c..9a68d0d2b6 100644 --- a/modules/fasd/init.zsh +++ b/modules/fasd/init.zsh @@ -9,10 +9,8 @@ # Load dependencies. pmodload 'editor' -# Return if requirements are not found. -if (( ! $+commands[fasd] )); then - return 1 -fi +# Source module file. +source "${0:h}/external/fasd" || return 1 # # Initialization From 04bfb5131b63c626062af535a1c429f9ff303ca4 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 11 Jul 2017 12:42:55 -0700 Subject: [PATCH 065/322] fasd: fall back to submodule only if command is missing --- modules/fasd/init.zsh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/fasd/init.zsh b/modules/fasd/init.zsh index 9a68d0d2b6..44d6297517 100644 --- a/modules/fasd/init.zsh +++ b/modules/fasd/init.zsh @@ -9,8 +9,11 @@ # Load dependencies. pmodload 'editor' -# Source module file. -source "${0:h}/external/fasd" || return 1 +# If the command doesn't exist externally, we need to fall back to the bundled +# submodule. +if (( ! $+commands[fasd] )); then + source "${0:h}/external/fasd" || return 1 +fi # # Initialization From b0c85eddf6bee4d75ca9920c9c6180ab7ff1962a Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 4 Aug 2016 15:57:16 -0500 Subject: [PATCH 066/322] [command-not-found] Load brew 'command-not-found' if homebrew tap is available Homebrew has _official_ tap that supports `command-not-found`. Enable it when possible. --- modules/command-not-found/init.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/command-not-found/init.zsh b/modules/command-not-found/init.zsh index 2d9236a00b..0e778031f1 100644 --- a/modules/command-not-found/init.zsh +++ b/modules/command-not-found/init.zsh @@ -3,6 +3,7 @@ # # Authors: # Joseph Jon Booker +# Indrajit Raychaudhuri # # Load command-not-found on Debian-based distributions. @@ -11,6 +12,9 @@ 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 From c1a8fc0469312d4f2ee505a487964509bcf0e8cc Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 13 Jul 2017 16:41:33 -0500 Subject: [PATCH 067/322] Cleanup spurious whitespace --- modules/git/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/git/README.md b/modules/git/README.md index 0a31e0027d..df41d2eb41 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -65,7 +65,7 @@ Aliases are enabled by default. You can disable them with: - `gcam` stages all modified and deleted files, and records changes to the repository with the given message. - `gco` checks out a branch or paths to work tree. - `gcO` checks out hunks from the index or the tree interactively. - - `gcf` amends the tip of the current branch using the same log message as *HEAD*. + - `gcf` amends the tip of the current branch using the same log message as *HEAD*. - `gcSf` amends the tip of the current branch using the same log message as *HEAD*. (Signed) - `gcF` amends the tip of the current branch. - `gcSF` amends the tip of the current branch. (Signed) @@ -425,4 +425,4 @@ Authors [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 \ No newline at end of file +[10]: https://github.com/blog/985-git-io-github-url-shortener From 90071d3ad062c4969b1d2e8512e9238524b90981 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 14 Jul 2017 13:28:29 -0700 Subject: [PATCH 068/322] utility: fix completion for rsync and scp --- modules/utility/init.zsh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index e9c20b2125..a3cb240aaa 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -41,8 +41,8 @@ alias ftp='noglob ftp' alias history='noglob history' alias locate='noglob locate' alias rake='noglob rake' -alias rsync='noglob rsync_scp_wrap rsync' -alias scp='noglob rsync_scp_wrap scp' +alias rsync='noglob rsync_wrap' +alias scp='noglob scp_wrap' # This function wraps rsync and scp so that remote paths are not globbed # but local paths are globbed. This is because the programs have their own # globbing for remote paths. The wrap function globs args starting in / and ./ @@ -61,6 +61,15 @@ function rsync_scp_wrap { esac; done command $cmd "${(@)args}" } +function rsync_wrap { + rsync_scp_wrap "rsync" "$@" +} +function scp_wrap { + rsync_scp_wrap "scp" "$@" +} +compdef _rsync rsync_wrap +compdef _scp scp_wrap + alias sftp='noglob sftp' # Define general aliases. From f236344fc8929d63c576ccfb2e4909d9b6647a97 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 15 Jul 2017 00:53:22 -0500 Subject: [PATCH 069/322] [utility] Remove premature call to `compdef` This is a temporary fix to work-around a minor regression in 90071d3. --- modules/utility/init.zsh | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index a3cb240aaa..101e8a4175 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -67,8 +67,6 @@ function rsync_wrap { function scp_wrap { rsync_scp_wrap "scp" "$@" } -compdef _rsync rsync_wrap -compdef _scp scp_wrap alias sftp='noglob sftp' From cb4be65d290e58917fc471281b3c06b6507a7d42 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Mon, 17 Jul 2017 01:14:26 -0500 Subject: [PATCH 070/322] [utility] Update documentation for 'safe-ops' Update formatting and wordings to be more consistent with rest of prezto documentation. --- modules/utility/README.md | 8 +++++--- runcoms/zpreztorc | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/utility/README.md b/modules/utility/README.md index 9e9e34cac1..ed9db39e67 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -109,9 +109,11 @@ Aliases ### Safe ops -By default, `cp`,`ln`, `mv`, and `rm` are aliased to their interactive variants. -If this is not desired, you can disable it by adding -`zstyle ':prezto:module:utility' safe-ops no` to your zpreztorc. +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: diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index fcf1204cd5..9fbc4f6aab 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -191,7 +191,7 @@ zstyle ':prezto:module:prompt' theme 'sorin' # Utility # -# safe-ops is enabled by default. This aliases rm, mv, cp, and ln so that they -# prompt before deleting or copying over files. Set to no to disable this safer +# 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 +# zstyle ':prezto:module:utility' safe-ops 'yes' From 46e34d30b8648cbd9309e05a657588aa8962fccf Mon Sep 17 00:00:00 2001 From: Karim Benbouali Date: Wed, 19 Jul 2017 10:28:58 +0200 Subject: [PATCH 071/322] module(homebrew): add outdated options for cask and brew commands --- modules/homebrew/init.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index 1196fa5740..19a3897838 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -22,6 +22,7 @@ alias brewl='brew list' alias brews='brew search' alias brewu='brew update && brew upgrade' alias brewx='brew remove' +alias brewo='brew outdated' # Homebrew Cask alias cask='brew cask' @@ -31,3 +32,4 @@ alias caski='brew cask install' alias caskl='brew cask list' alias casks='brew cask search' alias caskx='brew cask uninstall' +alias casko='brew cask outdated' From 2db7f62c2b1ad2199e6e1a20369c62dd35e4b625 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Wed, 19 Jul 2017 10:41:39 -0700 Subject: [PATCH 072/322] [homebrew] Add documentation for brewo and casko --- modules/homebrew/README.md | 2 ++ modules/homebrew/init.zsh | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/homebrew/README.md b/modules/homebrew/README.md index 84b43865db..98019fdfce 100644 --- a/modules/homebrew/README.md +++ b/modules/homebrew/README.md @@ -12,6 +12,7 @@ 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 Homebrew and formulae. - `brewx` uninstalls a formula. @@ -23,6 +24,7 @@ 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 19a3897838..e517c0a5e0 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -19,10 +19,10 @@ 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 brewx='brew remove' -alias brewo='brew outdated' # Homebrew Cask alias cask='brew cask' @@ -30,6 +30,6 @@ 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' -alias casko='brew cask outdated' From 608f291ad3c5955f4b6c413adbef2b0a820ef65e Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 20 Jul 2017 23:11:00 -0500 Subject: [PATCH 073/322] [utility] Reuse interactive aliases when 'safe-ops' is set When `safe-ops` is set, we can reuse the aliases that are already available. --- modules/utility/init.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 101e8a4175..aa815e6402 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -89,10 +89,10 @@ 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="${aliases[rm]:-rm} -i" - alias mv="${aliases[mv]:-mv} -i" - alias cp="${aliases[cp]:-cp} -i" - alias ln="${aliases[ln]:-ln} -i" + alias rm='rmi' + alias mv='mvi' + alias cp='cpi' + alias ln='lni' fi # ls From bcbaea27aff98abcc7ba8d5088b2215977cd8597 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 22 Jul 2017 13:01:43 -0500 Subject: [PATCH 074/322] [python] Detect actual `pip` command available for generating completion cache We cannot always assume availability of `pip`, it can be `pip2` or `pip3` instead. We detect the first available one and use it for generating the completion cache. --- modules/python/init.zsh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 7ed3428f78..d95b28a62f 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -106,16 +106,21 @@ if zstyle -T ':prezto:module:python' skip-virtualenvwrapper-init; then fi # Load PIP completion. -if (( $+commands[pip] )); then +if (( $#commands[(i)pip(|[23])] )); then cache_file="${0:h}/cache.zsh" - if [[ "$commands[pip]" -nt "$cache_file" || ! -s "$cache_file" ]]; then + # Detect and use first one available 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 completion --zsh | sed -e "s|compctl -K [-_[:alnum:]]* pip|& pip2 pip3|" >! "$cache_file" 2> /dev/null + $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 + unset pip_command fi # From ac628c9059af11a905240bd6c9500ea1d352032a Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 20 Jul 2017 20:07:29 -0500 Subject: [PATCH 075/322] [general] Switch code block formatting to use fence formatting Changes: * Indented code block doesn't support syntax highlighting, use fenced formatting (```) instead for better syntax highlighting * Wrap commands/functions in backticks * Typo fixes --- README.md | 32 +++++---- modules/README.md | 4 +- modules/autosuggestions/README.md | 8 ++- modules/editor/README.md | 32 ++++++--- modules/git/README.md | 34 ++++++--- modules/gnu-utility/README.md | 4 +- modules/gpg/README.md | 4 +- modules/history-substring-search/README.md | 20 ++++-- modules/node/README.md | 6 +- modules/pacman/README.md | 8 ++- modules/perl/README.md | 24 ++++--- modules/prompt/README.md | 82 ++++++++++++++-------- modules/python/README.md | 12 +++- modules/ruby/README.md | 4 +- modules/screen/README.md | 8 ++- modules/ssh/README.md | 4 +- modules/syntax-highlighting/README.md | 28 +++++--- modules/terminal/README.md | 16 +++-- modules/tmux/README.md | 24 +++++-- modules/utility/README.md | 16 +++-- modules/wakeonlan/README.md | 8 ++- 21 files changed, 260 insertions(+), 118 deletions(-) diff --git a/README.md b/README.md index f90888c616..2f382f9b37 100644 --- a/README.md +++ b/README.md @@ -13,21 +13,25 @@ version is 4.3.17. 1. Launch Zsh: - `zsh` + ```console + zsh + ``` 2. Clone the repository: - `git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"` + ```console + git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" + ``` 3. Create a new Zsh configuration by copying the Zsh configuration files provided: - ``` - setopt EXTENDED_GLOB - for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do - ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" - done - ``` + ```sh + setopt EXTENDED_GLOB + for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do + ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" + done + ``` Note: If you already have any of the given config files, ln will error. In simple cases you can add `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to @@ -37,7 +41,9 @@ version is 4.3.17. 4. Set Zsh as your default shell: - `chsh -s /bin/zsh` + ```console + chsh -s /bin/zsh + ``` 5. Open a new Zsh terminal window or tab. @@ -57,9 +63,11 @@ into the `$ZPREZTODIR` directory and resolve them yourself. To pull the latest changes and update submodules manually: - cd $ZPREZTODIR - git pull - git submodule update --init --recursive +```console +cd $ZPREZTODIR +git pull +git submodule update --init --recursive +``` Usage ----- diff --git a/modules/README.md b/modules/README.md index db851f3695..1c2cdc54d8 100644 --- a/modules/README.md +++ b/modules/README.md @@ -3,7 +3,9 @@ Modules Load modules in *zpreztorc*. The order matters. - zstyle ':prezto:load' pmodule 'environment' 'terminal' +```sh +zstyle ':prezto:load' pmodule 'environment' 'terminal' +``` Archive ------- diff --git a/modules/autosuggestions/README.md b/modules/autosuggestions/README.md index 7024379817..a94d2ae63f 100644 --- a/modules/autosuggestions/README.md +++ b/modules/autosuggestions/README.md @@ -35,11 +35,15 @@ positive results. To enable highlighting for this module only, add the following line to *zpreztorc*: - zstyle ':prezto:module:autosuggestions' color 'yes' +```sh +zstyle ':prezto:module:autosuggestions' color 'yes' +``` To set the query found color, add the following line to *zpreztorc*: - zstyle ':prezto:module:autosuggestions:color' found '' +```sh +zstyle ':prezto:module:autosuggestions:color' found '' +``` Authors ------- diff --git a/modules/editor/README.md b/modules/editor/README.md index 78a7ea3824..1bc976926e 100644 --- a/modules/editor/README.md +++ b/modules/editor/README.md @@ -11,21 +11,27 @@ Settings To enable key bindings, add the following to *zpreztorc*, and replace 'bindings' with 'emacs' or 'vi'. - zstyle ':prezto:module:editor' key-bindings 'bindings' +```sh +zstyle ':prezto:module:editor' key-bindings 'bindings' +``` ### Dot Expansion To enable the auto conversion of .... to ../.., add the following to *zpreztorc*. - zstyle ':prezto:module:editor' dot-expansion 'yes' +```sh +zstyle ':prezto:module:editor' dot-expansion 'yes' +``` ### PS Context To enable the prompt context to be set, add the following to your *zpreztorc*. - zstyle ':prezto:module:editor' ps-context 'yes' +```sh +zstyle ':prezto:module:editor' ps-context 'yes' +``` Theming ------- @@ -33,27 +39,37 @@ Theming To indicate when the editor is in the primary keymap (emacs or viins), add the following to your `theme_prompt_setup` function. - zstyle ':prezto:module:editor:info:keymap:primary' format '>>>' +```sh +zstyle ':prezto:module:editor:info:keymap:primary' format '>>>' +``` To indicate when the editor is in the primary keymap (emacs or viins) insert mode, add the following to your `theme_prompt_setup` function. - zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I' +```sh +zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I' +``` To indicate when the editor is in the primary keymap (emacs or viins) overwrite mode, add the following to your `theme_prompt_setup` function. - zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O' +```sh +zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O' +``` To indicate when the editor is in the alternate keymap (vicmd), add the following to your `theme_prompt_setup` function. - zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<' +```sh +zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<' +``` To indicate when the editor is completing, add the following to your `theme_prompt_setup` function. - zstyle ':prezto:module:editor:info:completing' format '...' +```sh +zstyle ':prezto:module:editor:info:completing' format '...' +``` Then add `$editor_info[context]`, where context is *keymap*, *insert*, or *overwrite*, to `$PROMPT` or `$RPROMPT`. diff --git a/modules/git/README.md b/modules/git/README.md index df41d2eb41..bd67f712cc 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -15,14 +15,18 @@ The format of the [git-log][8] output is configurable via the following style, where context is *brief*, *oneline*, and *medium*, which will be passed to the `--pretty=format:` switch. - zstyle ':prezto:module:git:log:context' format '' +```sh +zstyle ':prezto:module:git:log:context' format '' +``` ### Status Retrieving the status of a repository with submodules can take a long time. Submodules may be ignored when they are *dirty*, *untracked*, *all*, or *none*. - zstyle ':prezto:module:git:status:ignore' submodules 'all' +```sh +zstyle ':prezto:module:git:status:ignore' submodules 'all' +``` This setting affects all aliases and functions that call `git-status`. @@ -31,7 +35,9 @@ Aliases Aliases are enabled by default. You can disable them with: - zstyle ':prezto:module:git:alias' skip 'yes' +```sh +zstyle ':prezto:module:git:alias' skip 'yes' +``` ### Git @@ -335,7 +341,9 @@ To display information about the current repository in a prompt, define the following styles in the `prompt_name_setup` function, where the syntax for setting a style is as follows. - zstyle ':prezto:module:git:info:context:subcontext' format 'string' +```sh +zstyle ':prezto:module:git:info:context:subcontext' format 'string' +``` ### Main Contexts @@ -362,7 +370,9 @@ setting a style is as follows. The following contexts must be enabled with the following zstyle: - zstyle ':prezto:module:git:info' verbose 'yes' +```sh +zstyle ':prezto:module:git:info' verbose 'yes' +``` ### Verbose Contexts @@ -395,14 +405,18 @@ The following contexts must be enabled with the following zstyle: First, format the repository state attributes. For example, to format the branch and remote names, define the following styles. - zstyle ':prezto:module:git:info:branch' format 'branch:%b' - zstyle ':prezto:module:git:info:remote' format 'remote:%R' +```sh +zstyle ':prezto:module:git:info:branch' format 'branch:%b' +zstyle ':prezto:module:git:info:remote' format 'remote:%R' +``` Second, format how the above attributes are displayed in prompts. - zstyle ':prezto:module:git:info:keys' format \ - 'prompt' ' git(%b)' \ - 'rprompt' '[%R]' +```sh +zstyle ':prezto:module:git:info:keys' format \ + 'prompt' ' git(%b)' \ + 'rprompt' '[%R]' +``` Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to `$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook diff --git a/modules/gnu-utility/README.md b/modules/gnu-utility/README.md index 34bc6635aa..7e62a176c2 100644 --- a/modules/gnu-utility/README.md +++ b/modules/gnu-utility/README.md @@ -20,7 +20,9 @@ Settings To use a different prefix, add the following to *zpreztorc*, and replace 'g' with the desired prefix: - zstyle ':prezto:module:gnu-utility' prefix 'g' +```sh +zstyle ':prezto:module:gnu-utility' prefix 'g' +``` Authors ------- diff --git a/modules/gpg/README.md b/modules/gpg/README.md index 80e91d0ff6..be3c1a925c 100644 --- a/modules/gpg/README.md +++ b/modules/gpg/README.md @@ -9,7 +9,9 @@ To enable OpenSSH Agent protocol emulation, and make `gpg-agent` a drop-in replacement for `ssh-agent`, add the following line to *~/.gnupg/gpg-agent.conf*: - enable-ssh-support +```conf +enable-ssh-support +``` When OpenSSH Agent protocol emulation is enabled, this module will load the SSH module for additional processing. diff --git a/modules/history-substring-search/README.md b/modules/history-substring-search/README.md index 79714fa921..0da63dcc74 100644 --- a/modules/history-substring-search/README.md +++ b/modules/history-substring-search/README.md @@ -24,7 +24,9 @@ Settings To enable case-sensitivity for this module only, add the following line to *zpreztorc*: - zstyle ':prezto:module:history-substring-search' case-sensitive 'yes' +```sh +zstyle ':prezto:module:history-substring-search' case-sensitive 'yes' +``` ### Highlighting @@ -34,19 +36,27 @@ positive results. To enable highlighting for this module only, add the following line to *zpreztorc*: - zstyle ':prezto:module:history-substring-search' color 'yes' +```sh +zstyle ':prezto:module:history-substring-search' color 'yes' +``` To set the query found color, add the following line to *zpreztorc*: - zstyle ':prezto:module:history-substring-search:color' found '' +```sh +zstyle ':prezto:module:history-substring-search:color' found '' +``` To set the query not found color, add the following line to *zpreztorc*: - zstyle ':prezto:module:history-substring-search:color' not-found '' +```sh +zstyle ':prezto:module:history-substring-search:color' not-found '' +``` To set the search globbing flags, add the following line to *zpreztorc*: - zstyle ':prezto:module:history-substring-search' globbing-flags '' +```sh +zstyle ':prezto:module:history-substring-search' globbing-flags '' +``` Authors ------- diff --git a/modules/node/README.md b/modules/node/README.md index 66e9784d99..951f2a7447 100644 --- a/modules/node/README.md +++ b/modules/node/README.md @@ -31,8 +31,10 @@ Theming To display the version number of the current Node.js version, define the following style inside the `prompt_name_setup` function. - # %v - Node.js version. - zstyle ':prezto:module:node:info:version' format 'version:%v' +```sh +# %v - Node.js version. +zstyle ':prezto:module:node:info:version' format 'version:%v' +``` Then add `$node_info[version]` to either `$PROMPT` or `$RPROMPT` and call `node-info` in `prompt_name_preexec` hook function. diff --git a/modules/pacman/README.md b/modules/pacman/README.md index fb07407d69..68ed92049e 100644 --- a/modules/pacman/README.md +++ b/modules/pacman/README.md @@ -10,14 +10,18 @@ Settings To enable a Pacman frontend, for example, [Yaourt][2], add the following line to *zpreztorc*: - zstyle ':prezto:module:pacman' frontend 'yaourt' +```sh +zstyle ':prezto:module:pacman' frontend 'yaourt' +``` If you have enabled color globally in *zpreztorc*, you may disable it for certain commands. To disable `yaourt` highlighting, add the following line to *zpreztorc*: - zstyle ':prezto:module:pacman:yaourt' color 'no' +```sh +zstyle ':prezto:module:pacman:yaourt' color 'no' +``` Aliases ------- diff --git a/modules/perl/README.md b/modules/perl/README.md index cc5a9d3242..092c922478 100644 --- a/modules/perl/README.md +++ b/modules/perl/README.md @@ -14,15 +14,19 @@ Mac OS X in *~/Library/Perl/5.12* by altering the environment. For Perl versions older than 5.14, install *local::lib*. - 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 +```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 +``` Install *cpanminus*: - curl -L http://cpanmin.us | perl - --self-upgrade +```console +curl -L http://cpanmin.us | perl - --self-upgrade +``` Perlbrew -------- @@ -86,11 +90,13 @@ Functions Theming ------- -To display the name of the currach Perl version in a prompt, define the +To display the name of the current Perl version in a prompt, define the following style in the `prompt_name_setup` function. - # %v - perl version. - zstyle ':prezto:module:perl:info:version' format 'version:%v' +```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. diff --git a/modules/prompt/README.md b/modules/prompt/README.md index dc02497746..dd5349e225 100644 --- a/modules/prompt/README.md +++ b/modules/prompt/README.md @@ -6,11 +6,25 @@ 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. - zstyle ':prezto:module:prompt' theme 'name' +```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' +``` Theming ------- @@ -26,7 +40,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, @@ -36,51 +50,57 @@ including a function that displays help or a function used to preview it. The most basic example of this function can be seen below. - function prompt_name_setup { - PROMPT='%m%# ' - RPROMPT='' - } +```sh +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. - 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. - 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 - } +```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 +} +``` ### 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. @@ -93,11 +113,13 @@ a function before you calling it. The most basic example of this function can be seen below. - function prompt_name_precmd { - if (( $+functions[git-info] )); then - git-info - fi - } +```sh +function prompt_name_precmd { + if (( $+functions[git-info] )); then + git-info + fi +} +``` Authors ------- diff --git a/modules/python/README.md b/modules/python/README.md index a554bdf1eb..992af3b025 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -52,14 +52,18 @@ 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. - export PROJECT_HOME="$HOME/Developer" +```sh +export PROJECT_HOME="$HOME/Developer" +``` 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 system site-packages directory. - export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--system-site-packages' +```sh +export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--system-site-packages' +``` ### Additional Options @@ -68,7 +72,9 @@ directory where the root of the project matches a virtualenv name. This can be enabled with: - zstyle ':prezto:module:python:virtualenv' auto-switch 'yes' +```sh +zstyle ':prezto:module:python:virtualenv' auto-switch 'yes' +``` Aliases ------- diff --git a/modules/ruby/README.md b/modules/ruby/README.md index 372d00f1f5..aa4ab645cd 100644 --- a/modules/ruby/README.md +++ b/modules/ruby/README.md @@ -45,7 +45,9 @@ rbenv. To enable auto switching the Ruby version on directory change based on the .ruby-version file, add the following line to *zpreztorc*: - zstyle ':prezto:module:ruby:chruby' auto-switch 'yes' +```sh +zstyle ':prezto:module:ruby:chruby' auto-switch 'yes' +``` Bundler ------- diff --git a/modules/screen/README.md b/modules/screen/README.md index ef96404920..0a9ff07c8a 100644 --- a/modules/screen/README.md +++ b/modules/screen/README.md @@ -13,12 +13,16 @@ 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*: - zstyle ':prezto:module:screen:auto-start' local 'yes' +```sh +zstyle ':prezto:module:screen:auto-start' local 'yes' +``` To enable this feature when launching Zsh in a SSH connection, add the following line to *zpreztorc*: - zstyle ':prezto:module:screen:auto-start' remote 'yes' +```sh +zstyle ':prezto:module:screen:auto-start' remote 'yes' +``` Aliases ------- diff --git a/modules/ssh/README.md b/modules/ssh/README.md index 7324ae9a88..a0a69f0630 100644 --- a/modules/ssh/README.md +++ b/modules/ssh/README.md @@ -14,7 +14,9 @@ Settings To load multiple identities, add the following line to *zpreztorc*: - zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_dsa' 'id_github' +```sh +zstyle ':prezto:module:ssh:load' identities 'id_rsa' 'id_dsa' 'id_github' +``` Authors ------- diff --git a/modules/syntax-highlighting/README.md b/modules/syntax-highlighting/README.md index 87f85bea99..67bbb2004b 100644 --- a/modules/syntax-highlighting/README.md +++ b/modules/syntax-highlighting/README.md @@ -22,7 +22,9 @@ Settings To enable highlighting for this module only, add the following line to *zpreztorc*: - zstyle ':prezto:module:syntax-highlighting' color 'yes' +```sh +zstyle ':prezto:module:syntax-highlighting' color 'yes' +``` ### Highlighters @@ -31,12 +33,14 @@ only enables the *main* highlighter by default. To enable all highlighters, add the following to *zpreztorc*: - zstyle ':prezto:module:syntax-highlighting' highlighters \ - 'main' \ - 'brackets' \ - 'pattern' \ - 'cursor' \ - 'root' +```sh +zstyle ':prezto:module:syntax-highlighting' highlighters \ + 'main' \ + 'brackets' \ + 'pattern' \ + 'cursor' \ + 'root' +``` ### Highlighting Styles @@ -45,10 +49,12 @@ Each syntax highlighter defines styles used to highlight tokens. To highlight, for example, builtins, commands, and functions in blue instead of green, add the following to *zpreztorc*: - zstyle ':prezto:module:syntax-highlighting' styles \ - 'builtin' 'bg=blue' \ - 'command' 'bg=blue' \ - 'function' 'bg=blue' +```sh +zstyle ':prezto:module:syntax-highlighting' styles \ + 'builtin' 'bg=blue' \ + 'command' 'bg=blue' \ + 'function' 'bg=blue' +``` Authors ------- diff --git a/modules/terminal/README.md b/modules/terminal/README.md index 5a607880b8..41a08855ee 100644 --- a/modules/terminal/README.md +++ b/modules/terminal/README.md @@ -11,21 +11,27 @@ Settings To auto set the terminal window and tab titles with the current command or directory, add the following to *zpreztorc*: - zstyle ':prezto:module:terminal' auto-title 'yes' +```sh +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`. - zstyle ':prezto:module:terminal' auto-title 'always' +```sh +zstyle ':prezto:module:terminal' auto-title 'always' +``` ### Title formats To format terminal window and tab titles, add the following to *zpreztorc*: - 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' +```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' +``` `%s` will be replaced with the current working directory path or the currently executing program name. diff --git a/modules/tmux/README.md b/modules/tmux/README.md index 87a83f489a..3d742ba684 100644 --- a/modules/tmux/README.md +++ b/modules/tmux/README.md @@ -13,33 +13,43 @@ 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*: - zstyle ':prezto:module:tmux:auto-start' local 'yes' +```sh +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*: - zstyle ':prezto:module:tmux:auto-start' remote 'yes' +```sh +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: - zstyle ':prezto:module:tmux:session' name 'YOUR DEFAULT SESSION NAME' +```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*: - set-option -g destroy-unattached [on | off] +```conf +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*: - zstyle ':prezto:module:tmux:iterm' integrate 'yes' +```sh +zstyle ':prezto:module:tmux:iterm' integrate 'yes' +``` Read [iTerm2 and tmux Integration][7] for more information. @@ -57,7 +67,9 @@ 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*: - set-option -g default-command "reattach-to-user-namespace -l $SHELL -l" +```conf +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/utility/README.md b/modules/utility/README.md index ed9db39e67..5be6625e31 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -14,19 +14,27 @@ commands. To disable `ls` color, add the following line to *zpreztorc*; when coloring is disabled, type indicators (\*, /, =>, @, =, |, %) will be appended to entries. - zstyle ':prezto:module:utility:ls' color 'no' +```sh +zstyle ':prezto:module:utility:ls' color 'no' +``` To disable `diff` highlighting, add the following line to *zpreztorc*: - zstyle ':prezto:module:utility:diff' color 'no' +```sh +zstyle ':prezto:module:utility:diff' color 'no' +``` To disable `wdiff` highlighting, add the following line to *zpreztorc*: - zstyle ':prezto:module:utility:wdiff' color 'no' +```sh +zstyle ':prezto:module:utility:wdiff' color 'no' +``` To disable `make` highlighting, add the following line to *zpreztorc*: - zstyle ':prezto:module:utility:make' color 'no' +```sh +zstyle ':prezto:module:utility:make' color 'no' +``` Aliases ------- diff --git a/modules/wakeonlan/README.md b/modules/wakeonlan/README.md index 9bde199ecc..dacfa52da4 100644 --- a/modules/wakeonlan/README.md +++ b/modules/wakeonlan/README.md @@ -14,11 +14,15 @@ 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: - 00:11:22:33:44:55:66 192.168.0.255 +```conf +00:11:22:33:44:55:66 192.168.0.255 +``` To wake that device, use the following command: - wake leto +```sh +$ wake leto +``` For more information on the configuration file format, read the [wakeonlan man page][2]. From 17a59bada7d66461584349169d8f65ee606b1a33 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 20 Jul 2017 19:08:19 -0500 Subject: [PATCH 076/322] [prompt] Rename helper function `promptpwd` to `prompt-pwd` for consistency Changes: * In prezto, function names are hyphenated ('-') by convention, rename `promptpwd` to `prompt-pwd` accordingly. * Unset local variable `current_pwd` proactively. * Tweak additional documentation for `prompt-pwd`. --- modules/prompt/README.md | 8 ++++++++ modules/prompt/functions/{promptpwd => prompt-pwd} | 12 +++++++++--- modules/prompt/functions/prompt_damoekri_setup | 2 +- modules/prompt/functions/prompt_paradox_setup | 2 +- modules/prompt/functions/prompt_sorin_setup | 2 +- runcoms/zpreztorc | 4 +++- 6 files changed, 23 insertions(+), 7 deletions(-) rename modules/prompt/functions/{promptpwd => prompt-pwd} (75%) diff --git a/modules/prompt/README.md b/modules/prompt/README.md index dd5349e225..e106f2b80e 100644 --- a/modules/prompt/README.md +++ b/modules/prompt/README.md @@ -26,6 +26,14 @@ in *zpreztorc*. zstyle ':prezto:module:prompt' pwd-length 'short' ``` +### 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*. + + zstyle ':prezto:module:prompt' pwd-length 'short' + Theming ------- diff --git a/modules/prompt/functions/promptpwd b/modules/prompt/functions/prompt-pwd similarity index 75% rename from modules/prompt/functions/promptpwd rename to modules/prompt/functions/prompt-pwd index bf6e227daf..53613e7292 100644 --- a/modules/prompt/functions/promptpwd +++ b/modules/prompt/functions/prompt-pwd @@ -1,7 +1,11 @@ -# prompt setup function common to many prompts -# moved to external function to reduce code redundancy +# +# Prompt setup function commonly used by prompt themes. +# +# Authors: +# Sorin Ionescu +# -# function promptpwd { +# function prompt-pwd { setopt localoptions extendedglob @@ -19,6 +23,8 @@ 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_damoekri_setup b/modules/prompt/functions/prompt_damoekri_setup index 89e4d75836..ca3b09ec71 100644 --- a/modules/prompt/functions/prompt_damoekri_setup +++ b/modules/prompt/functions/prompt_damoekri_setup @@ -16,7 +16,7 @@ prompt_damoekri_precmd() { unsetopt XTRACE KSH_ARRAYS # Format PWD. - _prompt_damoekri_pwd=$(promptpwd) + _prompt_damoekri_pwd=$(prompt-pwd) # Get Git repository information. if (( $+functions[git-info] )); then diff --git a/modules/prompt/functions/prompt_paradox_setup b/modules/prompt/functions/prompt_paradox_setup index c5a8751568..088e77e44c 100644 --- a/modules/prompt/functions/prompt_paradox_setup +++ b/modules/prompt/functions/prompt_paradox_setup @@ -84,7 +84,7 @@ function prompt_paradox_precmd { unsetopt XTRACE KSH_ARRAYS # Format PWD. - _prompt_paradox_pwd=$(promptpwd) + _prompt_paradox_pwd=$(prompt-pwd) # Get Git repository information. if (( $+functions[git-info] )); then diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 3a2a9f71c3..b37af7f843 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -82,7 +82,7 @@ function prompt_sorin_precmd { unsetopt XTRACE KSH_ARRAYS # Format PWD. - _prompt_sorin_pwd=$(promptpwd) + _prompt_sorin_pwd=$(prompt-pwd) # Define prompts. RPROMPT='${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}' diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 9fbc4f6aab..31368d1cce 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -97,7 +97,9 @@ zstyle ':prezto:module:editor' key-bindings 'emacs' # Auto set to 'off' on dumb terminals. zstyle ':prezto:module:prompt' theme 'sorin' -# Set how themes that use promptpwd function display the pwd, can be 'short', 'long', or 'full' +# 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' # From a60fe47359fdef9cbf4798690e66efe973aab363 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Mon, 17 Jul 2017 00:15:45 -0500 Subject: [PATCH 077/322] [utility] Refactor rsync_scp wrapper function and add completion support Changes: - Rename `rsync_scp_wrap` to `noremoteglob` and make it more generally usable - Enable completion support for commands wrapped with `noremoteglob` - Tighten up internal variable usages - Update documentation for 'noremoteglob' function --- modules/utility/README.md | 5 ++- modules/utility/functions/_noremoteglob | 11 ++++++ modules/utility/init.zsh | 49 +++++++++++-------------- 3 files changed, 36 insertions(+), 29 deletions(-) create mode 100644 modules/utility/functions/_noremoteglob diff --git a/modules/utility/README.md b/modules/utility/README.md index 5be6625e31..eeb850d500 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -65,8 +65,8 @@ Aliases - `history` - `locate` - `rake` - - `rsync` - - `scp` + - `rsync` (selectively enabled for local files) + - `scp` (selectively enabled for local files) - `sftp` ### General @@ -149,6 +149,7 @@ 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 new file mode 100644 index 0000000000..de5290e477 --- /dev/null +++ b/modules/utility/functions/_noremoteglob @@ -0,0 +1,11 @@ +#compdef noremoteglob +#autoload + +# +# Completes noremoteglob. +# +# Authors: +# Indrajit Raychaudhuri +# + +_precommand diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index aa815e6402..75e72b26a3 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -41,33 +41,8 @@ alias ftp='noglob ftp' alias history='noglob history' alias locate='noglob locate' alias rake='noglob rake' -alias rsync='noglob rsync_wrap' -alias scp='noglob scp_wrap' -# This function wraps rsync and scp so that remote paths are not globbed -# but local paths are globbed. This is because the programs have their own -# globbing for remote paths. The wrap function globs args starting in / and ./ -# and doesn't glob paths with : in it as these are interpreted as remote paths -# by these programs unless the path starts with / or ./ -function rsync_scp_wrap { - local args=( ) - local cmd="$1" - shift - local i - for i in "$@"; do case $i in - ( ./* ) args+=( ${~i} ) ;; # glob - ( /* ) args+=( ${~i} ) ;; # glob - ( *:* ) args+=( ${i} ) ;; # noglob - ( * ) args+=( ${~i} ) ;; # glob - esac; done - command $cmd "${(@)args}" -} -function rsync_wrap { - rsync_scp_wrap "rsync" "$@" -} -function scp_wrap { - rsync_scp_wrap "scp" "$@" -} - +alias rsync='noglob noremoteglob rsync' +alias scp='noglob noremoteglob scp' alias sftp='noglob sftp' # Define general aliases. @@ -239,3 +214,23 @@ 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}" +} From 24b710f5455bb2218eed6777715d3f377d459282 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 22 Jul 2017 13:56:32 -0500 Subject: [PATCH 078/322] [general] Fix incorrect fenced code indentation --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2f382f9b37..b31edd9ff5 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ version is 4.3.17. 1. Launch Zsh: - ```console - zsh - ``` + ```console + zsh + ``` 2. Clone the repository: From eddbdd941656b591b27a554b119f16b3f01ef2c1 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 22 Jul 2017 14:09:20 -0500 Subject: [PATCH 079/322] Update submodules URLs to use git URLs explicitly Even though GitHub redirects git calls based on user-agent, using git URLs consistently is preferable. --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index ee6967ded4..46e6a0e69d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "modules/autosuggestions/external"] path = modules/autosuggestions/external - url = https://github.com/zsh-users/zsh-autosuggestions + 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 @@ -21,4 +21,4 @@ url = https://github.com/sindresorhus/pure.git [submodule "modules/fasd/external"] path = modules/fasd/external - url = https://github.com/clvv/fasd + url = https://github.com/clvv/fasd.git From 8846db9d4d35758e91a427bca17120d216be99de Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 22 Jul 2017 23:42:51 -0500 Subject: [PATCH 080/322] [node] Always quote files when `source`-ing --- modules/node/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/node/init.zsh b/modules/node/init.zsh index a15bace43e..c225b2fcef 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -12,7 +12,7 @@ if [[ -s "$HOME/.nvm/nvm.sh" ]]; then # 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 + source "$(brew --prefix nvm)/nvm.sh" # Load manually installed nodenv into the shell session. elif [[ -s "$HOME/.nodenv/bin/nodenv" ]]; then From d6276e80254ddb42bc7263b67a8b73e0f2e52999 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 22 Jul 2017 17:43:39 -0500 Subject: [PATCH 081/322] [osx] Support custom keyword used by `mand` to open man pages in Dash.app `zstyle` based customization is now avaialble in *zpreztorc*. --- modules/osx/README.md | 13 +++++++++++++ modules/osx/functions/mand | 5 ++++- runcoms/zpreztorc | 7 +++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/modules/osx/README.md b/modules/osx/README.md index d8eff0ff36..870b486408 100644 --- a/modules/osx/README.md +++ b/modules/osx/README.md @@ -3,6 +3,19 @@ OSX Defines [Mac OS X][1] aliases and functions. +Settings +-------- + +### Dash Keyword + +To change the keyword used by `mand` to open man pages in [_Dash.app_][2] from +its default value of 'manpages', add the following line in *zpreztorc* and +replace the **keyword** with the one configured in [_Dash.app_][2]. + +```sh +zstyle ':prezto:module:osx:man' dash-keyword 'keyword' +``` + Aliases ------- diff --git a/modules/osx/functions/mand b/modules/osx/functions/mand index 7a9653a1fa..b8e958ee3b 100644 --- a/modules/osx/functions/mand +++ b/modules/osx/functions/mand @@ -7,7 +7,8 @@ function mand { if (( $# > 0 )); then - open "dash://manpages:$1" 2>/dev/null + zstyle -s ':prezto:module:osx:man' dash-keyword 'dashkw' || dashkw='manpages' + open "dash://$dashkw:$1" 2>/dev/null if (( $? != 0 )); then print "$0: Dash is not installed" >&2 break @@ -15,6 +16,8 @@ function mand { else print 'What manual page do you want?' >&2 fi + + unset dashkw } mand "$@" diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 31368d1cce..22b5b3d742 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -81,6 +81,13 @@ 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 # From 9f1a41de9015e89c5553289173e2e1a7e5a0b35d Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Mon, 24 Jul 2017 04:00:54 -0700 Subject: [PATCH 082/322] Fix unbound keys in vicmd/viins mode Previously I made a change to try and bind these unbound keys to the main keymap in thoughts that in vicmd or viins mode it would fallback if it wasn't bound in vicmd/viins mode. This turned out not to be the case. Explicitly bind the keys in both viins and vicmd mode as works properly. --- modules/editor/init.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 4e373eea0a..40dbb8f0fa 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -307,7 +307,8 @@ unbound_keys=( "${key_info[PageDown]}" ) for keymap in $unbound_keys; do - bindkey -M main "${keymap}" _prezto-zle-noop + 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 From 9bdc1b35d51407515edb5e82dd3f8635fd771511 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 24 Jul 2017 11:55:02 -0700 Subject: [PATCH 083/322] Migrate sorin prompt to zsh-async (#1385) This includes some improvements by @indrajitr in addition to the main migration. The first step was to avoid PROMPT and RPROMPT modification when possible (which may help resolve some other issues as well relating to zsh crashes with the sorin prompt) then update the displayed git information in a separate variable rather than a command. We use zsh-async for creating and running background tasks. The sorin prompt uses it to update git info without blocking the prompt from displaying (because of how long it can take). In the future it may be worth moving more tasks and more prompts to using this. The move to zsh-async does make the git prompt slower in some circumstances (most noticeable in large repos), but this is a worthwhile tradeoff to avoid the cache file which had a number of potential security holes. We have also switched to adding zsh-async as an external submodule (rather than the version bundled with pure) which may cause some migration headaches, but it will be worth it in the long run. --- .gitmodules | 3 + modules/prompt/external/async | 1 + modules/prompt/functions/async | 2 +- modules/prompt/functions/prompt_sorin_setup | 86 ++++++++++----------- 4 files changed, 46 insertions(+), 46 deletions(-) create mode 160000 modules/prompt/external/async diff --git a/.gitmodules b/.gitmodules index 46e6a0e69d..365b059226 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,6 @@ [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 diff --git a/modules/prompt/external/async b/modules/prompt/external/async new file mode 160000 index 0000000000..28c7a64422 --- /dev/null +++ b/modules/prompt/external/async @@ -0,0 +1 @@ +Subproject commit 28c7a644227a5ad7249193525ef27734781f6a63 diff --git a/modules/prompt/functions/async b/modules/prompt/functions/async index d4b591e1e9..ae0ec558e4 120000 --- a/modules/prompt/functions/async +++ b/modules/prompt/functions/async @@ -1 +1 @@ -../external/pure/async.zsh \ No newline at end of file +../external/async/async.zsh \ No newline at end of file diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index b37af7f843..8eca6f6bb1 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -32,49 +32,33 @@ # Load dependencies. pmodload 'helper' -prompt_sorin_git_info() { - 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 +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 fi - - # Reset PID. - _prompt_sorin_precmd_async_pid=0 - - # Redisplay prompt. + else + # Git target detected, update the git fragment and redisplay the prompt. + _prompt_sorin_git="${_git_target}${_git_post_target}" zle && zle reset-prompt fi } -function prompt_sorin_precmd_async { - # Get Git repository information. +function prompt_sorin_async_git { + cd -q "$1" if (( $+functions[git-info] )); then git-info - ### TODO XXX - # This section exists to patch over vulnerabilities when sourcing the - # file in $_prompt_sorin_precmd_async_data. Without it if a branch is named - # $foo it will expand if we have a $foo variable, and a branch named - # $(IFS=_;cmd=rm_-rf_~;$cmd) could delete the users home directory. - # This is a stopgap to prevent code execution and fix the vulnerability, - # but it eventually needs to be removed in favor of zsh_async and not using - # a file to store the prompt data in. - ### - local tmp_prompt_var=$(typeset -p git_info) - # Replace all $ with $\ to escape - tmp_prompt_var=${tmp_prompt_var//\$/\\$} - # Unescape the first \$ as it's our $( ) - tmp_prompt_var=${tmp_prompt_var:s/\\$/\$} - # Escape all backticks ` to \` - tmp_prompt_var=${tmp_prompt_var//\`/\\\`} - printf "%s\n" "$tmp_prompt_var" >! "$_prompt_sorin_precmd_async_data" + print ${git_info[status]} fi - - # Signal completion to parent process. - kill -WINCH $$ } function prompt_sorin_precmd { @@ -84,18 +68,21 @@ function prompt_sorin_precmd { # Format PWD. _prompt_sorin_pwd=$(prompt-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. - if (( _prompt_sorin_precmd_async_pid > 0 )); then - kill -KILL "$_prompt_sorin_precmd_async_pid" &>/dev/null + 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 fi # Compute slow commands in the background. - trap prompt_sorin_git_info WINCH - prompt_sorin_precmd_async &! - _prompt_sorin_precmd_async_pid=$! + async_job async_sorin_git prompt_sorin_async_git "$PWD" } function prompt_sorin_setup { @@ -107,6 +94,7 @@ function prompt_sorin_setup { # 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 @@ -133,11 +121,19 @@ 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' '$(coalesce "%b" "%p" "%c")%s%A%B%S%a%d%m%r%U%u' + 'status' '%b %p %c:%s%A%B%S%a%d%m%r%U%u' + + # 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='' # 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='' + RPROMPT='${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}${_prompt_sorin_git}' SPROMPT='zsh: correct %F{1}%R%f to %F{2}%r%f [nyae]? ' } From e364eac8f567376c602d7a992c6aa293d310f249 Mon Sep 17 00:00:00 2001 From: Stephen Larew Date: Sat, 22 Jul 2017 11:55:34 -0400 Subject: [PATCH 084/322] ssh: update README to reflect macOS changes --- modules/ssh/README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/modules/ssh/README.md b/modules/ssh/README.md index a0a69f0630..a1727b9a15 100644 --- a/modules/ssh/README.md +++ b/modules/ssh/README.md @@ -3,10 +3,6 @@ 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 -------- From 0fc49ac4f0daba372ccc2162e97d284eaff15cd2 Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Tue, 25 Jul 2017 03:07:59 -0600 Subject: [PATCH 085/322] Fix typos --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b31edd9ff5..f52a58356c 100644 --- a/README.md +++ b/README.md @@ -57,9 +57,9 @@ Updating -------- Run `zprezto-update` to automatically check if there is an update to zprezto. -If there are no file conflicts, zprezto its submodules will be automatically -be updated. If there are conflicts you will instructed to go -into the `$ZPREZTODIR` directory and resolve them yourself. +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: From 7e7124e84a0fed90333065f7b6ce2a4dbf49cd1a Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 25 Jul 2017 14:15:04 -0700 Subject: [PATCH 086/322] Update agnoster prompt to include security fix Fixes #1267 --- modules/prompt/external/agnoster | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/agnoster b/modules/prompt/external/agnoster index f8ffdbfbe2..3ad94b6599 160000 --- a/modules/prompt/external/agnoster +++ b/modules/prompt/external/agnoster @@ -1 +1 @@ -Subproject commit f8ffdbfbe2c2d8cd1350eae1b68367802fe6df26 +Subproject commit 3ad94b659910c775a6560c45b1524d23d8c83b09 From 19435b16eaf9af357da0bf547ded114f798d87ae Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Mon, 24 Jul 2017 19:34:11 -0500 Subject: [PATCH 087/322] [python] Improve and document `virtualenvwrapper` initialization flow Changes: * Simplify zstyle name `skip-virtualenvwrapper-init` to `initialize` avoiding double negation in name * Always perform `eval (pyenv virtualenv-init -)` at initialization * Prefer `virtualenvwrapper_lazy` over `virtualenvwrapper` when available * Honor `VIRTUALENVWRAPPER_VIRTUALENV` if it is defined. * Document about `VIRTUALENVWRAPPER_PYTHON` and `VIRTUALENVWRAPPER_VIRTUALENV` (this would be particularly important in macOS after recent homebrew update) * Add additional documentation for `initialize` in _README.md_ and _zpreztorc_ * Add aliases `py2`, `py3` as shortcut for `python2`, `python3` respectively --- modules/python/README.md | 24 +++++++++++++++++++++++ modules/python/init.zsh | 41 +++++++++++++++++++++++----------------- runcoms/zpreztorc | 3 +++ 3 files changed, 51 insertions(+), 17 deletions(-) diff --git a/modules/python/README.md b/modules/python/README.md index 992af3b025..d4cd57165c 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -56,6 +56,20 @@ is used. Replace *Developer* with your projects directory. export PROJECT_HOME="$HOME/Developer" ``` +The variable `VIRTUALENVWRAPPER_PYTHON` tells virtualenvwrapper to use the +specified full path of `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 arguments to pass to `virtualenv`. For example, set the value to *--system-site-packages* to ensure that all new environments have access to the @@ -76,10 +90,20 @@ This can be enabled with: 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' +``` + Aliases ------- - `py` is short for `python`. + - `py2` is short for `python2`. + - `py3` is short for `python3`. Functions --------- diff --git a/modules/python/init.zsh b/modules/python/init.zsh index d95b28a62f..759b903d4e 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -82,26 +82,32 @@ if zstyle -t ':prezto:module:python:virtualenv' auto-switch 'yes'; then add-zsh-hook chpwd _python-workon-cwd fi -# Load virtualenvwrapper into the shell session, unless requested not to -if zstyle -T ':prezto:module:python' skip-virtualenvwrapper-init; then +# 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 # Set the directory where virtual environments are stored. export WORKON_HOME="${WORKON_HOME:-$HOME/.virtualenvs}" # Disable the virtualenv prompt. VIRTUAL_ENV_DISABLE_PROMPT=1 - if (( $+commands[pyenv-virtualenvwrapper] )); then - pyenv virtualenvwrapper - elif (( $+commands[pyenv-virtualenv-init] )); then - eval "$(pyenv virtualenv-init -)" - elif (( $+commands[virtualenvwrapper_lazy.sh] )); then - source "$commands[virtualenvwrapper_lazy.sh]" - elif (( $+commands[virtualenvwrapper.sh] )); then - source "$commands[virtualenvwrapper.sh]" - elif [[ -f /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh ]]; then - source /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh - elif [[ -f /usr/share/virtualenvwrapper/virtualenvwrapper.sh ]]; then - source /usr/share/virtualenvwrapper/virtualenvwrapper.sh + if (( $+commands[pyenv] )); then + if (( $+commands[pyenv-virtualenv-init] )); then + eval "$(pyenv virtualenv-init -)" + fi + if (( $#commands[(i)pyenv-virtualenvwrapper(_lazy|)] )); then + pyenv "${${(@O)commands[(I)pyenv-virtualenvwrapper(_lazy|)]}[1]#pyenv-}" + fi + else + # Try 'virtualenvwrapper' without 'pyenv' wrapper in '$path' and other + # known locations on a Debian based system. + virtenv_sources=( + ${(@Ov)commands[(I)virtualenvwrapper(_lazy|).sh]} + /usr/share/virtualenvwrapper/virtualenvwrapper(_lazy|).sh(OnN) + ) + source "${virtenv_sources[1]}" + unset virtenv_sources fi fi @@ -109,7 +115,7 @@ fi if (( $#commands[(i)pip(|[23])] )); then cache_file="${0:h}/cache.zsh" - # Detect and use first one available among 'pip', 'pip2', 'pip3' variants + # 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 @@ -119,8 +125,7 @@ if (( $#commands[(i)pip(|[23])] )); then fi source "$cache_file" - unset cache_file - unset pip_command + unset cache_file pip_command fi # @@ -128,3 +133,5 @@ fi # alias py='python' +alias py2='python2' +alias py3='python3' diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 22b5b3d742..9a768df7a3 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -123,6 +123,9 @@ zstyle ':prezto:module:prompt' theme 'sorin' # 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 # From 9b6bf4a7cd0f05600fd5ea9c60d330136aebc666 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Wed, 26 Jul 2017 15:16:40 -0500 Subject: [PATCH 088/322] [completion] Support ignoring '/etc/hosts' entries in host completion Entries from static '/etc/hosts' can now be ignored via 'zstyle' based configuration. Both IP address and corresponding hostname will be ignored during host completion. However, some of the entries ignored from '/etc/hosts' still might appear during completion because of their presence in 'ssh' configuration ('~/.ssh/config') or history ('~/.ssh/ssh_hosts', '~/.ssh/known_hosts' etc.). --- modules/completion/README.md | 17 +++++++++++++++++ modules/completion/init.zsh | 9 +++++++-- runcoms/zpreztorc | 8 ++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/modules/completion/README.md b/modules/completion/README.md index aaa86fdd2b..7efb3d96a8 100644 --- a/modules/completion/README.md +++ b/modules/completion/README.md @@ -6,6 +6,23 @@ the [zsh-completions][1] project. This module must be loaded **after** the *utility* module. +Settings +-------- + +### Ignore */etc/hosts* Entries + +To ignore certain entries from static */etc/hosts* for host completion, add the +following lines in *zpreztorc* with the IP addresses of the hosts as they +appear in */etc/hosts*. Both IP address and the corresponding hostname will be +ignored during host completion. However, some of the entries ignored from +*/etc/hosts* still might appear during completion because of their presence in +*ssh* configuration or history). + +```sh +zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \ + '0.0.0.0' '127.0.0.1' +``` + Contributors ------------ diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index ca2117b4ed..e4f6a33755 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -102,12 +102,17 @@ zstyle ':completion:*:history-words' menu yes # Environmental Variables zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-} -# Populate hostname completion. +# Populate hostname completion. But allow ignoring custom entries from static +# */etc/hosts* which might be uninteresting. +zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores 'etc_host_ignores' +etc_host_ignores=('\#' $etc_host_ignores) + zstyle -e ':completion:*:hosts' hosts 'reply=( ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } - ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*} + ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%${(j:*|:)~etc_host_ignores}*} ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}} )' +unset etc_host_ignores # Don't complete uninteresting users... zstyle ':completion:*:*:*:users' ignored-patterns \ diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 9a768df7a3..0b7a83769e 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -41,6 +41,14 @@ 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 # From 591d087ccc85e02e5321fa988bf2f7ecdd076839 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 27 Jul 2017 12:04:55 -0500 Subject: [PATCH 089/322] [completion] Allow ignores for '/etc/hosts' entries to be dynamic By keeping the variable `_etc_host_ignores` around, it can be resolved lazily which is turn should allow selective ignores on a per invocation basis. Also, `'\#'` doesn't need to be added to `_etc_host_ignores` anymore. It is enforced inline. --- modules/completion/init.zsh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index e4f6a33755..8c509a6862 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -104,15 +104,13 @@ zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-va # 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' -etc_host_ignores=('\#' $etc_host_ignores) +zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores' zstyle -e ':completion:*:hosts' hosts 'reply=( ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } - ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%${(j:*|:)~etc_host_ignores}*} + ${=${(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 }:#*\**}:#*\?*}} )' -unset etc_host_ignores # Don't complete uninteresting users... zstyle ':completion:*:*:*:users' ignored-patterns \ From b3c7d21d31ba3f5b1444b1d20066377aae898542 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 28 Jul 2017 00:43:29 -0500 Subject: [PATCH 090/322] Adjust GitHub templates with commented lines --- .github/ISSUE_TEMPLATE.md | 9 ++++----- .github/PULL_REQUEST_TEMPLATE.md | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 444379c1a9..e39ca09868 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,16 +1,15 @@ -Please check if a similar issue already exists or has been closed before before opening your issue. + ### Description - -[Description of the bug or feature] + ### Expected behavior -[What you expected to happen] + ### Actual behavior -[What actually happened] + ### Steps to Reproduce diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 2b2f70bfb9..b8548b6ce6 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,5 @@ -Please be sure to check out our [contributing guidelines](https://github.com/sorin-ionescu/prezto/blob/master/CONTRIBUTING.md) before submitting your pull request. +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 # From 3f556400e70a8003a484836b5c5d4a384468d1ca Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 28 Jul 2017 10:24:45 -0700 Subject: [PATCH 091/322] Avoid setting TMPDIR and make sure all modules handle that properly Fixes #1206 --- modules/gpg/init.zsh | 2 +- runcoms/zprofile | 13 ------------- runcoms/zshenv | 2 +- 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/modules/gpg/init.zsh b/modules/gpg/init.zsh index f21c8cfba4..3d80a46cdc 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" +_gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env.$UID" # Start gpg-agent if not started. if [[ -z "$GPG_AGENT_INFO" && ! -S "${GNUPGHOME:-$HOME/.gnupg}/S.gpg-agent" ]]; then diff --git a/runcoms/zprofile b/runcoms/zprofile index 04742d1fb2..b5eac2eed9 100644 --- a/runcoms/zprofile +++ b/runcoms/zprofile @@ -61,16 +61,3 @@ 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 -# -# -# Set TMPDIR if the variable is not set/empty or the directory doesn't exist -if [[ -z "${TMPDIR}" ]]; then - export TMPDIR="/tmp/zsh-${UID}" -fi - -if [[ ! -d "${TMPDIR}" ]]; then - mkdir -m 700 "${TMPDIR}" -fi diff --git a/runcoms/zshenv b/runcoms/zshenv index eb16f5d667..2dbf12a8bf 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 || -z "${TMPDIR}" ) && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then +if [[ ( "$SHLVL" -eq 1 && ! -o LOGIN ) && -s "${ZDOTDIR:-$HOME}/.zprofile" ]]; then source "${ZDOTDIR:-$HOME}/.zprofile" fi From 7b5196ca66a28c3555f3ab32b911d009277d49bd Mon Sep 17 00:00:00 2001 From: Mauro Locatelli Date: Thu, 27 Jul 2017 11:39:22 +0200 Subject: [PATCH 092/322] ssh: check ssh-askpass presence under Linux Check the presence of `ssh-askpass`, if `/usr/lib/ssh/x11-ssh-askpass` is present I use it otherwise I require the passphrase in the standard method --- modules/ssh/init.zsh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index 6c073321b8..c0316d2462 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -39,10 +39,11 @@ fi # Load identities. if ssh-add -l 2>&1 | grep -q 'The agent has no identities'; then zstyle -a ':prezto:module:ssh:load' identities '_ssh_identities' - if (( ${#_ssh_identities} > 0 )); then - ssh-add "$_ssh_dir/${^_ssh_identities[@]}" < /dev/null 2> /dev/null + # Check for Linux system and ssh-askpass presence + if [[ "$OSTYPE" == linux* ]] && [[ ! -a /usr/lib/ssh/x11-ssh-askpass ]]; then + ssh-add "${_ssh_identities:+$_ssh_dir/${^_ssh_identities[@]}}" 2> /dev/null else - ssh-add < /dev/null 2> /dev/null + ssh-add "${_ssh_identities:+$_ssh_dir/${^_ssh_identities[@]}}" < /dev/null 2> /dev/null fi fi From a60499f933c52f55dbb9c9f2f7d99cb82c3538de Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 4 Aug 2017 12:54:19 -0500 Subject: [PATCH 093/322] [general] Miscellaneous cleanup and formatting --- init.zsh | 2 +- modules/completion/init.zsh | 6 +++--- modules/git/functions/_git-hub-browse | 4 ++-- modules/git/functions/git-hub-browse | 2 +- modules/node/init.zsh | 2 +- modules/osx/functions/mand | 2 +- modules/osx/functions/pfd | 2 +- modules/osx/functions/tab | 8 ++++---- modules/perl/init.zsh | 3 +-- modules/prompt/functions/prompt_sorin_setup | 4 ++-- modules/terminal/init.zsh | 2 +- 11 files changed, 18 insertions(+), 19 deletions(-) diff --git a/init.zsh b/init.zsh index be565663e7..0c90299ed7 100644 --- a/init.zsh +++ b/init.zsh @@ -30,7 +30,7 @@ function zprezto-update { 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)" + 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}') diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index 8c509a6862..e2cc2d4472 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -107,9 +107,9 @@ zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-va zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores' zstyle -e ':completion:*:hosts' hosts 'reply=( - ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } - ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%(\#${_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))"}%%(\#${_etc_host_ignores:+|${(j:|:)~_etc_host_ignores}})*} + ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2> /dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}} )' # Don't complete uninteresting users... diff --git a/modules/git/functions/_git-hub-browse b/modules/git/functions/_git-hub-browse index 54d223f275..9e6d6f0d5c 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-browse b/modules/git/functions/git-hub-browse index 4e7c314e56..a365a5a9ae 100644 --- a/modules/git/functions/git-hub-browse +++ b/modules/git/functions/git-hub-browse @@ -39,7 +39,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" diff --git a/modules/node/init.zsh b/modules/node/init.zsh index c225b2fcef..127dea7242 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -11,7 +11,7 @@ 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 +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. diff --git a/modules/osx/functions/mand b/modules/osx/functions/mand index b8e958ee3b..2902c76be7 100644 --- a/modules/osx/functions/mand +++ b/modules/osx/functions/mand @@ -8,7 +8,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://$dashkw:$1" 2> /dev/null if (( $? != 0 )); then print "$0: Dash is not installed" >&2 break diff --git a/modules/osx/functions/pfd b/modules/osx/functions/pfd index 41537698c7..264b40ba6b 100644 --- a/modules/osx/functions/pfd +++ b/modules/osx/functions/pfd @@ -7,7 +7,7 @@ # function pfd { -osascript 2>/dev/null < /dev/null < 0 )) && command="${command}; $*" the_app=$( - osascript 2>/dev/null < /dev/null </dev/null < /dev/null </dev/null < /dev/null </dev/null < /dev/null </dev/null + editor-info 2> /dev/null prompt_preview_theme 'sorin' } diff --git a/modules/terminal/init.zsh b/modules/terminal/init.zsh index c7b22b7a5d..2a5b9bed30 100644 --- a/modules/terminal/init.zsh +++ b/modules/terminal/init.zsh @@ -49,7 +49,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}" From 8d7e3e27c7577175330241f0279a805c471d3bf8 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 4 Aug 2017 09:53:01 -0500 Subject: [PATCH 094/322] [python] Detect availability of virtualenv plugins as well as pyenv Just having 'pyenv' available doesn't imply availability of virtualenv pyenv plugins. Check for availability of virtualenv plugins as well before attempting to use pyenv wrapper for virtualenv. --- modules/python/init.zsh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 759b903d4e..715ca2592c 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -92,16 +92,16 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ # Disable the virtualenv prompt. VIRTUAL_ENV_DISABLE_PROMPT=1 - if (( $+commands[pyenv] )); then - if (( $+commands[pyenv-virtualenv-init] )); then - eval "$(pyenv virtualenv-init -)" - fi + # Enable 'virtualenv' with 'pyenv'. + if (( $+commands[pyenv] && $+commands[pyenv-virtualenv-init] )); then + eval "$(pyenv virtualenv-init -)" + # Optionall activate 'virtualenvwrapper' with 'pyenv' is available. if (( $#commands[(i)pyenv-virtualenvwrapper(_lazy|)] )); then pyenv "${${(@O)commands[(I)pyenv-virtualenvwrapper(_lazy|)]}[1]#pyenv-}" fi else - # Try 'virtualenvwrapper' without 'pyenv' wrapper in '$path' and other - # known locations on a Debian based system. + # Fallback to 'virtualenvwrapper' without 'pyenv' wrapper in '$path' + # and other known locations on a Debian based system. virtenv_sources=( ${(@Ov)commands[(I)virtualenvwrapper(_lazy|).sh]} /usr/share/virtualenvwrapper/virtualenvwrapper(_lazy|).sh(OnN) From 5e295b0835a724d0e94b5dc2aa9dbf17feacf70a Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Wed, 9 Aug 2017 15:07:38 -0500 Subject: [PATCH 095/322] [prompt] Remove spurious duplicate section Remove duplication 'Prompt Display Length' section. Also, adjust wrapping for `~`. --- modules/prompt/README.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/modules/prompt/README.md b/modules/prompt/README.md index e106f2b80e..f272f27f24 100644 --- a/modules/prompt/README.md +++ b/modules/prompt/README.md @@ -19,21 +19,13 @@ 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) +following to 'long' (without `~` expansion) or 'full' (with `~` expansion) in *zpreztorc*. ```sh zstyle ':prezto:module:prompt' pwd-length 'short' ``` -### 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*. - - zstyle ':prezto:module:prompt' pwd-length 'short' - Theming ------- From 730fc4690e308208f591798ef992b9bb2f9e2134 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 10 Aug 2017 11:23:26 -0700 Subject: [PATCH 096/322] prompt: add sp option to prompt_setup functions This was a change in zsh 5.4.1 where prompt_sp is now reset on calls to prompt, unlike previous behavior where it was set by default. This restores the previous default behavior. Refs #1423, but is not a complete fix because we need to wait for external prompts to update as well. --- modules/prompt/functions/prompt_cloud_setup | 2 +- modules/prompt/functions/prompt_damoekri_setup | 2 +- modules/prompt/functions/prompt_giddie_setup | 2 +- modules/prompt/functions/prompt_kylewest_setup | 2 +- modules/prompt/functions/prompt_minimal_setup | 2 +- modules/prompt/functions/prompt_nicoulaj_setup | 2 +- modules/prompt/functions/prompt_paradox_setup | 2 +- modules/prompt/functions/prompt_peepcode_setup | 2 +- modules/prompt/functions/prompt_skwp_setup | 2 +- modules/prompt/functions/prompt_smiley_setup | 2 +- modules/prompt/functions/prompt_sorin_setup | 2 +- modules/prompt/functions/prompt_steeef_setup | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/prompt/functions/prompt_cloud_setup b/modules/prompt/functions/prompt_cloud_setup index 3b048df13e..0637208b4e 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 subst) + prompt_opts=(cr percent sp 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 ca3b09ec71..4fe132d6e1 100644 --- a/modules/prompt/functions/prompt_damoekri_setup +++ b/modules/prompt/functions/prompt_damoekri_setup @@ -32,7 +32,7 @@ prompt_damoekri_precmd() { function prompt_damoekri_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent subst) + prompt_opts=(cr percent sp 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 5a14ffe0f3..3c194fb9a0 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 subst) + prompt_opts=(cr percent sp 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 e4ee0c0ef0..70b6a54afe 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 subst) + prompt_opts=(cr percent sp 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 8c07e70ef5..7456ffdb1d 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 subst) + prompt_opts=(cr percent sp 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 241c8b6ea7..447ba1f40a 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 subst) + prompt_opts=(cr percent sp 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 088e77e44c..4f19989daf 100644 --- a/modules/prompt/functions/prompt_paradox_setup +++ b/modules/prompt/functions/prompt_paradox_setup @@ -107,7 +107,7 @@ function prompt_paradox_preexec { function prompt_paradox_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent subst) + prompt_opts=(cr percent sp subst) # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/prompt/functions/prompt_peepcode_setup b/modules/prompt/functions/prompt_peepcode_setup index c70fb9a782..2081961ca4 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 subst) + prompt_opts=(cr percent sp subst) # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/prompt/functions/prompt_skwp_setup b/modules/prompt/functions/prompt_skwp_setup index 1c8f0a90af..f69dcddfe7 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 subst) + prompt_opts=(cr percent sp subst) # Load required functions. autoload -Uz add-zsh-hook diff --git a/modules/prompt/functions/prompt_smiley_setup b/modules/prompt/functions/prompt_smiley_setup index 3066a2dc2b..3c78486d73 100644 --- a/modules/prompt/functions/prompt_smiley_setup +++ b/modules/prompt/functions/prompt_smiley_setup @@ -36,7 +36,7 @@ function prompt_smiley_precmd { function prompt_smiley_setup { unsetopt XTRACE KSH_ARRAYS - prompt_opts=(percent subst) + prompt_opts=(percent sp subst) # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_smiley_precmd diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 9ecc1b094e..6856de60dd 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -88,7 +88,7 @@ function prompt_sorin_precmd { function prompt_sorin_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent subst) + prompt_opts=(cr percent sp subst) _prompt_sorin_precmd_async_pid=0 _prompt_sorin_precmd_async_data=$(mktemp "${TMPDIR:-/tmp}/sorin-prompt-async-XXXXXXXXXX") diff --git a/modules/prompt/functions/prompt_steeef_setup b/modules/prompt/functions/prompt_steeef_setup index 996331fd58..b241f9aa35 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 subst) + prompt_opts=(cr percent sp subst) # Load required functions. autoload -Uz add-zsh-hook From 24e5e49ff299dab1e3f854c89009270fc8580e5c Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 10 Aug 2017 13:39:49 -0700 Subject: [PATCH 097/322] prompt: remove prompt_sp from prompt_smiley_setup as it is not needed --- modules/autosuggestions/external | 2 +- modules/prompt/external/agnoster | 2 +- modules/prompt/external/powerline | 2 +- modules/prompt/external/pure | 2 +- modules/prompt/functions/prompt_smiley_setup | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 2cb6eb6e29..de795f7dd9 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 2cb6eb6e29852e64a146b0284275ecdc0661b082 +Subproject commit de795f7dd92382a8489bd355e1d1e648ecb4ad37 diff --git a/modules/prompt/external/agnoster b/modules/prompt/external/agnoster index 3ad94b6599..f740c1bf32 160000 --- a/modules/prompt/external/agnoster +++ b/modules/prompt/external/agnoster @@ -1 +1 @@ -Subproject commit 3ad94b659910c775a6560c45b1524d23d8c83b09 +Subproject commit f740c1bf32dbca8c63293fd6c13998bb1d1988f2 diff --git a/modules/prompt/external/powerline b/modules/prompt/external/powerline index c48e4c69ef..c66beb0189 160000 --- a/modules/prompt/external/powerline +++ b/modules/prompt/external/powerline @@ -1 +1 @@ -Subproject commit c48e4c69ef5c368ea7cda961ed9d0e298a5ae1fc +Subproject commit c66beb018948604d80419371a084590fade272ce diff --git a/modules/prompt/external/pure b/modules/prompt/external/pure index 04fa7495cf..000a78b613 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit 04fa7495cf8fe3aff8ce286d4517df15066b820a +Subproject commit 000a78b613e53ba7ac8f7770aa840cc2e528b7dd diff --git a/modules/prompt/functions/prompt_smiley_setup b/modules/prompt/functions/prompt_smiley_setup index 3c78486d73..3066a2dc2b 100644 --- a/modules/prompt/functions/prompt_smiley_setup +++ b/modules/prompt/functions/prompt_smiley_setup @@ -36,7 +36,7 @@ function prompt_smiley_precmd { function prompt_smiley_setup { unsetopt XTRACE KSH_ARRAYS - prompt_opts=(percent sp subst) + prompt_opts=(percent subst) # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_smiley_precmd From 2f867d6f22c5ca2e1855d7fa13e890c0f272f769 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 10 Aug 2017 16:21:46 -0700 Subject: [PATCH 098/322] Revert "prompt: remove prompt_sp from prompt_smiley_setup as it is not needed" This reverts commit 24e5e49ff299dab1e3f854c89009270fc8580e5c. --- modules/autosuggestions/external | 2 +- modules/prompt/external/agnoster | 2 +- modules/prompt/external/powerline | 2 +- modules/prompt/external/pure | 2 +- modules/prompt/functions/prompt_smiley_setup | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index de795f7dd9..2cb6eb6e29 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit de795f7dd92382a8489bd355e1d1e648ecb4ad37 +Subproject commit 2cb6eb6e29852e64a146b0284275ecdc0661b082 diff --git a/modules/prompt/external/agnoster b/modules/prompt/external/agnoster index f740c1bf32..3ad94b6599 160000 --- a/modules/prompt/external/agnoster +++ b/modules/prompt/external/agnoster @@ -1 +1 @@ -Subproject commit f740c1bf32dbca8c63293fd6c13998bb1d1988f2 +Subproject commit 3ad94b659910c775a6560c45b1524d23d8c83b09 diff --git a/modules/prompt/external/powerline b/modules/prompt/external/powerline index c66beb0189..c48e4c69ef 160000 --- a/modules/prompt/external/powerline +++ b/modules/prompt/external/powerline @@ -1 +1 @@ -Subproject commit c66beb018948604d80419371a084590fade272ce +Subproject commit c48e4c69ef5c368ea7cda961ed9d0e298a5ae1fc diff --git a/modules/prompt/external/pure b/modules/prompt/external/pure index 000a78b613..04fa7495cf 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit 000a78b613e53ba7ac8f7770aa840cc2e528b7dd +Subproject commit 04fa7495cf8fe3aff8ce286d4517df15066b820a diff --git a/modules/prompt/functions/prompt_smiley_setup b/modules/prompt/functions/prompt_smiley_setup index 3066a2dc2b..3c78486d73 100644 --- a/modules/prompt/functions/prompt_smiley_setup +++ b/modules/prompt/functions/prompt_smiley_setup @@ -36,7 +36,7 @@ function prompt_smiley_precmd { function prompt_smiley_setup { unsetopt XTRACE KSH_ARRAYS - prompt_opts=(percent subst) + prompt_opts=(percent sp subst) # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_smiley_precmd From dd1133d32eb559c66aa3b1f2aee8ad44a7e28942 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 10 Aug 2017 16:23:53 -0700 Subject: [PATCH 099/322] prompt: remove unneeded prompt_opts from smiley prompt --- modules/prompt/functions/prompt_smiley_setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/functions/prompt_smiley_setup b/modules/prompt/functions/prompt_smiley_setup index 3c78486d73..3066a2dc2b 100644 --- a/modules/prompt/functions/prompt_smiley_setup +++ b/modules/prompt/functions/prompt_smiley_setup @@ -36,7 +36,7 @@ function prompt_smiley_precmd { function prompt_smiley_setup { unsetopt XTRACE KSH_ARRAYS - prompt_opts=(percent sp subst) + prompt_opts=(percent subst) # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_smiley_precmd From e6af5f2e91199517bbcc486bd08a893cb80e0828 Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Wed, 16 Aug 2017 11:47:58 -0700 Subject: [PATCH 100/322] Fix typo --- modules/editor/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/README.md b/modules/editor/README.md index 1bc976926e..c27e8642c0 100644 --- a/modules/editor/README.md +++ b/modules/editor/README.md @@ -87,7 +87,7 @@ 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 fear each keymap. +names of each of the keymaps, and just run the command for each keymap. Authors ------- From 9dfa8a67f6a4d667a8071eada5bce97f72737c5d Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Wed, 16 Aug 2017 14:57:54 -0700 Subject: [PATCH 101/322] Fix typo --- runcoms/zprofile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runcoms/zprofile b/runcoms/zprofile index b5eac2eed9..acd774254c 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 the list of directories that cd searches. +# Set the list of directories that cd searches. # cdpath=( # $cdpath # ) From 3194442759d40e8b577615918340db332a3df589 Mon Sep 17 00:00:00 2001 From: Zach Whaley Date: Thu, 17 Aug 2017 15:37:08 -0500 Subject: [PATCH 102/322] Edit pyenv virtualenv-init check to support non-brew installations If the pyenv virtualenv plugin is installed using the [pyenv-installer][1] app script or directly via a [Git clone][2], then the pyenv-virtualenv-init executable, that the `pyenv virtualenv-init` command uses, will not exist in the user's PATH and therefore cannot be found using `$commands[pyenv-virtualenv-init]`. Installing the pyenv-virtualenv plugin in this manner is common among Linux users. Using the pyenv `commands` command, which lists all commands pyenv can run, we can find if the virtualenv-init command is available to pyenv and subsequently the virtualenv plugin, without relying on pyenv-virtualenv-init to exist in the user's PATH. [1]: https://github.com/pyenv/pyenv-installer [2]: https://github.com/pyenv/pyenv-virtualenv#installing-as-a-pyenv-plugin --- modules/python/init.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 715ca2592c..736372805e 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -93,7 +93,9 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ VIRTUAL_ENV_DISABLE_PROMPT=1 # Enable 'virtualenv' with 'pyenv'. - if (( $+commands[pyenv] && $+commands[pyenv-virtualenv-init] )); then + if (( $+commands[pyenv] )) && \ + pyenv commands | command grep -q virtualenv-init + then eval "$(pyenv virtualenv-init -)" # Optionall activate 'virtualenvwrapper' with 'pyenv' is available. if (( $#commands[(i)pyenv-virtualenvwrapper(_lazy|)] )); then From 5b244eeadbfbd30b81fcd433f3e51072996c27c6 Mon Sep 17 00:00:00 2001 From: Jeef Date: Mon, 7 Aug 2017 15:02:20 -0400 Subject: [PATCH 103/322] Update prompt_sorin_setup Added python support --- modules/prompt/functions/prompt_sorin_setup | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 6856de60dd..74bd417a5b 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -81,6 +81,12 @@ function prompt_sorin_precmd { fi 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" } @@ -123,6 +129,10 @@ function prompt_sorin_setup { zstyle ':prezto:module:git:info:keys' format \ 'status' '%b %p %c:%s%A%B%S%a%d%m%r%U%u' + + # Set python-info format + zstyle ':prezto:module:python:info:virtualenv' format '%f%F{208}(%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 @@ -133,7 +143,7 @@ function prompt_sorin_setup { # 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='${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}${_prompt_sorin_git}' + RPROMPT='$python_info[virtualenv] ${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}${_prompt_devel_git}' SPROMPT='zsh: correct %F{1}%R%f to %F{2}%r%f [nyae]? ' } From 4c272a20f612ed81543ccb893ad3bc9d8bb76828 Mon Sep 17 00:00:00 2001 From: Jeef Date: Mon, 7 Aug 2017 15:17:51 -0400 Subject: [PATCH 104/322] Update prompt_sorin_setup Moved ` ` after the virtual env info into the `zstyle` call and out of `RPROMPT` --- modules/prompt/functions/prompt_sorin_setup | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 74bd417a5b..d1d07ce787 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -131,7 +131,7 @@ function prompt_sorin_setup { # Set python-info format - zstyle ':prezto:module:python:info:virtualenv' format '%f%F{208}(%v)%F{7}' + zstyle ':prezto:module:python:info:virtualenv' format '%f%F{208}(%v)%F{7} ' # Get the async worker set up async_start_worker async_sorin_git -n @@ -143,7 +143,7 @@ function prompt_sorin_setup { # 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}⏎%f)${VIM:+" %B%F{6}V%f%b"}${_prompt_devel_git}' + RPROMPT='$python_info[virtualenv]${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}${_prompt_devel_git}' SPROMPT='zsh: correct %F{1}%R%f to %F{2}%r%f [nyae]? ' } From cab4ac54ece92bb6793c255fe2dc1851586a916e Mon Sep 17 00:00:00 2001 From: Jeef Date: Mon, 7 Aug 2017 19:03:02 -0400 Subject: [PATCH 105/322] Update prompt_sorin_setup Addressing a type - and switching from a custom orange to yellow (from default color list) for prompt. --- modules/prompt/functions/prompt_sorin_setup | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index d1d07ce787..a6672a49f4 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -131,7 +131,7 @@ function prompt_sorin_setup { # Set python-info format - zstyle ':prezto:module:python:info:virtualenv' format '%f%F{208}(%v)%F{7} ' + 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 @@ -143,7 +143,7 @@ function prompt_sorin_setup { # 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}⏎%f)${VIM:+" %B%F{6}V%f%b"}${_prompt_devel_git}' + RPROMPT='$python_info[virtualenv]${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}${_prompt_sorin_git}' SPROMPT='zsh: correct %F{1}%R%f to %F{2}%r%f [nyae]? ' } From 5ffc8a07f1a89146b7953b77569a3c50b0146889 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 18 Aug 2017 07:55:34 -0500 Subject: [PATCH 106/322] [python] Ensure availability of virtualenvwrapper file before sourcing it --- modules/python/init.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 736372805e..4b077706f7 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -108,7 +108,10 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ ${(@Ov)commands[(I)virtualenvwrapper(_lazy|).sh]} /usr/share/virtualenvwrapper/virtualenvwrapper(_lazy|).sh(OnN) ) - source "${virtenv_sources[1]}" + if (( $#virtenv_sources )); then + source "${virtenv_sources[1]}" + fi + unset virtenv_sources fi fi From 83ab314b77d7e6bd92b7aed6275ad03018b378c1 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 17 Aug 2017 22:53:25 -0500 Subject: [PATCH 107/322] [python] Refine pyenv based virtualenv management Now that pyenv plugins availability is detected by directly probing 'pyenv', we need to rely on the same mechanism consistently. Further, we perform available pyenv plugin scan with native zsh techniques instead of relying on external commands. --- modules/python/init.zsh | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 4b077706f7..be4848716b 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -92,18 +92,25 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ # Disable the virtualenv prompt. VIRTUAL_ENV_DISABLE_PROMPT=1 - # Enable 'virtualenv' with 'pyenv'. - if (( $+commands[pyenv] )) && \ - pyenv commands | command grep -q virtualenv-init - then + # 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 -)" - # Optionall activate 'virtualenvwrapper' with 'pyenv' is available. - if (( $#commands[(i)pyenv-virtualenvwrapper(_lazy|)] )); then - pyenv "${${(@O)commands[(I)pyenv-virtualenvwrapper(_lazy|)]}[1]#pyenv-}" + + # 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 in '$path' - # and other known locations on a Debian based system. + # 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) @@ -114,6 +121,8 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ unset virtenv_sources fi + + unset pyenv_plugins fi # Load PIP completion. From 9c528efa607053eac234839e625cf5c3ec71751b Mon Sep 17 00:00:00 2001 From: Greg Anders Date: Sat, 26 Aug 2017 11:16:09 -0500 Subject: [PATCH 108/322] Explicitly set PYENV_ROOT --- modules/python/init.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index be4848716b..6f8ae7f128 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -9,10 +9,12 @@ # 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 From a7fb175b20e89a17a4999681e34be35345f5652b Mon Sep 17 00:00:00 2001 From: Foo Chuan Wei Date: Mon, 28 Aug 2017 22:17:45 -0400 Subject: [PATCH 109/322] Fix English mistakes in the autosuggestions module README.md (#1444) * Change 'conjuncture' to 'conjunction' * Fix ambiguous pronoun references --- modules/autosuggestions/README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/autosuggestions/README.md b/modules/autosuggestions/README.md index a94d2ae63f..4d18f9161a 100644 --- a/modules/autosuggestions/README.md +++ b/modules/autosuggestions/README.md @@ -11,11 +11,12 @@ 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 conjuncture with the *syntax-highlighting* module, it -must be loaded **after** it. +If this module is used in conjunction with the *syntax-highlighting* module, +the *syntax-highlighting* module must be loaded **after** this module. -If this module is used in conjuncture with the *history-substring-search* -module, it must be loaded **after** it. +If this module is used in conjunction with the *history-substring-search* +module, the *history-substring-search* module must be loaded **after** this +module. Contributors ------------ From 98f37b3c2faf09b3d0b2387eacd40ff1c497bcde Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Tue, 29 Aug 2017 14:13:39 -0700 Subject: [PATCH 110/322] Update reference to Bombich's rsync --- modules/rsync/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rsync/README.md b/modules/rsync/README.md index a8c32e4d41..b418780b87 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/ccc4/credits#rsync +[2]: https://bombich.com/kb/ccc5/credits#rsync [3]: https://github.com/sorin-ionescu/prezto/issues From 58bcc43bf99ae01fac2e551c58d46dbb078ac77b Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Tue, 29 Aug 2017 15:10:37 -0700 Subject: [PATCH 111/322] Fix typo --- modules/archive/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/archive/README.md b/modules/archive/README.md index 28a2c3b18e..6df58d86e8 100644 --- a/modules/archive/README.md +++ b/modules/archive/README.md @@ -31,7 +31,7 @@ installed: - *.7z* requires `7za`. - *.deb* requires `ar`, `tar`. -Additionally, if `pigz' and/or `pbzip2` are installed, `archive` will use them over +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. From 8fa14ed72f58d14cc1d11a4b2a59edecd90188bc Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Tue, 29 Aug 2017 16:04:44 -0700 Subject: [PATCH 112/322] Drop `easy_install` in docs, everyone now uses `pip` (#1436) --- modules/python/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/python/README.md b/modules/python/README.md index d4cd57165c..bee2eb3b2f 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -28,8 +28,7 @@ documentation. ### Usage -Install packages into the per user site directory with `easy_install --user` or -`pip install --user`. +Install packages into the per user site directory with `pip install --user`. virtualenvwrapper ----------------- From 727f094b0fa8ca26f461a14200b1c241b8801c3a Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Tue, 29 Aug 2017 16:47:06 -0700 Subject: [PATCH 113/322] [python] cleanup readme formatting Anyone want some backticks? :-) --- modules/python/README.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/modules/python/README.md b/modules/python/README.md index bee2eb3b2f..27d18e62d6 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 -------------------------- @@ -33,21 +33,21 @@ Install packages into the per user site directory with `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* +If you wish to use these features, export the variables in [`zshenv`][6]. -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. @@ -55,23 +55,23 @@ is used. Replace *Developer* with your projects directory. export PROJECT_HOME="$HOME/Developer" ``` -The variable `VIRTUALENVWRAPPER_PYTHON` tells virtualenvwrapper to use the -specified full path of `python` interpreter overriding the `$PATH` search. +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 +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 +`--system-site-packages` to ensure that all new environments have access to the system site-packages directory. ```sh @@ -89,7 +89,7 @@ This can be enabled with: zstyle ':prezto:module:python:virtualenv' auto-switch 'yes' ``` -virtualenvwrapper is automatically initialized if pre-requisites are met +`virtualenvwrapper` is automatically initialized if pre-requisites are met (`$VIRTUALENVWRAPPER_VIRTUALENV` is explicitly set or `virtualenv` is in `$PATH`). This can be disabled with: @@ -135,3 +135,4 @@ 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 From 38fb41d66ed6cfa69e337e987977046dcbd5f1d5 Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Tue, 29 Aug 2017 16:40:17 -0700 Subject: [PATCH 114/322] Use backticks rather than italics for paths This is more typical with what I observe elsewhere --- modules/ruby/README.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/modules/ruby/README.md b/modules/ruby/README.md index aa4ab645cd..12848d8649 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][6], which is simpler than both RVM and +Yet another alternative is [chruby][4], which is simpler than both RVM and rbenv. ### Settings @@ -43,7 +43,7 @@ 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*: +`.ruby-version` file, add the following line to [`zpreztorc`][5]: ```sh zstyle ':prezto:module:ruby:chruby' auto-switch 'yes' @@ -53,7 +53,7 @@ Bundler ------- Manage gems that are not meant to be used as commands, such as application -dependencies, with [Bundler][4]. +dependencies, with [Bundler][6]. Aliases ------- @@ -67,14 +67,14 @@ Aliases - `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,13 +99,14 @@ Then add `$ruby_info[version]` to `$PROMPT` or `$RPROMPT` and call Authors ------- -*The authors of this module should be contacted via the [issue tracker][5].* +*The authors of this module should be contacted via the [issue tracker][7].* - [Sorin Ionescu](https://github.com/sorin-ionescu) [1]: http://www.ruby-lang.org [2]: https://rvm.io [3]: https://github.com/sstephenson/rbenv -[4]: http://gembundler.com -[5]: https://github.com/sorin-ionescu/prezto/issues -[6]: https://github.com/postmodern/chruby +[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 From 37c61a058c8ebbd98739505889f9f24f02e90a39 Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Tue, 29 Aug 2017 16:28:19 -0700 Subject: [PATCH 115/322] Document that `fasd` is now bundled with prezto Document that `fasd` is now bundled with prezto (19990c80252a588ef0983fe16c2f001391775af8) and that it's a fallback to a manually installed version (04bfb5131b63c626062af535a1c429f9ff303ca4). --- modules/fasd/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/fasd/README.md b/modules/fasd/README.md index 8d3cca147e..cb3fc20b01 100644 --- a/modules/fasd/README.md +++ b/modules/fasd/README.md @@ -15,8 +15,8 @@ been disabled. Installation ------------ -Since fasd is not an external module it needs to be installed. -`brew install fasd` +`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 ------- From 46de6fef773e1e02cc9550e5a8bf2a705e7d8e4d Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Tue, 29 Aug 2017 16:13:38 -0700 Subject: [PATCH 116/322] Swap italics to code formatting and add hyperlink --- modules/environment/README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/environment/README.md b/modules/environment/README.md index b86cbc54af..b0d579bb45 100644 --- a/modules/environment/README.md +++ b/modules/environment/README.md @@ -13,13 +13,14 @@ Contributors This module **MUST NOT** rely on any command not built in Zsh. -Non-interactive environment variables should be defined in *zshenv*. +Non-interactive environment variables should be defined in [`zshenv`][1]. Authors ------- -*The authors of this module should be contacted via the [issue tracker][1].* +*The authors of this module should be contacted via the [issue tracker][2].* - [Sorin Ionescu](https://github.com/sorin-ionescu) -[1]: https://github.com/sorin-ionescu/prezto/issues +[1]: https://github.com/sorin-ionescu/prezto/blob/master/runcoms/zshenv +[2]: https://github.com/sorin-ionescu/prezto/issues From ba0cb8afd8c16b37f30c2e945400c836cfeb2148 Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Tue, 29 Aug 2017 15:00:41 -0700 Subject: [PATCH 117/322] Add missing highlighter to readme This was added to `.zpreztorc` in 4f19700919c8ebbaf75755fc0d03716d13183f49 but forgot to add it here. --- modules/syntax-highlighting/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/syntax-highlighting/README.md b/modules/syntax-highlighting/README.md index 67bbb2004b..5dad5bbad9 100644 --- a/modules/syntax-highlighting/README.md +++ b/modules/syntax-highlighting/README.md @@ -38,6 +38,7 @@ zstyle ':prezto:module:syntax-highlighting' highlighters \ 'main' \ 'brackets' \ 'pattern' \ + 'line' \ 'cursor' \ 'root' ``` From 6a8f1c6b16b7a8203ec8bc00628aa72dde669fdc Mon Sep 17 00:00:00 2001 From: Antoine Rahier Date: Thu, 31 Aug 2017 13:46:03 +0200 Subject: [PATCH 118/322] Add powerlevel9k theme --- .gitmodules | 3 +++ modules/prompt/external/powerlevel9k | 1 + modules/prompt/functions/prompt_powerlevel9k_setup | 1 + 3 files changed, 5 insertions(+) create mode 160000 modules/prompt/external/powerlevel9k create mode 120000 modules/prompt/functions/prompt_powerlevel9k_setup diff --git a/.gitmodules b/.gitmodules index 365b059226..051f2633f0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,3 +25,6 @@ [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 diff --git a/modules/prompt/external/powerlevel9k b/modules/prompt/external/powerlevel9k new file mode 160000 index 0000000000..688f6203b4 --- /dev/null +++ b/modules/prompt/external/powerlevel9k @@ -0,0 +1 @@ +Subproject commit 688f6203b4a1e048ee45bb9493069ab22840fd54 diff --git a/modules/prompt/functions/prompt_powerlevel9k_setup b/modules/prompt/functions/prompt_powerlevel9k_setup new file mode 120000 index 0000000000..f692e0ae77 --- /dev/null +++ b/modules/prompt/functions/prompt_powerlevel9k_setup @@ -0,0 +1 @@ +../external/powerlevel9k/powerlevel9k.zsh-theme \ No newline at end of file From 76388a8cd11a858093b052fec04d7924d366af62 Mon Sep 17 00:00:00 2001 From: Antoine Rahier Date: Thu, 31 Aug 2017 21:09:34 +0200 Subject: [PATCH 119/322] Pin powerlevel9k submodule to latest release (v0.6.4) --- modules/prompt/external/powerlevel9k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel9k b/modules/prompt/external/powerlevel9k index 688f6203b4..17c069d25a 160000 --- a/modules/prompt/external/powerlevel9k +++ b/modules/prompt/external/powerlevel9k @@ -1 +1 @@ -Subproject commit 688f6203b4a1e048ee45bb9493069ab22840fd54 +Subproject commit 17c069d25ac7b24af6b5dc7ecb9597cef881f582 From 808d9d3579270898b17b7dbf9d1ec91145aefd03 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Wed, 6 Sep 2017 11:11:19 -0700 Subject: [PATCH 120/322] Add zsh-help function for easily searching the zsh documentation (#1360) * Add zsh-help function for easily searching the zsh documentation Looks up things in the zsh documentation. Usage: zsh-help [--all] search term(s) Option --all will seach for the term anywhere, not just at the start of a line. When not using --all it will search nicely for terms at the beginning of the line, which in the zsh man pages is where terms that are explained are located, allowing you to search the zsh man pages easily. * Improve zsh-help to search section headings before other text Provides a much easier way to search and access ZSH's manual. First checks for terms at the start of the manual, then checks if it's at start of a line allowing whitespace. Clean up some of the code a bit and format it to have a proper header for the zprezto project with author/email and description of the function. --- modules/utility/functions/zsh-help | 102 +++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 modules/utility/functions/zsh-help diff --git a/modules/utility/functions/zsh-help b/modules/utility/functions/zsh-help new file mode 100644 index 0000000000..f6605ea066 --- /dev/null +++ b/modules/utility/functions/zsh-help @@ -0,0 +1,102 @@ +# +# 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 $? +#} From 2cfd366ba6fafbbb47215a45bc9629f709376e94 Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Wed, 6 Sep 2017 11:14:35 -0700 Subject: [PATCH 121/322] =?UTF-8?q?[prompt=5Fsorin]=20Use=20=E2=9C=98=20an?= =?UTF-8?q?d=20show=20return=20value=20for=20non-0=20rtrns=20(#1460)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If you do not want it to show the return code, you can set: `zstyle ':prezto:module:prompt' show-return-val false` --- modules/prompt/functions/prompt_sorin_setup | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index a6672a49f4..c2258867cf 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -129,10 +129,15 @@ function prompt_sorin_setup { 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 @@ -143,7 +148,9 @@ function prompt_sorin_setup { # 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}⏎%f)${VIM:+" %B%F{6}V%f%b"}${_prompt_sorin_git}' + RPROMPT='$python_info[virtualenv]${editor_info[overwrite]}%(?:: %F{1}' + RPROMPT+=${show_return} + RPROMPT+='%f)${VIM:+" %B%F{6}V%f%b"}${_prompt_sorin_git}' SPROMPT='zsh: correct %F{1}%R%f to %F{2}%r%f [nyae]? ' } From 34482cb325cfe8521f9dd462e956faf14d2d0ad8 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Wed, 6 Sep 2017 11:18:09 -0700 Subject: [PATCH 122/322] prompt: add documentation for return value display --- modules/prompt/README.md | 9 +++++++++ runcoms/zpreztorc | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/modules/prompt/README.md b/modules/prompt/README.md index f272f27f24..4f9fd82c60 100644 --- a/modules/prompt/README.md +++ b/modules/prompt/README.md @@ -26,6 +26,15 @@ in *zpreztorc*. 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' +``` + Theming ------- diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 0b7a83769e..cd92317fd1 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -117,6 +117,10 @@ zstyle ':prezto:module:prompt' theme 'sorin' # 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 # From 3faaffe7e9de25d5c05b3b88c3d65d29b914139e Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Wed, 6 Sep 2017 10:03:48 -0300 Subject: [PATCH 123/322] Updating submodules Updating `completition`, prompt `async` and `syntax-highlighting`. All modules where checkout to their latest tag. --- modules/completion/external | 2 +- modules/prompt/external/async | 2 +- modules/syntax-highlighting/external | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/completion/external b/modules/completion/external index 89dcaeb562..2a30b05a5c 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit 89dcaeb5624eeceabf41cfc00e79cce35cfd722b +Subproject commit 2a30b05a5cf724a2d1c4c140c302dbf93f6aa6f6 diff --git a/modules/prompt/external/async b/modules/prompt/external/async index 28c7a64422..d95adb7cb5 160000 --- a/modules/prompt/external/async +++ b/modules/prompt/external/async @@ -1 +1 @@ -Subproject commit 28c7a644227a5ad7249193525ef27734781f6a63 +Subproject commit d95adb7cb58ec9d45bf024951770d975e089ef1d diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index ad522a0914..434af7b11d 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit ad522a091429ba180c930f84b2a023b40de4dbcc +Subproject commit 434af7b11dd33641231f1b48b8432e68eb472e46 From 34d4897d0e4573aee17bfdf5d564f16aeb94de86 Mon Sep 17 00:00:00 2001 From: Andrew Breckenridge Date: Wed, 6 Sep 2017 17:01:42 -0700 Subject: [PATCH 124/322] Updates outdate Mac OS X to macOS --- modules/utility/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/utility/README.md b/modules/utility/README.md index eeb850d500..a2b93be330 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -98,7 +98,7 @@ Aliases - `lu` lists sorted by date, most recent last, shows access time. - `sl` lists directory contents (`ls`). -### Mac OS X Everywhere +### macOS Everywhere - `o` opens files and directories (`open` or `xdg-open`). - `get` downloads files (`curl` or `wget`). From 00f1d92ed838fe7b75949c5eba19419728961b34 Mon Sep 17 00:00:00 2001 From: Damien Pollet Date: Fri, 8 Sep 2017 16:07:48 +0200 Subject: [PATCH 125/322] Fix typo in zprezto-update function --- init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.zsh b/init.zsh index 0c90299ed7..31cfc739e5 100644 --- a/init.zsh +++ b/init.zsh @@ -41,7 +41,7 @@ function zprezto-update { printf "There are no updates.\n" return 0 elif [[ $LOCAL == $BASE ]]; then - printf "There is an update availible. Trying to pull.\n\n" + 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 From 752f64f0852d369ab0970301fa55a565805df21e Mon Sep 17 00:00:00 2001 From: Samantha McVey Date: Fri, 8 Sep 2017 22:08:02 -0700 Subject: [PATCH 126/322] Bind more unbound keys in viins and vicmd to nothing Unbound keys in viins or vicmd mode have undefined results. Bind two more of these to nothing to avoid this. --- modules/editor/init.zsh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 40dbb8f0fa..e5fee92763 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -28,9 +28,11 @@ 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' + 'Control' '\C-' + 'ControlLeft' '\e[1;5D \e[5D \e\e[D \eOd' + 'ControlRight' '\e[1;5C \e[5C \e\e[C \eOc' + 'ControlPageUp' '\e[5;5~' + 'ControlPageDown' '\e[6;5~' 'Escape' '\e' 'Meta' '\M-' 'Backspace' "^?" @@ -305,6 +307,8 @@ unbound_keys=( "${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 From cd703d3c3c094e21fe2ce142601063f2920b479f Mon Sep 17 00:00:00 2001 From: Greg Anders Date: Thu, 24 Aug 2017 22:06:23 -0500 Subject: [PATCH 127/322] Add make to gnu-utility commands --- modules/gnu-utility/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gnu-utility/init.zsh b/modules/gnu-utility/init.zsh index 6556032407..5df4fe3368 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' 'sed' 'tar' 'time' 'units' 'which' + 'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units' 'which' ) # Wrap GNU utilities in functions. From 9520f1be6f8ef13cdf599df09a286d21ec034dc7 Mon Sep 17 00:00:00 2001 From: Nicola Corna Date: Tue, 19 Sep 2017 01:27:31 +0200 Subject: [PATCH 128/322] archive: fix unrar-free and add support for unar (#1383) * archive: fix unrar check when using unrar-free unrar-free returns the error code 1 when run without arguments, thus failing the presence check. Replacing the current presence check with (( $+commands[unrar] )) fixes the problem. * archive: add unar support for lsarchive and unarchive No `archive` support with unar. --- modules/archive/README.md | 2 +- modules/archive/functions/lsarchive | 8 +++++--- modules/archive/functions/unarchive | 8 +++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/modules/archive/README.md b/modules/archive/README.md index 6df58d86e8..c2ab938a1b 100644 --- a/modules/archive/README.md +++ b/modules/archive/README.md @@ -27,7 +27,7 @@ installed: - *.lzma* requires `unlzma`. - *.Z* requires `uncompress`. - *.zip*, *.jar* requires `unzip`. - - *.rar* requires `unrar` or `rar`. + - *.rar* requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`. - *.7z* requires `7za`. - *.deb* requires `ar`, `tar`. diff --git a/modules/archive/functions/lsarchive b/modules/archive/functions/lsarchive index d2bd83416d..7f892d1fcb 100644 --- a/modules/archive/functions/lsarchive +++ b/modules/archive/functions/lsarchive @@ -43,9 +43,11 @@ while (( $# > 0 )); do || lzcat "$1" | tar x${verbose:+v}f - ;; (*.tar) tar t${verbose:+v}f "$1" ;; (*.zip|*.jar) unzip -l${verbose:+v} "$1" ;; - (*.rar) unrar &> /dev/null \ - && unrar ${${verbose:+v}:-l} "$1" \ - || rar ${${verbose:+v}:-l} "$1" ;; + (*.rar) ( (( $+commands[unrar] )) \ + && unrar ${${verbose:+v}:-l} "$1" ) \ + || ( (( $+commands[rar] )) \ + && rar ${${verbose:+v}:-l} "$1" ) \ + || lsar ${verbose:+-l} "$1" ;; (*.7z) 7za l "$1" ;; (*) print "$0: cannot list: $1" >&2 diff --git a/modules/archive/functions/unarchive b/modules/archive/functions/unarchive index c9ed148858..53a24dd7a0 100644 --- a/modules/archive/functions/unarchive +++ b/modules/archive/functions/unarchive @@ -57,9 +57,11 @@ while (( $# > 0 )); do (*.lzma) unlzma "$1" ;; (*.Z) uncompress "$1" ;; (*.zip|*.jar) unzip "$1" -d $extract_dir ;; - (*.rar) unrar &> /dev/null \ - && unrar x -ad "$1" \ - || rar x -ad "$1" ;; + (*.rar) ( (( $+commands[unrar] )) \ + && unrar x -ad "$1" ) \ + || ( (( $+commands[rar] )) \ + && rar x -ad "$1" ) \ + || unar -d "$1" ;; (*.7z) 7za x "$1" ;; (*.deb) mkdir -p "$extract_dir/control" From 1d0bee60989602c921251ab259327a2cf11b90d3 Mon Sep 17 00:00:00 2001 From: sergiorussia Date: Tue, 19 Sep 2017 10:38:24 +0300 Subject: [PATCH 129/322] Fix README.md for autosuggestions and history-substring-search (#1471) --- modules/autosuggestions/README.md | 4 ++-- modules/history-substring-search/README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/autosuggestions/README.md b/modules/autosuggestions/README.md index 4d18f9161a..ad0f7eced9 100644 --- a/modules/autosuggestions/README.md +++ b/modules/autosuggestions/README.md @@ -12,10 +12,10 @@ 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, -the *syntax-highlighting* module must be loaded **after** this module. +this module must be loaded **after** the *syntax-highlighting* module. If this module is used in conjunction with the *history-substring-search* -module, the *history-substring-search* module must be loaded **after** this +module, this module must be loaded **after** the *history-substring-search* module. Contributors diff --git a/modules/history-substring-search/README.md b/modules/history-substring-search/README.md index 0da63dcc74..050a5c2e80 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 conjuncture with the *syntax-highlighting* module, it -must be loaded **after** it. +If this module is used in conjunction with the *syntax-highlighting* module, +this module must be loaded **after** the *syntax-highlighting* module. Contributors ------------ From 63310f6403474e8b5c586627edf97b16c6e41aa4 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Wed, 4 Oct 2017 11:27:55 -0700 Subject: [PATCH 130/322] ssh: update SSH_ASKPASS workaround to more closely match what ssh-add needs Fixes #1478 --- modules/ssh/init.zsh | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index c0316d2462..6e37b698cd 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -39,11 +39,20 @@ 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' - # Check for Linux system and ssh-askpass presence - if [[ "$OSTYPE" == linux* ]] && [[ ! -a /usr/lib/ssh/x11-ssh-askpass ]]; then - ssh-add "${_ssh_identities:+$_ssh_dir/${^_ssh_identities[@]}}" 2> /dev/null + # 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 else - ssh-add "${_ssh_identities:+$_ssh_dir/${^_ssh_identities[@]}}" < /dev/null 2> /dev/null + ssh-add "${_ssh_identities:+$_ssh_dir/${^_ssh_identities[@]}}" 2> /dev/null fi fi From 25d8db301d5939040ff4aa6e7211d27e74f2d0d9 Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Mon, 9 Oct 2017 14:13:00 -0400 Subject: [PATCH 131/322] Clarify that brewu updates AND upgrades As homebrew includes both an update and upgrade command, it is beneficial to clarify that this performs both, rather than just the update. --- modules/homebrew/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/homebrew/README.md b/modules/homebrew/README.md index 98019fdfce..98a3444c19 100644 --- a/modules/homebrew/README.md +++ b/modules/homebrew/README.md @@ -14,7 +14,7 @@ Aliases - `brewl` lists installed formulae. - `brewo` lists brews which have an update available. - `brews` searches for a formula. - - `brewu` updates Homebrew and formulae. + - `brewu` updates and upgrades Homebrew packages and formulae. - `brewx` uninstalls a formula. ### Homebrew Cask From 6d5650eae78ca05256e4bad5e66b47aec1758b40 Mon Sep 17 00:00:00 2001 From: Manoel Vilela Date: Sat, 14 Oct 2017 06:50:50 -0300 Subject: [PATCH 132/322] [tmux] Avoid run tmux when the shell is executed on emacs This avoid weird bugs to try running zsh through C-x M-x and bug happens because obviously tmux is not designed to be executed inside emacs. --- modules/tmux/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tmux/init.zsh b/modules/tmux/init.zsh index 720fb04dee..a361a6a60b 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" ]] && ( \ +if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" && -z "$INSIDE_EMACS" ]] && ( \ ( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' remote ) || ( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' local ) \ ); then From fb903cb0677f938a7c46a7e4aef92ad677593eb2 Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Tue, 29 Aug 2017 15:56:04 -0700 Subject: [PATCH 133/322] Document support for macOS This adds docs for b0c85eddf6bee4d75ca9920c9c6180ab7ff1962a which was added in https://github.com/sorin-ionescu/prezto/pull/1376/ --- modules/command-not-found/README.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/command-not-found/README.md b/modules/command-not-found/README.md index e969b71af2..7775c92621 100644 --- a/modules/command-not-found/README.md +++ b/modules/command-not-found/README.md @@ -1,15 +1,23 @@ Command-Not-Found ================= -Displays installation information for not found commands by loading the -[command-not-found][1] tool on Debian-based and Arch Linux-based distributions. +When you try to use a command that is not available locally, searches +the package manager for a package offering that command and suggests +the proper install command. + +Debian-based and Arch Linux-based distributions use the [`command-not-found`][1] tool. + +macOS uses Homebrew's [`command-not-found` clone][2]. Note that you also need to [follow the instructions to tap the `command-not-found` homebrew repository][3]. + Authors ------- -*The authors of this module should be contacted via the [issue tracker][2].* +*The authors of this module should be contacted via the [issue tracker][4].* - [Joseph Booker](https://github.com/sargas) [1]: https://code.launchpad.net/command-not-found -[2]: https://github.com/sorin-ionescu/prezto/issues +[2]: https://github.com/Homebrew/homebrew-command-not-found +[3]: https://github.com/Homebrew/homebrew-command-not-found#install +[4]: https://github.com/sorin-ionescu/prezto/issues From b5d09e2da794086ab5715f3fdda2e9c4b6dd3d9d Mon Sep 17 00:00:00 2001 From: Parth Laxmikant Kolekar Date: Fri, 20 Oct 2017 23:08:48 +0530 Subject: [PATCH 134/322] Lower requirements down to 4.3.11 again (#1491) There was an update with the syntax-highlighting module which fixed compatibility with 4.3.11. --- README.md | 2 +- init.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f52a58356c..f263a17503 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Installation ------------ Prezto will work with any recent release of Zsh, but the minimum required -version is 4.3.17. +version is 4.3.11. 1. Launch Zsh: diff --git a/init.zsh b/init.zsh index 31cfc739e5..67a07cb6d7 100644 --- a/init.zsh +++ b/init.zsh @@ -10,7 +10,7 @@ # # Check for the minimum supported version. -min_zsh_version='4.3.17' +min_zsh_version='4.3.11' if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then printf "prezto: old shell detected, minimum required: %s\n" "$min_zsh_version" >&2 return 1 From 109864429cea5763e57c77f060835bfcdbefb09f Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Wed, 18 Oct 2017 17:30:16 -0700 Subject: [PATCH 135/322] ssh: fix loading of ssh identities when none are explicitly defined --- modules/ssh/init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index 6e37b698cd..08edce5772 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -50,9 +50,9 @@ if ssh-add -l 2>&1 | grep -q 'The agent has no identities'; then # 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 + ssh-add ${_ssh_identities:+$_ssh_dir/${^_ssh_identities[@]}} < /dev/null 2> /dev/null else - ssh-add "${_ssh_identities:+$_ssh_dir/${^_ssh_identities[@]}}" 2> /dev/null + ssh-add ${_ssh_identities:+$_ssh_dir/${^_ssh_identities[@]}} 2> /dev/null fi fi From cbcbedd69456376afec55881ef1beee1394eac87 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 24 Oct 2017 12:52:32 -0700 Subject: [PATCH 136/322] prompt: Add basic troubleshooting information for fonts This is related to #1495 and a number of other issues which have been filed about font issues. --- modules/prompt/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/prompt/README.md b/modules/prompt/README.md index 4f9fd82c60..523c83e929 100644 --- a/modules/prompt/README.md +++ b/modules/prompt/README.md @@ -130,6 +130,18 @@ function prompt_name_precmd { } ``` +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. + + Authors ------- @@ -140,3 +152,5 @@ 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 From 87d39f5dd2965d38bd9b66fd31e5d6b4593f53ed Mon Sep 17 00:00:00 2001 From: Parth Laxmikant Kolekar Date: Thu, 26 Oct 2017 22:54:26 +0530 Subject: [PATCH 137/322] Update init.zsh It seems that my older git does not support '@' yet. --- init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/init.zsh b/init.zsh index 67a07cb6d7..18525ca87d 100644 --- a/init.zsh +++ b/init.zsh @@ -34,9 +34,9 @@ function zprezto-update { if [[ "$orig_branch" == "master" ]]; then git fetch || return "$?" local UPSTREAM=$(git rev-parse '@{u}') - local LOCAL=$(git rev-parse @) + local LOCAL=$(git rev-parse HEAD) local REMOTE=$(git rev-parse "$UPSTREAM") - local BASE=$(git merge-base @ "$UPSTREAM") + local BASE=$(git merge-base HEAD "$UPSTREAM") if [[ $LOCAL == $REMOTE ]]; then printf "There are no updates.\n" return 0 From 4b0ecffacadec6c9553be894cdcd36ecafac7662 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sun, 29 Oct 2017 23:32:11 -0700 Subject: [PATCH 138/322] prompt: update pure to 1.6.0 Refs #1487 --- modules/prompt/external/pure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/pure b/modules/prompt/external/pure index 04fa7495cf..a95d55cc7d 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit 04fa7495cf8fe3aff8ce286d4517df15066b820a +Subproject commit a95d55cc7d3a73fc562ac11e23c26113ed6d58cf From ff9b9013947f210bc121018ea7911f621c1f791b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20VANTOMME?= Date: Thu, 2 Nov 2017 01:00:32 +0100 Subject: [PATCH 139/322] Set key binding (^space) to expand all aliases including global (#1500) --- modules/editor/init.zsh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index e5fee92763..415d653088 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -226,6 +226,14 @@ function prepend-sudo { } zle -N prepend-sudo +# Expand aliases +function glob-alias { + zle _expand_alias + zle expand-word + zle magic-space +} +zle -N glob-alias + # Reset to default key bindings. bindkey -d @@ -368,6 +376,9 @@ for keymap in 'emacs' 'viins'; do # Insert 'sudo ' at the beginning of the line. bindkey -M "$keymap" "$key_info[Control]X$key_info[Control]S" prepend-sudo + + # control-space expands all aliases, including global + bindkey -M "$keymap" "$key_info[Control] " glob-alias done # Delete key deletes character in vimcmd cmd mode instead of weird default functionality From 7ebb5e9ddaedf15bd261772119268076f8965489 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 6 Nov 2017 11:58:05 -0800 Subject: [PATCH 140/322] environment: Fix logic around url quoting in zsh >= 5.1 Closes #1015, Fixes #978 Thanks to @Eriner for pointing us in right direction. The code for this comes from zim. This is the last commit with the code we're using: https://github.com/Eriner/zim/commit/537f07660376f6fd0b8103ee993bfc132ddcee90#diff-30465d78a41f73dc0f6967d3f34d7964 Note that we need this workaround because we currently support back to 4.3.11. I believe that originally came from here: https://github.com/robbyrussell/oh-my-zsh/pull/4473 --- modules/environment/init.zsh | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/modules/environment/init.zsh b/modules/environment/init.zsh index 76655a6c7e..e77a107cf5 100644 --- a/modules/environment/init.zsh +++ b/modules/environment/init.zsh @@ -9,8 +9,24 @@ # Smart URLs # -autoload -Uz url-quote-magic -zle -N self-insert url-quote-magic +# This logic comes from an old version of zim. Essentially, bracketed-paste was +# added as a requirement of url-quote-magic in 5.1, but in 5.1.1 bracketed +# paste had a regression. Additionally, 5.2 added bracketed-paste-url-magic +# which is generally better than url-quote-magic so we load that when possible. +autoload -Uz is-at-least +if [[ ${ZSH_VERSION} != 5.1.1 ]]; then + if is-at-least 5.2; then + autoload -Uz bracketed-paste-url-magic + zle -N bracketed-paste bracketed-paste-url-magic + else + if is-at-least 5.1; then + autoload -Uz bracketed-paste-magic + zle -N bracketed-paste bracketed-paste-magic + fi + fi + autoload -Uz url-quote-magic + zle -N self-insert url-quote-magic +fi # # General From c7dcd21c9e557ca243bc213a711a18a7f38d5d56 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 9 Nov 2017 13:55:20 -0800 Subject: [PATCH 141/322] Don't show ruby info if using system version Based off https://github.com/chauncey-garrett/zsh-prezto/commit/a8fe1b3cb42c2a44349fa373ade5b46d5b9a57ee by @chauncey-garrett --- modules/ruby/functions/ruby-info | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/ruby/functions/ruby-info b/modules/ruby/functions/ruby-info index d53435b42e..7e64c2793a 100644 --- a/modules/ruby/functions/ruby-info +++ b/modules/ruby/functions/ruby-info @@ -20,6 +20,9 @@ if (( $+commands[rvm-prompt] )); then version="$(rvm-prompt)" elif (( $+commands[rbenv] )); then version="$(rbenv version-name)" + if [[ $version == "system" ]]; then + version="" + fi elif (( $+commands[ruby] )); then version="${${$(ruby --version)[(w)1,(w)2]}/ /-}" fi From 485ad9e704d9c912922cdabd951e1e0ec185ddc2 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 10 Nov 2017 10:38:15 -0800 Subject: [PATCH 142/322] Add Alternatives section to archive module README (Fixes #705) --- modules/archive/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/archive/README.md b/modules/archive/README.md index c2ab938a1b..600ff15d0e 100644 --- a/modules/archive/README.md +++ b/modules/archive/README.md @@ -35,6 +35,12 @@ Additionally, if `pigz` and/or `pbzip2` are installed, `archive` will use them o their traditional counterparts, `gzip` and `bzip2` respectively, to take full advantage of all available CPU cores for compression. +Alternatives +------------ + +Specifically on macOS, [The Unarchiver][1] provides a similar command line tool +which doesn't depend on a number of other programs being installed. + Authors ------- @@ -43,4 +49,4 @@ Authors - [Sorin Ionescu](https://github.com/sorin-ionescu) - [Matt Hamilton](https://github.com/Eriner) -[1]: https://github.com/sorin-ionescu/prezto/issues +[1]: https://theunarchiver.com/command-line From 79927ac73ad69e1cf69c1ee92a0fbd34e54321ac Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 10 Nov 2017 11:06:50 -0800 Subject: [PATCH 143/322] editor: Fix Home and End in vicmd mode Fixes #1160 --- modules/editor/init.zsh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 415d653088..96c87863b7 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -322,18 +322,24 @@ 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 + +# Keybinds for all keymaps +for keymap in 'emacs' 'viins' 'vicmd'; do + bindkey -M "$keymap" "$key_info[Home]" beginning-of-line + bindkey -M "$keymap" "$key_info[End]" end-of-line +done + +# Keybinds for all vi keymaps for keymap in viins vicmd; do + # Ctrl + Left and Ctrl + Right bindings to forward/backward word for key in "${(s: :)key_info[ControlLeft]}" bindkey -M "$keymap" "$key" vi-backward-word for key in "${(s: :)key_info[ControlRight]}" bindkey -M "$keymap" "$key" vi-forward-word done +# Keybinds for emacs and vi insert mode for keymap in 'emacs' 'viins'; do - bindkey -M "$keymap" "$key_info[Home]" beginning-of-line - bindkey -M "$keymap" "$key_info[End]" end-of-line - bindkey -M "$keymap" "$key_info[Insert]" overwrite-mode bindkey -M "$keymap" "$key_info[Delete]" delete-char bindkey -M "$keymap" "$key_info[Backspace]" backward-delete-char From 948d9b3aa51f9bbf320649801565dc9164181e5c Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 10 Nov 2017 11:37:11 -0800 Subject: [PATCH 144/322] Store cache files in a user-writable location Fixes #1122 --- modules/fasd/init.zsh | 2 +- modules/node/init.zsh | 2 +- modules/perl/init.zsh | 2 +- modules/python/init.zsh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/fasd/init.zsh b/modules/fasd/init.zsh index 44d6297517..113a8716f0 100644 --- a/modules/fasd/init.zsh +++ b/modules/fasd/init.zsh @@ -19,7 +19,7 @@ fi # Initialization # -cache_file="${0:h}/cache.zsh" +cache_file="${TMPDIR:-/tmp}/prezto-fasd-cache.$UID.zsh" if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file" ]]; then # Set the base init arguments. init_args=(zsh-hook) diff --git a/modules/node/init.zsh b/modules/node/init.zsh index 127dea7242..578c642436 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -30,7 +30,7 @@ fi # Load NPM completion. if (( $+commands[npm] )); then - cache_file="${0:h}/cache.zsh" + cache_file="${TMPDIR:-/tmp}/prezto-node-cache.$UID.zsh" if [[ "$commands[npm]" -nt "$cache_file" || ! -s "$cache_file" ]]; then # npm is slow; cache its output. diff --git a/modules/perl/init.zsh b/modules/perl/init.zsh index 1624fbf9e0..ffd5f0dfd8 100644 --- a/modules/perl/init.zsh +++ b/modules/perl/init.zsh @@ -39,7 +39,7 @@ fi if [[ "$OSTYPE" == darwin* ]]; then # Perl is slow; cache its output. - cache_file="${0:h}/cache.zsh" + cache_file="${TMPDIR:-/tmp}/prezto-perl-cache.$UID.zsh" perl_path="$HOME/Library/Perl/5.12" if [[ -f "$perl_path/lib/perl5/local/lib.pm" ]]; then diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 6f8ae7f128..7aad5975dd 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -129,7 +129,7 @@ fi # Load PIP completion. if (( $#commands[(i)pip(|[23])] )); then - cache_file="${0:h}/cache.zsh" + cache_file="${TMPDIR:-/tmp}/prezto-python-cache.$UID.zsh" # Detect and use one available from among 'pip', 'pip2', 'pip3' variants pip_command="$commands[(i)pip(|[23])]" From 105e9658bb7a907b8f1d6080dc07aecb5058592d Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 10 Nov 2017 11:54:51 -0800 Subject: [PATCH 145/322] gnu-utility: avoid overriding shell builtins Fixes #1263 --- modules/gnu-utility/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gnu-utility/init.zsh b/modules/gnu-utility/init.zsh index 5df4fe3368..cbf9a4baa8 100644 --- a/modules/gnu-utility/init.zsh +++ b/modules/gnu-utility/init.zsh @@ -48,7 +48,7 @@ _gnu_utility_cmds=( # Wrap GNU utilities in functions. for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do _gnu_utility_pcmd="${_gnu_utility_p}${_gnu_utility_cmd}" - if (( ${+commands[${_gnu_utility_pcmd}]} )); then + if (( ${+commands[${_gnu_utility_pcmd}]} && ! ${+builtins[${_gnu_utility_cmd}]} )); then eval " function ${_gnu_utility_cmd} { '${commands[${_gnu_utility_pcmd}]}' \"\$@\" From f02dc1af5729db6749b4d9d71b8066036dfcec63 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 10 Nov 2017 12:23:37 -0800 Subject: [PATCH 146/322] gpg: potential fix for #1252 --- modules/gpg/init.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/gpg/init.zsh b/modules/gpg/init.zsh index 3d80a46cdc..7976fd7da4 100644 --- a/modules/gpg/init.zsh +++ b/modules/gpg/init.zsh @@ -14,11 +14,11 @@ fi _gpg_agent_conf="${GNUPGHOME:-$HOME/.gnupg}/gpg-agent.conf" _gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env.$UID" +# Load environment variables from previous run +source "$_gpg_agent_env" 2> /dev/null + # Start gpg-agent if not started. if [[ -z "$GPG_AGENT_INFO" && ! -S "${GNUPGHOME:-$HOME/.gnupg}/S.gpg-agent" ]]; then - # Export environment variables. - source "$_gpg_agent_env" 2> /dev/null - # Start gpg-agent if not started. if ! ps -U "$LOGNAME" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")" From e159c1a439a648e2805898fbcd86227fa701ec0f Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sat, 11 Nov 2017 15:18:31 -0800 Subject: [PATCH 147/322] prompt: update sorin prompt async usage to be closer to pure --- modules/prompt/functions/prompt_sorin_setup | 69 ++++++++++++--------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index c2258867cf..b070c56c2a 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -32,25 +32,29 @@ # Load dependencies. pmodload 'helper' -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 - fi - else - # Git target detected, update the git fragment and redisplay the prompt. - _prompt_sorin_git="${_git_target}${_git_post_target}" - zle && zle reset-prompt - fi +function prompt_sorin_async_callback { + case $1 in + prompt_sorin_async_git) + # 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 + fi + else + # Git target detected, update the git fragment and redisplay the prompt. + _prompt_sorin_git="${_git_target}${_git_post_target}" + zle && zle reset-prompt + fi + ;; + esac } function prompt_sorin_async_git { @@ -61,6 +65,22 @@ function prompt_sorin_async_git { fi } +function prompt_sorin_async_tasks { + # Initialize async worker. This needs to be done here and not in + # prompt_sorin_setup so the git formatting can be overridden by other prompts. + if (( !${prompt_prezto_async_init:-0} )); then + async_start_worker prompt_sorin -n + async_register_callback prompt_sorin prompt_sorin_async_callback + typeset -g prompt_prezto_async_init=1 + fi + + # Kill the old process of slow commands if it is still running. + async_flush_jobs async_sorin_git + + # Compute slow commands in the background. + async_job async_sorin_git prompt_sorin_async_git "$PWD" +} + function prompt_sorin_precmd { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS @@ -68,9 +88,6 @@ function prompt_sorin_precmd { # Format PWD. _prompt_sorin_pwd=$(prompt-pwd) - # 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 @@ -81,14 +98,12 @@ function prompt_sorin_precmd { fi 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" + + prompt_sorin_async_tasks } function prompt_sorin_setup { @@ -139,8 +154,6 @@ function prompt_sorin_setup { 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='' From ad79f78fbe143e38be421733713e562eccca018b Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sat, 11 Nov 2017 20:56:59 -0800 Subject: [PATCH 148/322] prompt: fix async usage in sorin prompt Fixes #1509 --- modules/prompt/functions/prompt_sorin_setup | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index b070c56c2a..30e71a9285 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -75,10 +75,10 @@ function prompt_sorin_async_tasks { fi # Kill the old process of slow commands if it is still running. - async_flush_jobs async_sorin_git + async_flush_jobs prompt_sorin # Compute slow commands in the background. - async_job async_sorin_git prompt_sorin_async_git "$PWD" + async_job prompt_sorin prompt_sorin_async_git "$PWD" } function prompt_sorin_precmd { From ce349dff81c6ca1f636c3ca9118d4d60b56617cd Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sun, 12 Nov 2017 16:01:39 -0800 Subject: [PATCH 149/322] Allow modules to be loaded from multiple places (#1458) * Allow modules to be loaded from multiple places * Add setting for user specified module dirs This is initial work for the contrib repo, mentioned in #1424 --- .gitignore | 1 + init.zsh | 62 ++++++++++++++++++++++++++++++++--------------- runcoms/zpreztorc | 3 +++ 3 files changed, 46 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index e05465feb9..05e53b63e0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.zwc *.zwc.old modules/*/cache.zsh +contrib diff --git a/init.zsh b/init.zsh index 18525ca87d..66ac1b1742 100644 --- a/init.zsh +++ b/init.zsh @@ -72,35 +72,57 @@ function zprezto-update { # Loads Prezto modules. function pmodload { local -a pmodules + local -a pmodule_dirs + local -a locations local pmodule + local pmodule_location 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) - - function { - local pfunction + # Load in any additional directories and warn if they don't exist + zstyle -a ':prezto:load' pmodule-dirs 'user_pmodule_dirs' + for user_dir in "$user_pmodule_dirs[@]"; do + if [[ ! -d "$user_dir" ]]; then + echo "$0: Missing user module dir: $user_dir" + fi + done - # Extended globbing is needed for listing autoloadable function directories. - setopt LOCAL_OPTIONS EXTENDED_GLOB + pmodule_dirs=("$ZPREZTODIR/modules" "$ZPREZTODIR/contrib" "$user_pmodule_dirs[@]") - # Load Prezto functions. - for pfunction in $ZPREZTODIR/modules/${^pmodules}/functions/$~pfunction_glob; do - autoload -Uz "$pfunction" - done - } + # $argv is overridden in the anonymous function. + pmodules=("$argv[@]") # Load Prezto modules. for pmodule in "$pmodules[@]"; do if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then continue - elif [[ ! -d "$ZPREZTODIR/modules/$pmodule" ]]; then - print "$0: no such module: $pmodule" >&2 - continue else + locations=(${pmodule_dirs:+${^pmodule_dirs}/$pmodule(/FN)}) + if (( ${#locations} > 1 )); then + print "$0: conflicting module locations: $locations" + continue + elif (( ${#locations} < 1 )); then + print "$0: no such module: $pmodule" + continue + fi + + # Grab the full path to this module + pmodule_location=${locations[1]} + + # Add functions to $fpath. + fpath=(${pmodule_location}/functions(/FN) $fpath) + + function { + local pfunction + + # Extended globbing is needed for listing autoloadable function directories. + setopt LOCAL_OPTIONS EXTENDED_GLOB + + # Load Prezto functions. + for pfunction in ${pmodule_location}/functions/$~pfunction_glob; do + autoload -Uz "$pfunction" + done + } + if [[ -s "$ZPREZTODIR/modules/$pmodule/init.zsh" ]]; then source "$ZPREZTODIR/modules/$pmodule/init.zsh" fi @@ -109,7 +131,7 @@ function pmodload { zstyle ":prezto:module:$pmodule" loaded 'yes' else # Remove the $fpath entry. - fpath[(r)${ZPREZTODIR}/modules/${pmodule}/functions]=() + fpath[(r)${pmodule_location}/functions]=() function { local pfunction @@ -119,7 +141,7 @@ function pmodload { setopt LOCAL_OPTIONS EXTENDED_GLOB # Unload Prezto functions. - for pfunction in $ZPREZTODIR/modules/$pmodule/functions/$~pfunction_glob; do + for pfunction in ${pmodule_location}/functions/$~pfunction_glob; do unfunction "$pfunction" done } diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index cd92317fd1..c109155565 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -15,6 +15,9 @@ # Color output (auto set to 'no' on dumb terminals). zstyle ':prezto:*:*' color 'yes' +# Add additional directories to load prezto modules from +# zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib + # Set the Zsh modules to load (man zshmodules). # zstyle ':prezto:load' zmodule 'attr' 'stat' From 96bbb31cc814d415d974bf0229aa88f3215ce481 Mon Sep 17 00:00:00 2001 From: ickc Date: Sun, 12 Nov 2017 16:20:52 -0800 Subject: [PATCH 150/322] Added conda virtualenv support to python module. (#1505) * Added conda virtualenv support to python module * Added instructions for Python module options to README Thanks to @egpbos for the original feature and @ickc for fixing the merge conflicts. --- modules/python/README.md | 13 +++++++++++++ modules/python/functions/python-info | 8 ++++++++ modules/python/init.zsh | 14 ++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/modules/python/README.md b/modules/python/README.md index 27d18e62d6..900158d60d 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -3,6 +3,19 @@ Python Enables local Python and local Python package installation. +Settings +-------- + +This module supports virtual environments from conda and virtualenvwrapper. By default, only virtualenvwrapper is enabled. To disable virtualenvwrapper, add the following to *zpreztorc*. + + zstyle ':prezto:module:python' skip-virtualenvwrapper-init 'on' + +Conda support is enabled by adding the following to *zpreztorc*. + + zstyle ':prezto:module:python' conda-init 'on' + +Caution: using conda and virtualenvwrapper at the same time may cause conflicts. + Local Python Installation ------------------------- diff --git a/modules/python/functions/python-info b/modules/python/functions/python-info index a616814c8a..ccca99488b 100644 --- a/modules/python/functions/python-info +++ b/modules/python/functions/python-info @@ -4,6 +4,7 @@ # # Authors: # Sorin Ionescu +# Patrick Bos # # function python-info { @@ -22,4 +23,11 @@ if [[ -n "$VIRTUAL_ENV" ]]; then python_info[virtualenv]="$virtualenv_formatted" fi +# Do the same for Conda virtual environments +if [[ -n "$CONDA_DEFAULT_ENV" ]]; then + zstyle -s ':prezto:module:python:info:virtualenv' format 'virtualenv_format' + zformat -f virtualenv_formatted "$virtualenv_format" "v:${CONDA_DEFAULT_ENV:t}" + python_info[virtualenv]="$virtualenv_formatted" +fi + # } diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 7aad5975dd..0d15fc03af 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -4,6 +4,7 @@ # Authors: # Sorin Ionescu # Sebastian Wiesner +# Patrick Bos # # Load manually installed pyenv into the shell session. @@ -144,6 +145,19 @@ if (( $#commands[(i)pip(|[23])] )); then unset cache_file pip_command fi +# Load conda into the shell session, if requested +zstyle -T ':prezto:module:python' conda-init +if (( $? && $+commands[conda] )); then + if (( $(conda ..changeps1) )); then + echo "To make sure Conda doesn't change your prompt (should do that in the prompt module) run:\n conda config --set changeps1 false" + # TODO: + # We could just run this ourselves. In an exit hook + # (add zsh-hook zshexit [(anonymous) function]) we could then set it back + # to the way it was before we changed it. However, I'm not sure if this is + # exception safe, so left it like this for now. + fi +fi + # # Aliases # From 2436806fce90c9c6dec5172cc77eaa4b06f58307 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 20 Jul 2017 22:58:29 -0500 Subject: [PATCH 151/322] [utility] Simplify enabling 'diff' color conditions in wrapper function Nested `if` can be removed for simple cases like these. Also, doc cleanup. --- modules/utility/README.md | 2 +- modules/utility/functions/diff | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/modules/utility/README.md b/modules/utility/README.md index a2b93be330..84e81f5c28 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -153,7 +153,7 @@ Functions ### Developer - - `diff` highlights diff output (requires `colordiff` or `Git`). + - `diff` highlights diff output (requires `colordiff`). - `make` highlights make output (requires `colormake`). - `wdiff` highlights wdiff output (requires `wdiff `or `Git`). diff --git a/modules/utility/functions/diff b/modules/utility/functions/diff index 51806e81b7..d614b28bda 100644 --- a/modules/utility/functions/diff +++ b/modules/utility/functions/diff @@ -6,12 +6,9 @@ # function diff { - if zstyle -t ':prezto:module:utility:diff' color; then - if (( $+commands[colordiff] )); then + if zstyle -t ':prezto:module:utility:diff' color \ + && (( $+commands[colordiff] )); then command colordiff "$@" - else - command diff "$@" - fi else command diff "$@" fi From d725233bb1be2db83cbd6ee2a7aea5ef62ca90d1 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sun, 12 Nov 2017 17:53:10 -0800 Subject: [PATCH 152/322] Add basic documentation on external module directories --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index f263a17503..54cb09bddc 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,19 @@ accompanying README files to learn of what is available. ![sorin theme][2] +### External Modules + + 1. By default modules will be loaded from */modules* and */contrib*. + 2. Additional module directories can be added to the + `:prezto:load:pmodule-dirs` setting in *~/.zpreztorc*. + + Note that module names need to be unique or they will cause an error when + loading. + + ```console + zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib + ``` + Customization ------------- From a3f40a7479c0161175ed8aa454897d326c739e9d Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sun, 12 Nov 2017 17:54:49 -0800 Subject: [PATCH 153/322] Fix README formatting --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 54cb09bddc..18bcfcce4e 100644 --- a/README.md +++ b/README.md @@ -96,8 +96,8 @@ accompanying README files to learn of what is available. 2. Additional module directories can be added to the `:prezto:load:pmodule-dirs` setting in *~/.zpreztorc*. - Note that module names need to be unique or they will cause an error when - loading. + Note that module names need to be unique or they will cause an error when + loading. ```console zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib From cbe48151896ef0f37ee2556eb4546198dee1ed60 Mon Sep 17 00:00:00 2001 From: Yutian Li Date: Mon, 13 Nov 2017 16:41:54 -0800 Subject: [PATCH 154/322] Allow module to be a symbolic link to a non-empty directory (#1510) --- init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.zsh b/init.zsh index 66ac1b1742..347b387c72 100644 --- a/init.zsh +++ b/init.zsh @@ -96,7 +96,7 @@ function pmodload { if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then continue else - locations=(${pmodule_dirs:+${^pmodule_dirs}/$pmodule(/FN)}) + locations=(${pmodule_dirs:+${^pmodule_dirs}/$pmodule(-/FN)}) if (( ${#locations} > 1 )); then print "$0: conflicting module locations: $locations" continue From 221c6cd1283654ba77db052ee27aef613395321c Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 14 Nov 2017 00:34:19 -0800 Subject: [PATCH 155/322] Remove BRACE_CCL as default Fixes #1162 --- modules/environment/init.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/environment/init.zsh b/modules/environment/init.zsh index e77a107cf5..79e98a4a24 100644 --- a/modules/environment/init.zsh +++ b/modules/environment/init.zsh @@ -32,7 +32,6 @@ fi # General # -setopt BRACE_CCL # Allow brace character class list expansion. setopt COMBINING_CHARS # Combine zero-length punctuation characters (accents) # with the base character. setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'. From 64d6ae805ce8a02fda4f69ae90c757eba68acb5a Mon Sep 17 00:00:00 2001 From: Denys Digtiar Date: Tue, 28 Nov 2017 14:19:01 +1000 Subject: [PATCH 156/322] Source correct module's `init.zsh` Now that modules can be located in different directories, the `init.zsh` should be loaded from the `$module_location` and not `$ZPREZTODIR/modules/$pmodule` --- init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/init.zsh b/init.zsh index 347b387c72..ccdfb01339 100644 --- a/init.zsh +++ b/init.zsh @@ -123,8 +123,8 @@ function pmodload { done } - if [[ -s "$ZPREZTODIR/modules/$pmodule/init.zsh" ]]; then - source "$ZPREZTODIR/modules/$pmodule/init.zsh" + if [[ -s "${pmodule_location}/init.zsh" ]]; then + source "${pmodule_location}/init.zsh" fi if (( $? == 0 )); then From 65bcbae8bc2731f5e07690eb339c40c82fe9a855 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 28 Nov 2017 09:19:35 -0800 Subject: [PATCH 157/322] Update zsh-autosuggestions to v0.4.1 --- modules/autosuggestions/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 2cb6eb6e29..9f9237ab8a 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 2cb6eb6e29852e64a146b0284275ecdc0661b082 +Subproject commit 9f9237ab8a530eeff389161202bbc7283ad6af3e From df3468e957e9d171a81a7e8646714abd9d248ab0 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 28 Nov 2017 15:10:13 -0800 Subject: [PATCH 158/322] Update zsh-async to v1.6.0 --- modules/prompt/external/async | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/async b/modules/prompt/external/async index d95adb7cb5..b001fa529a 160000 --- a/modules/prompt/external/async +++ b/modules/prompt/external/async @@ -1 +1 @@ -Subproject commit d95adb7cb58ec9d45bf024951770d975e089ef1d +Subproject commit b001fa529a874fbe8bd22a9d4526153138645289 From 043d09bbfe0c22656aa68819640d7fc323c8ba79 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 7 Jul 2017 17:04:30 -0500 Subject: [PATCH 159/322] [git] Support short-code and improve completion in 'git-hub-shorten-url' Changes: - Add optional short-code support - Improve completion for github.com URL (`http(s)://*.github.com` only) - Return with non-zero exit code appropriately --- modules/git/functions/_git-hub-shorten-url | 7 ++++++- modules/git/functions/git-hub-shorten-url | 8 +++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/git/functions/_git-hub-shorten-url b/modules/git/functions/_git-hub-shorten-url index 1d811caee7..7e65ded318 100644 --- a/modules/git/functions/_git-hub-shorten-url +++ b/modules/git/functions/_git-hub-shorten-url @@ -8,4 +8,9 @@ # Sorin Ionescu # -_arguments '::GitHub URL:_urls' && return 0 +local service="$service" + +zstyle ":completion:*:${service}:*:prefixes" ignored-patterns '^http(|s)://' +zstyle ":completion:*:${service}:*:hosts" ignored-patterns '^*github.com' + +_arguments '1::GitHub URL:_urls' '2::code:' && return 0 diff --git a/modules/git/functions/git-hub-shorten-url b/modules/git/functions/git-hub-shorten-url index f36662f4ec..470c093f1c 100644 --- a/modules/git/functions/git-hub-shorten-url +++ b/modules/git/functions/git-hub-shorten-url @@ -7,20 +7,22 @@ # function git-hub-shorten-url { -local url="$1" +local url="$1" code="$2" 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 + print "usage: $0 [ url | - ] [code] ; url must be a github.com URL" >&2 + return 1 fi if (( $+commands[curl] )); then - curl -s -i 'https://git.io' -F "url=$url" | sed -n 's/^Location: //p' + curl -s -i 'https://git.io' -F "url=$url" ${(s: :)code:+ -F "code=$code"} | sed -n 's/^Location: //p' else print "$0: command not found: curl" >&2 + return 1 fi # } From 8ed2c78de8d5094f9bc394c6cfd4e4c843420f0e Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 1 Dec 2017 10:55:54 -0800 Subject: [PATCH 160/322] editor: Avoid prompt redisplay on completion when there is no indicator Refs #1512 --- modules/editor/init.zsh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 96c87863b7..ed57a102fa 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -211,6 +211,14 @@ zle -N expand-dot-to-parent-directory-path function expand-or-complete-with-indicator { local indicator zstyle -s ':prezto:module:editor:info:completing' format 'indicator' + + # This is included to work around a bug in zsh which shows up when interacting + # with multi-line prompts. + if [[ -z "$indicator" ]]; then + zle expand-or-complete + return + fi + print -Pn "$indicator" zle expand-or-complete zle redisplay From 7cdde9b631fffd25ed0c91aaaf5180b86d832038 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 1 Dec 2017 14:51:05 -0800 Subject: [PATCH 161/322] pacman: Update README to recommend pacaur over yaourt --- modules/pacman/README.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/modules/pacman/README.md b/modules/pacman/README.md index 68ed92049e..855c8efad3 100644 --- a/modules/pacman/README.md +++ b/modules/pacman/README.md @@ -7,11 +7,15 @@ frontends. Settings -------- -To enable a Pacman frontend, for example, [Yaourt][2], add the following line to +It is possible to use a Pacman frontend with the pacman aliases provided by this +package as long as that frontend supports the same command line options (Such as +[Pacaur][2] or [Yaourt][3]). + +To enable a Pacman frontend, for example, [Pacaur][2], add the following line to *zpreztorc*: ```sh -zstyle ':prezto:module:pacman' frontend 'yaourt' +zstyle ':prezto:module:pacman' frontend 'pacaur' ``` If you have enabled color globally in *zpreztorc*, you may disable it for certain @@ -48,6 +52,9 @@ Aliases #### Yaourt +Note that there are currently potential security concerns relating to yaourt, so +other frontends are recommended. + - `pacc` manages *.pac\** files. Functions @@ -59,11 +66,12 @@ Functions Authors ------- -*The authors of this module should be contacted via the [issue tracker][3].* +*The authors of this module should be contacted via the [issue tracker][4].* - [Benjamin Boudreau](https://github.com/dreur) - [Sorin Ionescu](https://github.com/sorin-ionescu) [1]: http://www.archlinux.org/pacman/ -[2]: http://archlinux.fr/yaourt-en -[3]: https://github.com/sorin-ionescu/prezto/issues +[2]: https://github.com/rmarquis/pacaur +[3]: http://archlinux.fr/yaourt-en +[4]: https://github.com/sorin-ionescu/prezto/issues From 029414581e54f5b63156f81acd0d377e8eb78883 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sun, 3 Dec 2017 00:41:25 -0800 Subject: [PATCH 162/322] Add support for loading plugins in the oh-my-zsh format Closes #1484 --- init.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/init.zsh b/init.zsh index ccdfb01339..99254bdb58 100644 --- a/init.zsh +++ b/init.zsh @@ -125,6 +125,8 @@ function pmodload { if [[ -s "${pmodule_location}/init.zsh" ]]; then source "${pmodule_location}/init.zsh" + elif [[ -s "${pmodule_location}/${pmodule}.plugin.zsh" ]]; then + source "${pmodule_location}/${pmodule}.plugin.zsh" fi if (( $? == 0 )); then From e2785cc2469f87bad0376265778f87b6904efecb Mon Sep 17 00:00:00 2001 From: Joel Kuzmarski Date: Tue, 23 Aug 2016 10:31:34 -0500 Subject: [PATCH 163/322] Better TTY logic for zlogin and zlogout --- runcoms/zlogin | 11 +++++++---- runcoms/zlogout | 5 +++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/runcoms/zlogin b/runcoms/zlogin index 30549f33f6..16fae45e0f 100644 --- a/runcoms/zlogin +++ b/runcoms/zlogin @@ -14,10 +14,13 @@ fi } &! -# Print a random, hopefully interesting, adage. -if (( $+commands[fortune] )); then - if [[ -t 0 || -t 1 ]]; then +# Execute code only if STDERR is bound to a TTY. +[[ -o INTERACTIVE && -t 2 ]] && { + + # Print a random, hopefully interesting, adage. + if (( $+commands[fortune] )); then fortune -s print fi -fi + +} >&2 diff --git a/runcoms/zlogout b/runcoms/zlogout index 7c27e88581..56b6b5515e 100644 --- a/runcoms/zlogout +++ b/runcoms/zlogout @@ -5,9 +5,14 @@ # Sorin Ionescu # +# Execute code only if STDERR is bound to a TTY. +[[ -o INTERACTIVE && -t 2 ]] && { + # Print the message. cat <<-EOF Thank you. Come again! -- Dr. Apu Nahasapeemapetilon EOF + +} >&2 From b407ba0c3ae69fc606cff6bf55c50c2c117f3cf0 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 4 Dec 2017 12:01:07 -0800 Subject: [PATCH 164/322] python-info: provide python version info for theming Closes #1173 Closes #958 --- modules/python/README.md | 4 ++++ modules/python/functions/python-info | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/modules/python/README.md b/modules/python/README.md index 900158d60d..6860f2b678 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -135,6 +135,10 @@ following style in the `prompt_name_setup` function. Then add `$python_info[virtualenv]` to `$PROMPT` or `$RPROMPT` and call `python-info` in the `prompt_name_preexec` hook function. +Similarly, you can use `:prezto:module:python:info:version:format` with `%v` for +the version and add `$python_info[version]` to your prompt for the current +python version/ + Authors ------- diff --git a/modules/python/functions/python-info b/modules/python/functions/python-info index ccca99488b..e5eebc176f 100644 --- a/modules/python/functions/python-info +++ b/modules/python/functions/python-info @@ -11,6 +11,8 @@ local virtualenv_format local virtualenv_formatted +local version_format +local version_formatted # Clean up previous $python_info. unset python_info @@ -30,4 +32,10 @@ if [[ -n "$CONDA_DEFAULT_ENV" ]]; then python_info[virtualenv]="$virtualenv_formatted" fi +zstyle -s ':prezto:module:python:info:version' format 'version_format' +if [[ -n "$version_format" ]]; then + zformat -f version_formatted "$version_format" "v:${$(python3 --version)#Python }" + python_info[version]="$version_formatted" +fi + # } From 64d57ec71f3d97928e633d530a0e4d1439757fb7 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 4 Dec 2017 12:08:45 -0800 Subject: [PATCH 165/322] python-info: avoid setting python_info[version] if python is not on the PATH --- modules/python/functions/python-info | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/python/functions/python-info b/modules/python/functions/python-info index e5eebc176f..e5a83391b6 100644 --- a/modules/python/functions/python-info +++ b/modules/python/functions/python-info @@ -32,10 +32,12 @@ if [[ -n "$CONDA_DEFAULT_ENV" ]]; then python_info[virtualenv]="$virtualenv_formatted" fi -zstyle -s ':prezto:module:python:info:version' format 'version_format' -if [[ -n "$version_format" ]]; then - zformat -f version_formatted "$version_format" "v:${$(python3 --version)#Python }" - python_info[version]="$version_formatted" +if (( $+commands[python] )); then + zstyle -s ':prezto:module:python:info:version' format 'version_format' + if [[ -n "$version_format" ]]; then + zformat -f version_formatted "$version_format" "v:${$(python3 --version)#Python }" + python_info[version]="$version_formatted" + fi fi # } From 3a0bd28e0cccf07fd4acda74b92e5793f7cb4839 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 4 Dec 2017 15:08:23 -0800 Subject: [PATCH 166/322] ruby-info: only run commands if the prompt needs the info --- modules/ruby/functions/ruby-info | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/modules/ruby/functions/ruby-info b/modules/ruby/functions/ruby-info index 7e64c2793a..cba0188f98 100644 --- a/modules/ruby/functions/ruby-info +++ b/modules/ruby/functions/ruby-info @@ -16,22 +16,23 @@ local version_formatted unset ruby_info typeset -gA ruby_info -if (( $+commands[rvm-prompt] )); then - version="$(rvm-prompt)" -elif (( $+commands[rbenv] )); then - version="$(rbenv version-name)" - if [[ $version == "system" ]]; then - version="" +# Grab formatting for anything we might have to do +zstyle -s ':prezto:module:ruby:info:version' format 'version_format' + +if [[ -n "$version_format" ]]; then + if (( $+commands[rvm-prompt] )); then + version="$(rvm-prompt)" + elif (( $+commands[rbenv] )); then + version="$(rbenv version-name)" + elif (( $+commands[ruby] )); then + version="${${$(ruby --version)[(w)1,(w)2]}/ /-}" fi -elif (( $+commands[ruby] )); then - version="${${$(ruby --version)[(w)1,(w)2]}/ /-}" -fi -# Format version. -if [[ -n "$version" ]]; then - zstyle -s ':prezto:module:ruby:info:version' format 'version_format' - zformat -f version_formatted "$version_format" "v:$version" - ruby_info[version]="$version_formatted" + # Format version. + if [[ -n "$version" && "$version" != "system" ]]; then + zformat -f version_formatted "$version_format" "v:$version" + ruby_info[version]="$version_formatted" + fi fi # } From 3ab569ff786c324a0c597c1d1cff44491565d0f8 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 4 Dec 2017 15:08:58 -0800 Subject: [PATCH 167/322] python-info: add support for pyenv and only do extra work if the prompt needs it --- modules/python/functions/python-info | 38 ++++++++++++++++++---------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/modules/python/functions/python-info b/modules/python/functions/python-info index e5a83391b6..144a5b6a29 100644 --- a/modules/python/functions/python-info +++ b/modules/python/functions/python-info @@ -13,29 +13,39 @@ local virtualenv_format local virtualenv_formatted local version_format local version_formatted +local version # Clean up previous $python_info. unset python_info typeset -gA python_info +# Grab the styling we might have to do +zstyle -s ':prezto:module:python:info:virtualenv' format 'virtualenv_format' +zstyle -s ':prezto:module:python:info:version' format 'version_format' + # Format virtualenv. -if [[ -n "$VIRTUAL_ENV" ]]; then - zstyle -s ':prezto:module:python:info:virtualenv' format 'virtualenv_format' - zformat -f virtualenv_formatted "$virtualenv_format" "v:${VIRTUAL_ENV:t}" - python_info[virtualenv]="$virtualenv_formatted" -fi +if [[ -n "$virtualenv_format" ]]; then + if [[ -n "$VIRTUAL_ENV" ]]; then + zformat -f virtualenv_formatted "$virtualenv_format" "v:${VIRTUAL_ENV:t}" + python_info[virtualenv]="$virtualenv_formatted" + fi -# Do the same for Conda virtual environments -if [[ -n "$CONDA_DEFAULT_ENV" ]]; then - zstyle -s ':prezto:module:python:info:virtualenv' format 'virtualenv_format' - zformat -f virtualenv_formatted "$virtualenv_format" "v:${CONDA_DEFAULT_ENV:t}" - python_info[virtualenv]="$virtualenv_formatted" + # Do the same for Conda virtual environments + if [[ -n "$CONDA_DEFAULT_ENV" ]]; then + zformat -f virtualenv_formatted "$virtualenv_format" "v:${CONDA_DEFAULT_ENV:t}" + python_info[virtualenv]="$virtualenv_formatted" + fi fi -if (( $+commands[python] )); then - zstyle -s ':prezto:module:python:info:version' format 'version_format' - if [[ -n "$version_format" ]]; then - zformat -f version_formatted "$version_format" "v:${$(python3 --version)#Python }" +if [[ -n "$version_format" ]]; then + if (( $+commands[pyenv] )); then + version="${"$(pyenv version)"%% *}" + elif (( $+commands[python] )); then + version="${$(python3 --version)#Python }" + fi + + if [[ -n "$version" && "$version" != "system" ]]; then + zformat -f version_formatted "$version_format" "v:$version" python_info[version]="$version_formatted" fi fi From aa0395244d3136b5c7b3495feb5c39beaff4206e Mon Sep 17 00:00:00 2001 From: "Brian K. Christensen" Date: Thu, 7 Dec 2017 09:19:47 +0100 Subject: [PATCH 168/322] Update zsh-autosuggestions to v0.4.2 --- modules/autosuggestions/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 9f9237ab8a..15931f04ff 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 9f9237ab8a530eeff389161202bbc7283ad6af3e +Subproject commit 15931f04ffac91a2f9a1a044b6b3ee4050751064 From e021adeb4a628387e853004427e3ea373207ee5a Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 11 Dec 2017 11:01:40 -0800 Subject: [PATCH 169/322] python: make a reasonable guess about virtualenvwrapper python location Fixes #1416 --- modules/autosuggestions/external | 2 +- modules/python/README.md | 18 +++++++++++++++--- modules/python/init.zsh | 14 ++++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 15931f04ff..9f9237ab8a 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 15931f04ffac91a2f9a1a044b6b3ee4050751064 +Subproject commit 9f9237ab8a530eeff389161202bbc7283ad6af3e diff --git a/modules/python/README.md b/modules/python/README.md index 6860f2b678..0cd676bda1 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -8,11 +8,15 @@ Settings This module supports virtual environments from conda and virtualenvwrapper. By default, only virtualenvwrapper is enabled. To disable virtualenvwrapper, add the following to *zpreztorc*. - zstyle ':prezto:module:python' skip-virtualenvwrapper-init 'on' +```sh +zstyle ':prezto:module:python' skip-virtualenvwrapper-init 'on' +``` Conda support is enabled by adding the following to *zpreztorc*. - zstyle ':prezto:module:python' conda-init 'on' +```sh +zstyle ':prezto:module:python' conda-init 'on' +``` Caution: using conda and virtualenvwrapper at the same time may cause conflicts. @@ -106,10 +110,18 @@ zstyle ':prezto:module:python:virtualenv' auto-switch 'yes' (`$VIRTUALENVWRAPPER_VIRTUALENV` is explicitly set or `virtualenv` is in `$PATH`). This can be disabled with: -``` +```sh zstyle ':prezto:module:python:virtualenv' initialize 'no' ``` +On some systems, the `python` binary doesn't exist so in order to get +virtualenvwrapper to work, the path needs to specified. We do our best to detect +this, but sometimes it needs manual intervention. + +```sh +zstyle ':prezto:module:python:virtualenvwrapper' python-path /opt/python3/bin/python3 +``` + Aliases ------- diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 0d15fc03af..365efc4854 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -114,6 +114,20 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ else # Fallback to 'virtualenvwrapper' without 'pyenv' wrapper if available # in '$path' or in an alternative location on a Debian based system. + # + # If the python-path was manually specified, use that. Otherwise, fall back + # to python3 then python2 in that order. This is needed to fix an issue with + # virtualenvwrapper when used with homebrew, as it no longer shadows the + # system python. + zstyle -s ':prezto:module:python:virtualenvwrapper' python-path '_venv_python' + if [[ -n "$_venv_python" ]]; then + export VIRTUALENVWRAPPER_PYTHON=$_venv_python + elif (( $+commands[python3] )); then + export VIRTUALENVWRAPPER_PYTHON=$commands[python3] + elif (( $+commands[python2] )); then + export VIRTUALENVWRAPPER_PYTHON=$commands[python2] + fi + virtenv_sources=( ${(@Ov)commands[(I)virtualenvwrapper(_lazy|).sh]} /usr/share/virtualenvwrapper/virtualenvwrapper(_lazy|).sh(OnN) From d8d6b4d70a09cb78eab6f524e1e448a2a84cc155 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 12 Dec 2017 23:11:51 -0800 Subject: [PATCH 170/322] python: only override virtualenvwrapper python when needed Fixes #1519 --- modules/autosuggestions/external | 2 +- modules/python/init.zsh | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 9f9237ab8a..15931f04ff 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 9f9237ab8a530eeff389161202bbc7283ad6af3e +Subproject commit 15931f04ffac91a2f9a1a044b6b3ee4050751064 diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 365efc4854..68c8c8959b 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -115,16 +115,16 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ # Fallback to 'virtualenvwrapper' without 'pyenv' wrapper if available # in '$path' or in an alternative location on a Debian based system. # - # If the python-path was manually specified, use that. Otherwise, fall back - # to python3 then python2 in that order. This is needed to fix an issue with - # virtualenvwrapper when used with homebrew, as it no longer shadows the - # system python. + # If the python-path was manually specified, use that. Otherwise, if + # homebrew is installed we fall back to python3 then python2 in that + # order. This is needed to fix an issue with virtualenvwrapper as homebrew + # no longer shadows the system python. zstyle -s ':prezto:module:python:virtualenvwrapper' python-path '_venv_python' if [[ -n "$_venv_python" ]]; then export VIRTUALENVWRAPPER_PYTHON=$_venv_python - elif (( $+commands[python3] )); then + elif (( $+commands[brew] )) && (( $+commands[python3] )); then export VIRTUALENVWRAPPER_PYTHON=$commands[python3] - elif (( $+commands[python2] )); then + elif (( $+commands[brew] )) && (( $+commands[python2] )); then export VIRTUALENVWRAPPER_PYTHON=$commands[python2] fi From 4c31107e3b21e399790b2577efab0ef537b2ecc4 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 14 Dec 2017 17:11:03 -0800 Subject: [PATCH 171/322] python: only override virtualenv python if not set Fixes #1520 --- modules/autosuggestions/external | 2 +- modules/python/init.zsh | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 15931f04ff..9f9237ab8a 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 15931f04ffac91a2f9a1a044b6b3ee4050751064 +Subproject commit 9f9237ab8a530eeff389161202bbc7283ad6af3e diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 68c8c8959b..5e4b79b017 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -116,16 +116,19 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ # in '$path' or in an alternative location on a Debian based system. # # If the python-path was manually specified, use that. Otherwise, if - # homebrew is installed we fall back to python3 then python2 in that - # order. This is needed to fix an issue with virtualenvwrapper as homebrew - # no longer shadows the system python. + # homebrew is installed and it wasn't overridden via environment variable + # we fall back to python3 then python2 in that order. This is needed to + # fix an issue with virtualenvwrapper as homebrew no longer shadows the + # system python. zstyle -s ':prezto:module:python:virtualenvwrapper' python-path '_venv_python' if [[ -n "$_venv_python" ]]; then export VIRTUALENVWRAPPER_PYTHON=$_venv_python - elif (( $+commands[brew] )) && (( $+commands[python3] )); then - export VIRTUALENVWRAPPER_PYTHON=$commands[python3] - elif (( $+commands[brew] )) && (( $+commands[python2] )); then - export VIRTUALENVWRAPPER_PYTHON=$commands[python2] + elif [[ -z "$VIRTUALENVWRAPPER_PYTHON" ]] && (( $+commands[brew] )); then + if (( $+commands[python3] )); then + export VIRTUALENVWRAPPER_PYTHON=$commands[python3] + elif (( $+commands[python2] )); then + export VIRTUALENVWRAPPER_PYTHON=$commands[python2] + fi fi virtenv_sources=( From 83085e523142357167b854eb6b0c8c6acdbe506e Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 14 Dec 2017 17:23:40 -0800 Subject: [PATCH 172/322] python: remove zstyle setting in favor of third party environment variable Refs #1519, #1520 --- modules/python/README.md | 8 -------- modules/python/init.zsh | 14 +++++--------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/modules/python/README.md b/modules/python/README.md index 0cd676bda1..e7b72c480b 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -114,14 +114,6 @@ zstyle ':prezto:module:python:virtualenv' auto-switch 'yes' zstyle ':prezto:module:python:virtualenv' initialize 'no' ``` -On some systems, the `python` binary doesn't exist so in order to get -virtualenvwrapper to work, the path needs to specified. We do our best to detect -this, but sometimes it needs manual intervention. - -```sh -zstyle ':prezto:module:python:virtualenvwrapper' python-path /opt/python3/bin/python3 -``` - Aliases ------- diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 5e4b79b017..94eeab7987 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -115,15 +115,11 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ # Fallback to 'virtualenvwrapper' without 'pyenv' wrapper if available # in '$path' or in an alternative location on a Debian based system. # - # If the python-path was manually specified, use that. Otherwise, if - # homebrew is installed and it wasn't overridden via environment variable - # we fall back to python3 then python2 in that order. This is needed to - # fix an issue with virtualenvwrapper as homebrew no longer shadows the - # system python. - zstyle -s ':prezto:module:python:virtualenvwrapper' python-path '_venv_python' - if [[ -n "$_venv_python" ]]; then - export VIRTUALENVWRAPPER_PYTHON=$_venv_python - elif [[ -z "$VIRTUALENVWRAPPER_PYTHON" ]] && (( $+commands[brew] )); then + # If homebrew is installed and the python location wasn't overridden via + # environment variable we fall back to python3 then python2 in that order. + # This is needed to fix an issue with virtualenvwrapper as homebrew no + # longer shadows the system python. + if [[ -z "$VIRTUALENVWRAPPER_PYTHON" ]] && (( $+commands[brew] )); then if (( $+commands[python3] )); then export VIRTUALENVWRAPPER_PYTHON=$commands[python3] elif (( $+commands[python2] )); then From 66bfe9be27a1e63cd4bf8ae1e802b10a3068bd07 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 14 Dec 2017 22:26:13 -0800 Subject: [PATCH 173/322] autosuggestions: ensure external submodule is the latest version --- modules/autosuggestions/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 9f9237ab8a..15931f04ff 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 9f9237ab8a530eeff389161202bbc7283ad6af3e +Subproject commit 15931f04ffac91a2f9a1a044b6b3ee4050751064 From 82d3265ad510f366a09ee43aa83973a2a02f644a Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 18 Dec 2017 13:35:19 -0800 Subject: [PATCH 174/322] utility: remove usage of noremoteglob until bugs can be fixed Fixes #1443, #1521 --- modules/utility/init.zsh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 75e72b26a3..1ccf13b73d 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -41,8 +41,8 @@ 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. @@ -223,6 +223,10 @@ function psu { # Example: # - Local: '*.txt', './foo:2017*.txt', '/var/*:log.txt' # - Remote: user@localhost:foo/ +# +# NOTE: This function is buggy and is not used anywhere until we can make sure +# it's fixed. See https://github.com/sorin-ionescu/prezto/issues/1443 and +# https://github.com/sorin-ionescu/prezto/issues/1521 for more information. function noremoteglob { local -a argo local cmd="$1" From 73e94b84bbe9bebfe612438507a53885485938cb Mon Sep 17 00:00:00 2001 From: Salmanul Farzy Date: Sun, 14 Jan 2018 14:15:28 +0530 Subject: [PATCH 175/322] Don't set auto_name_dirs because it messes up prompts This was ported from Oh-My-Zsh and since have been disabled in it. Explained in more detail rvm/rvm/issues/3091#issuecomment-60083194 Related: #998, #1081 --- modules/directory/init.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/directory/init.zsh b/modules/directory/init.zsh index 47191dfe4f..8abc1e2407 100644 --- a/modules/directory/init.zsh +++ b/modules/directory/init.zsh @@ -16,7 +16,6 @@ setopt PUSHD_IGNORE_DUPS # Do not store duplicates in the stack. setopt PUSHD_SILENT # Do not print the directory stack after pushd or popd. setopt PUSHD_TO_HOME # Push to home directory when no argument is given. setopt CDABLE_VARS # Change directory to a path stored in a variable. -setopt AUTO_NAME_DIRS # Auto add variable-stored paths to ~ list. setopt MULTIOS # Write to multiple descriptors. setopt EXTENDED_GLOB # Use extended globbing syntax. unsetopt CLOBBER # Do not overwrite existing files with > and >>. From e32a96be72a2a6708c90e91f17036cfbc3ef270d Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Wed, 24 Jan 2018 13:47:20 -0800 Subject: [PATCH 176/322] pacman: Simplify support for AUR helpers There are a number of things happening here. - Extra support for yaourt has been removed - Docs have been updated to explicitly call out that AUR helpers are not officially supported - aurutils has been suggested to make common operations easier - A utility function called aurget (similar to aurfetch from aurutils) has been added to make cloning AUR repos easier. Fixes #1531 --- modules/pacman/README.md | 40 ++++++++++++++++----------------------- modules/pacman/init.zsh | 12 ++++++++---- modules/pacman/yaourt.zsh | 18 ------------------ 3 files changed, 24 insertions(+), 46 deletions(-) delete mode 100644 modules/pacman/yaourt.zsh diff --git a/modules/pacman/README.md b/modules/pacman/README.md index 855c8efad3..86929b4094 100644 --- a/modules/pacman/README.md +++ b/modules/pacman/README.md @@ -8,23 +8,20 @@ Settings -------- It is possible to use a Pacman frontend with the pacman aliases provided by this -package as long as that frontend supports the same command line options (Such as -[Pacaur][2] or [Yaourt][3]). +package as long as that frontend supports the same command line options (The +[AUR Helpers][2] page has a good comparison which lists if the command line +options are pacman compatible). -To enable a Pacman frontend, for example, [Pacaur][2], add the following line to -*zpreztorc*: +Please note that installing packages with an AUR Helper is not officially +supported by Archlinux. It is currently recommended to manually build AUR +packages using the [provided instructions][3]. The [aurtools][4] project has a +set of small utilities to make this easier. -```sh -zstyle ':prezto:module:pacman' frontend 'pacaur' -``` - -If you have enabled color globally in *zpreztorc*, you may disable it for certain -commands. - -To disable `yaourt` highlighting, add the following line to *zpreztorc*: +To enable a Pacman frontend, add the following line to *zpreztorc*, substituting +`pacman_frontend` with the name of the frontent: ```sh -zstyle ':prezto:module:pacman:yaourt' color 'no' +zstyle ':prezto:module:pacman' frontend 'pacman_frontend' ``` Aliases @@ -50,28 +47,23 @@ Aliases ### Frontends -#### Yaourt - -Note that there are currently potential security concerns relating to yaourt, so -other frontends are recommended. - - - `pacc` manages *.pac\** files. - Functions --------- + - `aurget` clone an aur package - `pacman-list-explicit` lists explicitly installed pacman packages. - `pacman-list-disowned` lists pacman disowned files. Authors ------- -*The authors of this module should be contacted via the [issue tracker][4].* +*The authors of this module should be contacted via the [issue tracker][5].* - [Benjamin Boudreau](https://github.com/dreur) - [Sorin Ionescu](https://github.com/sorin-ionescu) [1]: http://www.archlinux.org/pacman/ -[2]: https://github.com/rmarquis/pacaur -[3]: http://archlinux.fr/yaourt-en -[4]: https://github.com/sorin-ionescu/prezto/issues +[2]: https://wiki.archlinux.org/index.php/AUR_helpers#Comparison_table +[3]: https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages +[4]: https://github.com/AladW/aurutils +[5]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/pacman/init.zsh b/modules/pacman/init.zsh index a5cacf2c44..88c977f6b3 100644 --- a/modules/pacman/init.zsh +++ b/modules/pacman/init.zsh @@ -23,10 +23,6 @@ zstyle -s ':prezto:module:pacman' frontend '_pacman_frontend' if (( $+commands[$_pacman_frontend] )); then alias pacman="$_pacman_frontend" - - if [[ -s "${0:h}/${_pacman_frontend}.zsh" ]]; then - source "${0:h}/${_pacman_frontend}.zsh" - fi else _pacman_frontend='pacman' _pacman_sudo='sudo ' @@ -81,4 +77,12 @@ fi # upgrades outdated packages. alias pacU="${_pacman_sudo}${_pacman_frontend} --sync --refresh --sysupgrade" +function aurget { + local target_dir="$1" + if [[ -n "$2" ]]; then + target_dir="$2" + fi + git clone "https://aur.archlinux.org/$1" "$target_dir" +} + unset _pacman_{frontend,sudo} diff --git a/modules/pacman/yaourt.zsh b/modules/pacman/yaourt.zsh deleted file mode 100644 index 819fad16be..0000000000 --- a/modules/pacman/yaourt.zsh +++ /dev/null @@ -1,18 +0,0 @@ -# -# Defines Yaourt aliases. -# -# Authors: -# Sorin Ionescu -# - -# -# Aliases -# - -# Disable color. -if ! zstyle -t ':prezto:module:pacman:yaourt' color; then - alias pacman='yaourt --nocolor' -fi - -# Manages .pac* files. -alias pacc='yaourt -C' From 54d2a76731041ccefd0f19e17fd87e970081cea7 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Wed, 24 Jan 2018 14:01:14 -0800 Subject: [PATCH 177/322] pacman: fix mistake where aurutils should be used, not aurtools --- modules/pacman/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/pacman/README.md b/modules/pacman/README.md index 86929b4094..a619a74777 100644 --- a/modules/pacman/README.md +++ b/modules/pacman/README.md @@ -14,7 +14,7 @@ options are pacman compatible). Please note that installing packages with an AUR Helper is not officially supported by Archlinux. It is currently recommended to manually build AUR -packages using the [provided instructions][3]. The [aurtools][4] project has a +packages using the [provided instructions][3]. The [aurutils][4] project has a set of small utilities to make this easier. To enable a Pacman frontend, add the following line to *zpreztorc*, substituting From 0b62639ad5ede91f118f427f70e21a47dda5bdd4 Mon Sep 17 00:00:00 2001 From: Maxim Baz Date: Thu, 25 Jan 2018 20:59:21 +0100 Subject: [PATCH 178/322] Set INTERACTIVE_COMMENTS by default This allows using # to comment lines in the interactive shell --- modules/editor/init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index ed57a102fa..50c8728845 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -14,8 +14,8 @@ fi # Options # -# Beep on error in line editor. -setopt BEEP +setopt BEEP # Beep on error in line editor. +setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell. # # Variables From 906ac99e203a5b193b0df78b6c53819e0cf56ab1 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 25 Jan 2018 12:41:58 -0800 Subject: [PATCH 179/322] Move INTERACTIVE_COMMENTS from editor to environment --- modules/editor/init.zsh | 1 - modules/environment/init.zsh | 9 +++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 50c8728845..0c39c0a616 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -15,7 +15,6 @@ fi # setopt BEEP # Beep on error in line editor. -setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell. # # Variables diff --git a/modules/environment/init.zsh b/modules/environment/init.zsh index 79e98a4a24..4f3bbfe35a 100644 --- a/modules/environment/init.zsh +++ b/modules/environment/init.zsh @@ -32,10 +32,11 @@ fi # General # -setopt COMBINING_CHARS # Combine zero-length punctuation characters (accents) - # with the base character. -setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'. -unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed. +setopt COMBINING_CHARS # Combine zero-length punctuation characters (accents) + # with the base character. +setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell. +setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'. +unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed. # # Jobs From 904eef5fa5152f6d3b12fc1d0d7c0b7af5818e84 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 26 Jan 2018 14:52:11 -0800 Subject: [PATCH 180/322] Add `pound-toggle` zle widget to work around the buggy built-in `pound-insert` Refs #1533, #1534 --- modules/editor/init.zsh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 0c39c0a616..3c4c9df6ab 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -241,6 +241,24 @@ function glob-alias { } zle -N glob-alias +# Toggle the comment character at the start of the line. This is meant to work +# around a buggy implementation of pound-insert in zsh. +function pound-toggle { + if [[ "$BUFFER" = '#'* ]]; then + # Because of an oddity in how zsh handles the cursor when the buffer size + # changes, we need to make this check before we modify the buffer and let + # zsh handle moving the cursor back if it's past the end of the line. + if [[ $CURSOR != $#BUFFER ]]; then + (( CURSOR -= 1 )) + fi + BUFFER="${BUFFER:1}" + else + BUFFER="#$BUFFER" + (( CURSOR += 1 )) + fi +} +zle -N pound-toggle + # Reset to default key bindings. bindkey -d @@ -276,6 +294,10 @@ if (( $+widgets[history-incremental-pattern-search-backward] )); then history-incremental-pattern-search-forward fi +# Toggle comment at the start of the line. +bindkey -M emacs "$key_info[Escape];" pound-toggle + + # # Vi Key Bindings # From 282b478fd2eb6658c063d4f32b9856201e5b886c Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 26 Jan 2018 18:14:10 -0800 Subject: [PATCH 181/322] Add vi-pound-insert as # in vicmd mode Fixes #1534 --- modules/editor/init.zsh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 3c4c9df6ab..085947ef61 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -243,6 +243,9 @@ zle -N glob-alias # Toggle the comment character at the start of the line. This is meant to work # around a buggy implementation of pound-insert in zsh. +# +# This is currently only used for the emacs keys because vi-pound-insert has +# been reported to work properly. function pound-toggle { if [[ "$BUFFER" = '#'* ]]; then # Because of an oddity in how zsh handles the cursor when the buffer size @@ -294,7 +297,9 @@ if (( $+widgets[history-incremental-pattern-search-backward] )); then history-incremental-pattern-search-forward fi -# Toggle comment at the start of the line. +# Toggle comment at the start of the line. Note that we use pound-toggle which +# is similar to pount insert, but meant to work around some issues that were +# being seen in iTerm. bindkey -M emacs "$key_info[Escape];" pound-toggle @@ -317,6 +322,9 @@ else bindkey -M vicmd "/" history-incremental-search-forward fi +# Toggle comment at the start of the line. +bindkey -M vicmd "#" vi-pound-insert + # # Emacs and Vi Key Bindings # From d7622624aaddab6ee34c66efba4f83860a6fa622 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sat, 17 Feb 2018 08:06:34 -0800 Subject: [PATCH 182/322] autosuggestions: add basic history troubleshooting information --- modules/autosuggestions/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/autosuggestions/README.md b/modules/autosuggestions/README.md index ad0f7eced9..c3e90a4916 100644 --- a/modules/autosuggestions/README.md +++ b/modules/autosuggestions/README.md @@ -46,6 +46,14 @@ To set the query found color, add the following line to *zpreztorc*: zstyle ':prezto:module:autosuggestions:color' found '' ``` +Troubleshooting +--------------- + +### Autosuggestions from previous sessions don't show up + +For autosuggestions from previous shell sessions to work, please make sure you +also have the `history` module enabled. + Authors ------- From e26387656d833ae7321c06415a65118af08b6d89 Mon Sep 17 00:00:00 2001 From: Alexey Zapparov Date: Mon, 12 Feb 2018 04:28:51 +0100 Subject: [PATCH 183/322] Don't double-source chruby If chruby was installed using default way, most likely chruby and auto-switching will be already sourced (at least on most Linuxes). --- modules/ruby/init.zsh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/ruby/init.zsh b/modules/ruby/init.zsh index 3f666c3e0b..4ede36675f 100644 --- a/modules/ruby/init.zsh +++ b/modules/ruby/init.zsh @@ -25,9 +25,14 @@ elif (( $+commands[rbenv] )); then # Load package manager installed chruby into the shell session. elif (( $+commands[chruby-exec] )); then - source "${commands[chruby-exec]:h:h}/share/chruby/chruby.sh" + if (( ! $+functions[chruby] )); then + source "${commands[chruby-exec]:h:h}/share/chruby/chruby.sh" + fi + if zstyle -t ':prezto:module:ruby:chruby' auto-switch; then - source "${commands[chruby-exec]:h:h}/share/chruby/auto.sh" + if (( ! $+functions[chruby_auto] )); then + source "${commands[chruby-exec]:h:h}/share/chruby/auto.sh" + fi # If a default Ruby is set, switch to it. chruby_auto From 6d00fdf8c8e4003a89d622590265d80356a7a95f Mon Sep 17 00:00:00 2001 From: "John P. Neumann" Date: Tue, 20 Feb 2018 22:36:29 -0600 Subject: [PATCH 184/322] Only call reset-prompt when the appropriate zstyle is set Resolves issue #1524 (#1548) --- modules/editor/README.md | 2 ++ modules/editor/init.zsh | 15 ++++++++------- modules/prompt/functions/prompt_smiley_setup | 2 +- runcoms/zpreztorc | 3 --- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/editor/README.md b/modules/editor/README.md index c27e8642c0..f0799611f9 100644 --- a/modules/editor/README.md +++ b/modules/editor/README.md @@ -26,6 +26,8 @@ zstyle ':prezto:module:editor' dot-expansion 'yes' ### PS Context +**NOTE:** *This is deprecated and will be removed in future versions.* + To enable the prompt context to be set, add the following to your *zpreztorc*. diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 085947ef61..df019e7609 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -116,20 +116,21 @@ function editor-info { } zle -N editor-info -# Reset the prompt based on the current context and -# the ps-context option. +# Reset the prompt based on the current context and whether the prompt utilizes +# the editor:info zstyle. If the prompt does utilize the editor:info, we must +# reset the prompt, otherwise the change in the prompt will never update. If the +# prompt does not utilize the editor:info, we simply redisplay the command line. function zle-reset-prompt { - if zstyle -t ':prezto:module:editor' ps-context; then + # Explicitly check to see if there is an editor info keymap set that would + # require a reset of the prompt + if zstyle -L ':prezto:module:editor:info*' | grep -v 'completing' > /dev/null 2>&1; 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 -R } zle -N zle-reset-prompt diff --git a/modules/prompt/functions/prompt_smiley_setup b/modules/prompt/functions/prompt_smiley_setup index 3066a2dc2b..3d41b3af46 100644 --- a/modules/prompt/functions/prompt_smiley_setup +++ b/modules/prompt/functions/prompt_smiley_setup @@ -36,7 +36,7 @@ function prompt_smiley_precmd { function prompt_smiley_setup { unsetopt XTRACE KSH_ARRAYS - prompt_opts=(percent subst) + prompt_opts=(cr percent sp subst) # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_smiley_precmd diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index c109155565..d2a1572936 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -62,9 +62,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 # From 4325f74f9dfc83d01409c78fd126a5d29f0a3a55 Mon Sep 17 00:00:00 2001 From: Rick Jones Date: Tue, 8 Mar 2016 16:00:29 +0000 Subject: [PATCH 185/322] git: add tag aliases Originally submitted in https://github.com/sorin-ionescu/prezto/pull/1094 --- modules/git/README.md | 5 +++++ modules/git/alias.zsh | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/modules/git/README.md b/modules/git/README.md index bd67f712cc..6bc8429e41 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -288,6 +288,11 @@ zstyle ':prezto:module:git:alias' skip 'yes' - `gSu` fetches and merges the latest changes for all submodule. - `gSx` removes a submodule. +### Tag + + - `gt` lists tags or creates tag. + - `gtl` lists tags matching pattern. + ### Working directory - `gws` displays working-tree status in the short format. diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 4a5789fe1d..a54a2e0828 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -250,6 +250,10 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then alias gSu='git submodule foreach git pull origin master' alias gSx='git-submodule-remove' + # Tag (t) + alias gt='git tag' + alias gtl='git tag -l' + # Working Copy (w) alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short' alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}' From 580ddc44f3c567202670f62047cc1edb2e0d09ab Mon Sep 17 00:00:00 2001 From: Philipp A Date: Fri, 25 Sep 2015 12:38:12 +0200 Subject: [PATCH 186/322] Add another shadow to the git aliases Originally submitted in https://github.com/sorin-ionescu/prezto/pull/979 --- modules/git/README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/git/README.md b/modules/git/README.md index 6bc8429e41..1eba33cb78 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -312,9 +312,10 @@ zstyle ':prezto:module:git:alias' skip 'yes' 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]. + - `gm` shadows the [Graphics Magick image processor][11]. + - `gpt` shadows the [GUID partition table maintenance utility][4]. + - `gs` shadows the [Ghostscript interpreter and previewer][5]. 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`. @@ -439,9 +440,10 @@ Authors [2]: https://github.com/defunkt/hub [3]: https://www.github.com [4]: http://www.manpagez.com/man/8/gpt/ -[5]: http://linux.die.net/man/1/gs +[5]: http://www.manpagez.com/man/1/gs/ [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 +[11]: http://www.manpagez.com/man/1/gm/ From 742260b55f3071352776e51d8e83544db62a37a9 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Wed, 21 Feb 2018 14:10:11 -0800 Subject: [PATCH 187/322] Remove support for pydf to make options more consistent Closes #1388 --- modules/utility/init.zsh | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 1ccf13b73d..c6c87d2ae6 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -151,12 +151,7 @@ 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 From e00562e7cf20c48a255212a088ab134ea0c6a543 Mon Sep 17 00:00:00 2001 From: bryndin Date: Fri, 23 Feb 2018 13:39:45 -0800 Subject: [PATCH 188/322] python: autoload add-zsh-hook when needed (#1549) Fixes #1550 --- modules/python/init.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 94eeab7987..bb48f6cda6 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -82,6 +82,7 @@ function _python-workon-cwd { # Load auto workon cwd hook if zstyle -t ':prezto:module:python:virtualenv' auto-switch 'yes'; then # Auto workon when changing directory + autoload -Uz add-zsh-hook add-zsh-hook chpwd _python-workon-cwd fi From b3c27bb16460c677eabbe3d8e210f79fb5e8189b Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Mon, 5 Mar 2018 05:56:25 -0300 Subject: [PATCH 189/322] Replace git with 'command git' (#1551) to improve performance if git is aliased to hub or other wrappers. --- modules/git/functions/_git-hub-browse | 8 +++--- modules/git/functions/_git-info | 2 +- modules/git/functions/_git-submodule-move | 4 +-- modules/git/functions/_git-submodule-remove | 4 +-- modules/git/functions/git-branch-current | 4 +-- modules/git/functions/git-commit-lost | 6 ++-- modules/git/functions/git-dir | 2 +- modules/git/functions/git-hub-browse | 10 +++---- modules/git/functions/git-info | 28 +++++++++---------- modules/git/functions/git-root | 2 +- .../git/functions/git-stash-clear-interactive | 6 ++-- modules/git/functions/git-stash-dropped | 6 ++-- modules/git/functions/git-stash-recover | 6 ++-- modules/git/functions/git-submodule-move | 6 ++-- modules/git/functions/git-submodule-remove | 12 ++++---- modules/utility/functions/wdiff | 2 +- 16 files changed, 54 insertions(+), 54 deletions(-) diff --git a/modules/git/functions/_git-hub-browse b/modules/git/functions/_git-hub-browse index 9e6d6f0d5c..075314bb90 100644 --- a/modules/git/functions/_git-hub-browse +++ b/modules/git/functions/_git-hub-browse @@ -8,7 +8,7 @@ # Sorin Ionescu # -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then return 1 fi @@ -21,7 +21,7 @@ _arguments -C -s -S \ case "$state" in (remote) - remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2)) + remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2)) _describe -t branch 'remotes' remotes && ret=0 ;; @@ -29,7 +29,7 @@ case "$state" in remote="$words[(($CURRENT - 1))]" branches_or_tags=($( - git ls-remote --heads --tags "$remote" 2> /dev/null | cut -f2 + command 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 command 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-info b/modules/git/functions/_git-info index 1e21bfeb1a..ef6d97026b 100644 --- a/modules/git/functions/_git-info +++ b/modules/git/functions/_git-info @@ -8,7 +8,7 @@ # Sorin Ionescu # -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then return 1 fi diff --git a/modules/git/functions/_git-submodule-move b/modules/git/functions/_git-submodule-move index 44eddb5402..5f2122c4d1 100644 --- a/modules/git/functions/_git-submodule-move +++ b/modules/git/functions/_git-submodule-move @@ -8,7 +8,7 @@ # Sorin Ionescu # -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then return 1 fi @@ -25,7 +25,7 @@ case "$state" in while IFS=$'\n' read submodule; do submodules+=("$submodule") done < <( - git config --file "$(git-root)/.gitmodules" --list \ + command git config --file "$(git-root)/.gitmodules" --list \ | grep '.path=' \ | cut -d= -f2- ) diff --git a/modules/git/functions/_git-submodule-remove b/modules/git/functions/_git-submodule-remove index 87bd7cb006..819dfd8e36 100644 --- a/modules/git/functions/_git-submodule-remove +++ b/modules/git/functions/_git-submodule-remove @@ -8,7 +8,7 @@ # Sorin Ionescu # -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then return 1 fi @@ -18,7 +18,7 @@ local submodule while IFS=$'\n' read submodule; do submodules+=("$submodule") done < <( - git config --file "$(git-root)/.gitmodules" --list \ + command git config --file "$(git-root)/.gitmodules" --list \ | grep '.path=' \ | cut -d= -f2- ) diff --git a/modules/git/functions/git-branch-current b/modules/git/functions/git-branch-current index cadb6f63df..3cf2e191d1 100644 --- a/modules/git/functions/git-branch-current +++ b/modules/git/functions/git-branch-current @@ -7,12 +7,12 @@ # function git-branch-current { -if ! git rev-parse 2> /dev/null; then +if ! command git rev-parse 2> /dev/null; then print "$0: not a repository: $PWD" >&2 return 1 fi -local ref="$(git symbolic-ref HEAD 2> /dev/null)" +local ref="$(command git symbolic-ref HEAD 2> /dev/null)" if [[ -n "$ref" ]]; then print "${ref#refs/heads/}" diff --git a/modules/git/functions/git-commit-lost b/modules/git/functions/git-commit-lost index 62789ac916..1f086d3b95 100644 --- a/modules/git/functions/git-commit-lost +++ b/modules/git/functions/git-commit-lost @@ -7,15 +7,15 @@ # function git-commit-lost { -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 fi -git fsck 2> /dev/null \ +command git fsck 2> /dev/null \ | grep "^dangling commit" \ | awk '{print $3}' \ - | git log \ + | command git log \ --date-order \ --no-walk \ --stdin \ diff --git a/modules/git/functions/git-dir b/modules/git/functions/git-dir index fdb515c5d4..aacaaa8866 100644 --- a/modules/git/functions/git-dir +++ b/modules/git/functions/git-dir @@ -7,7 +7,7 @@ # function git-dir { -local git_dir="${$(git rev-parse --git-dir):A}" +local git_dir="${$(command git rev-parse --git-dir):A}" if [[ -n "$git_dir" ]]; then print "$git_dir" diff --git a/modules/git/functions/git-hub-browse b/modules/git/functions/git-hub-browse index a365a5a9ae..cb3fc60de8 100644 --- a/modules/git/functions/git-hub-browse +++ b/modules/git/functions/git-hub-browse @@ -7,7 +7,7 @@ # function git-hub-browse { -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 fi @@ -15,7 +15,7 @@ fi local remotes remote references reference file url remote="${1:-origin}" -remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2)) +remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2)) if (( $remotes[(i)$remote] == $#remotes + 1 )); then print "$0: remote not found: $remote" >&2 @@ -23,14 +23,14 @@ if (( $remotes[(i)$remote] == $#remotes + 1 )); then fi url=$( - git config --get "remote.${remote}.url" \ + command git config --get "remote.${remote}.url" \ | sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p" ) reference="${${2:-$(git-branch-current)}:-HEAD}" references=( HEAD - ${$(git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/} + ${$(command git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/} ) if (( $references[(i)$reference] == $#references + 1 )); then @@ -39,7 +39,7 @@ if (( $references[(i)$reference] == $#references + 1 )); then fi if [[ "$reference" == 'HEAD' ]]; then - reference="$(git rev-parse HEAD 2> /dev/null)" + reference="$(command git rev-parse HEAD 2> /dev/null)" fi file="$3" diff --git a/modules/git/functions/git-info b/modules/git/functions/git-info index d27365c243..a173c20f14 100644 --- a/modules/git/functions/git-info +++ b/modules/git/functions/git-info @@ -178,15 +178,15 @@ function git-info { typeset -gA git_info # Return if not inside a Git repository work tree. - if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then + if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then return 1 fi if (( $# > 0 )); then if [[ "$1" == [Oo][Nn] ]]; then - git config --bool prompt.showinfo true + command git config --bool prompt.showinfo true elif [[ "$1" == [Oo][Ff][Ff] ]]; then - git config --bool prompt.showinfo false + command git config --bool prompt.showinfo false else print "usage: $0 [ on | off ]" >&2 fi @@ -194,7 +194,7 @@ function git-info { fi # Return if git-info is disabled. - if ! is-true "${$(git config --bool prompt.showinfo):-true}"; then + if ! is-true "${$(command git config --bool prompt.showinfo):-true}"; then return 1 fi @@ -204,7 +204,7 @@ function git-info { # Format commit. zstyle -s ':prezto:module:git:info:commit' format 'commit_format' if [[ -n "$commit_format" ]]; then - commit="$(git rev-parse HEAD 2> /dev/null)" + commit="$(command git rev-parse HEAD 2> /dev/null)" if [[ -n "$commit" ]]; then zformat -f commit_formatted "$commit_format" "c:$commit" fi @@ -213,7 +213,7 @@ function git-info { # Format stashed. zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format' if [[ -n "$stashed_format" && -f "$(git-dir)/refs/stash" ]]; then - stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')" + stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')" if [[ -n "$stashed" ]]; then zformat -f stashed_formatted "$stashed_format" "S:$stashed" fi @@ -229,7 +229,7 @@ function git-info { fi # Get the branch. - branch="${$(git symbolic-ref HEAD 2> /dev/null)#refs/heads/}" + branch="${$(command git symbolic-ref HEAD 2> /dev/null)#refs/heads/}" # Format branch. zstyle -s ':prezto:module:git:info:branch' format 'branch_format' @@ -240,7 +240,7 @@ function git-info { # Format position. zstyle -s ':prezto:module:git:info:position' format 'position_format' if [[ -z "$branch" && -n "$position_format" ]]; then - position="$(git describe --contains --all HEAD 2> /dev/null)" + position="$(command git describe --contains --all HEAD 2> /dev/null)" if [[ -n "$position" ]]; then zformat -f position_formatted "$position_format" "p:$position" fi @@ -250,7 +250,7 @@ function git-info { zstyle -s ':prezto:module:git:info:remote' format 'remote_format' if [[ -n "$branch" && -n "$remote_format" ]]; then # Gets the remote name. - remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}' + remote_cmd='command git rev-parse --symbolic-full-name --verify HEAD@{upstream}' remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}" if [[ -n "$remote" ]]; then zformat -f remote_formatted "$remote_format" "R:$remote" @@ -261,7 +261,7 @@ function git-info { zstyle -s ':prezto:module:git:info:behind' format 'behind_format' if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then # Gets the commit difference counts between local and remote. - ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}' + ahead_and_behind_cmd='command git rev-list --count --left-right HEAD...@{upstream}' # Get ahead and behind counts. ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)" @@ -290,7 +290,7 @@ function git-info { if [[ -n "$indexed_format" ]]; then (( indexed+=$( - git diff-index \ + command git diff-index \ --no-ext-diff \ --name-only \ --cached \ @@ -310,7 +310,7 @@ function git-info { if [[ -n "$unindexed_format" ]]; then (( unindexed+=$( - git diff-files \ + command git diff-files \ --no-ext-diff \ --name-only \ --ignore-submodules=${ignore_submodules:-none} \ @@ -328,7 +328,7 @@ function git-info { if [[ -n "$untracked_format" ]]; then (( untracked+=$( - git ls-files \ + command git ls-files \ --other \ --exclude-standard \ 2> /dev/null \ @@ -343,7 +343,7 @@ function git-info { (( dirty = indexed + unindexed + untracked )) else # Use porcelain status for easy parsing. - status_cmd="git status --porcelain --ignore-submodules=${ignore_submodules:-none}" + status_cmd="command git status --porcelain --ignore-submodules=${ignore_submodules:-none}" # Get current status. while IFS=$'\n' read line; do diff --git a/modules/git/functions/git-root b/modules/git/functions/git-root index f749457205..643f346b36 100644 --- a/modules/git/functions/git-root +++ b/modules/git/functions/git-root @@ -7,7 +7,7 @@ # function git-root { -local root="$(git rev-parse --show-toplevel 2> /dev/null)" +local root="$(command git rev-parse --show-toplevel 2> /dev/null)" if [[ -n "$root" ]]; then print "$root" diff --git a/modules/git/functions/git-stash-clear-interactive b/modules/git/functions/git-stash-clear-interactive index 71468aa0e0..cc665a1829 100644 --- a/modules/git/functions/git-stash-clear-interactive +++ b/modules/git/functions/git-stash-clear-interactive @@ -7,7 +7,7 @@ # function git-stash-clear-interactive { -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 fi @@ -15,10 +15,10 @@ fi local stashed if [[ -f "$(git-dir)/refs/stash" ]]; then - stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')" + stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')" if (( $stashed > 0 )); then if read -q "?Clear $stashed stashed state(s) [y/N]? "; then - git stash clear + command git stash clear fi fi fi diff --git a/modules/git/functions/git-stash-dropped b/modules/git/functions/git-stash-dropped index 2a0b7a94e7..d9e759e872 100644 --- a/modules/git/functions/git-stash-dropped +++ b/modules/git/functions/git-stash-dropped @@ -7,15 +7,15 @@ # function git-stash-dropped { -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 fi -git fsck --unreachable 2> /dev/null \ +command git fsck --unreachable 2> /dev/null \ | grep 'commit' \ | awk '{print $3}' \ - | git log \ + | command git log \ --pretty=format:${_git_log_oneline_format} \ --extended-regexp \ --grep="${1:-(WIP )?[Oo]n [^:]+:}" \ diff --git a/modules/git/functions/git-stash-recover b/modules/git/functions/git-stash-recover index 5cc949a730..6cb5416e6c 100644 --- a/modules/git/functions/git-stash-recover +++ b/modules/git/functions/git-stash-recover @@ -7,7 +7,7 @@ # function git-stash-recover { -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 fi @@ -15,8 +15,8 @@ fi local commit for commit in "$@"; do - git update-ref \ - -m "$(git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit" + command git update-ref \ + -m "$(command 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 ec6048e68e..746f46e512 100644 --- a/modules/git/functions/git-submodule-move +++ b/modules/git/functions/git-submodule-move @@ -7,7 +7,7 @@ # function git-submodule-move { -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 elif [[ "$PWD" != "$(git-root)" ]]; then @@ -19,7 +19,7 @@ local src="$1" local dst="$2" local url -url="$(git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")" +url="$(command git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")" if [[ -z "$url" ]]; then print "$0: submodule not found: $src" >&2 @@ -29,7 +29,7 @@ fi mkdir -p "${dst:h}" git-submodule-remove "$src" -git submodule add "$url" "$dst" +command git submodule add "$url" "$dst" return 0 diff --git a/modules/git/functions/git-submodule-remove b/modules/git/functions/git-submodule-remove index 2490e78c87..c8c11aa8c3 100644 --- a/modules/git/functions/git-submodule-remove +++ b/modules/git/functions/git-submodule-remove @@ -7,22 +7,22 @@ # function git-submodule-remove { -if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then +if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then print "$0: not a repository work tree: $PWD" >&2 return 1 elif [[ "$PWD" != "$(git-root)" ]]; then print "$0: must be run from the root of the work tree" >&2 return 1 -elif ! git config --file .gitmodules --get "submodule.${1}.path" &>/dev/null; then +elif ! command git config --file .gitmodules --get "submodule.${1}.path" &> /dev/null; then print "$0: submodule not found: $1" >&2 return 1 fi -git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &>/dev/null -git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &>/dev/null -git add .gitmodules +command git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &> /dev/null +command git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &> /dev/null +command git add .gitmodules -git rm --cached -rf "${1}" +command git rm --cached -rf "${1}" rm -rf "${1}" rm -rf "$(git-dir)/modules/${1}" diff --git a/modules/utility/functions/wdiff b/modules/utility/functions/wdiff index c93ead1c6d..ebfad0b82f 100644 --- a/modules/utility/functions/wdiff +++ b/modules/utility/functions/wdiff @@ -17,7 +17,7 @@ function wdiff { "$@" \ | sed 's/^\(@@\( [+-][[:digit:]]*,[[:digit:]]*\)\{2\} @@\)$/;5;6m\10m/g' elif (( $+commands[git] )); then - git --no-pager diff --color=auto --no-ext-diff --no-index --color-words "$@" + command git --no-pager diff --color=auto --no-ext-diff --no-index --color-words "$@" else command wdiff "$@" fi From a0977cb92e0e4a8483bd256a472119451cf3e933 Mon Sep 17 00:00:00 2001 From: Roman Peshkov Date: Sat, 31 Mar 2018 02:37:05 +0200 Subject: [PATCH 190/322] Ignore tmux autostart in vscode terminal --- modules/tmux/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tmux/init.zsh b/modules/tmux/init.zsh index a361a6a60b..fb56d07603 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" && -z "$INSIDE_EMACS" && -z "$VSCODE_PID" ]] && ( \ ( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' remote ) || ( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' local ) \ ); then From 443021237a38e04522bb76f77c3f146d64edba29 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 30 Mar 2018 17:47:05 -0700 Subject: [PATCH 191/322] Allow users to easily define LS_COLORS and LSCOLORS (#1546) --- modules/utility/init.zsh | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index c6c87d2ae6..7f75fb83af 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -76,10 +76,13 @@ if is-callable 'dircolors'; then alias ls='ls --group-directories-first' if zstyle -t ':prezto:module:utility:ls' color; then - if [[ -s "$HOME/.dir_colors" ]]; then - eval "$(dircolors --sh "$HOME/.dir_colors")" - else - eval "$(dircolors --sh)" + # Call dircolors to define colors if they're missing + if [[ -z "$LS_COLORS" ]]; then + if [[ -s "$HOME/.dir_colors" ]]; then + eval "$(dircolors --sh "$HOME/.dir_colors")" + else + eval "$(dircolors --sh)" + fi fi alias ls="${aliases[ls]:-ls} --color=auto" @@ -89,11 +92,15 @@ if is-callable 'dircolors'; then else # BSD Core Utilities if zstyle -t ':prezto:module:utility:ls' color; then - # Define colors for BSD ls. - export LSCOLORS='exfxcxdxbxGxDxabagacad' + # Define colors for BSD ls if they're not already defined + if [[ -z "$LSCOLORS" ]]; then + export LSCOLORS='exfxcxdxbxGxDxabagacad' + fi - # Define colors for the completion system. - export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:' + # Define colors for the completion system if they're not already defined + if [[ -z "$LS_COLORS" ]]; then + export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:' + fi alias ls="${aliases[ls]:-ls} -G" else From 1b441e7654b6b1c8e766d68d548abd7e5597604e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20VANTOMME?= Date: Thu, 5 Apr 2018 00:20:21 +0200 Subject: [PATCH 192/322] Feat (git): add an alias displaying the commits yet to be applied to upstream (#1565) --- modules/git/README.md | 2 ++ modules/git/alias.zsh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/modules/git/README.md b/modules/git/README.md index 1eba33cb78..1d4b7ba562 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -82,6 +82,8 @@ zstyle ':prezto:module:git:alias' skip 'yes' - `gcR` removes the *HEAD* commit. - `gcs` displays various types of objects. - `gcl` lists lost commits. + - `gcy` displays commits yet to be applied to upstream in the short format. + - `gcY` displays commits yet to be applied to upstream. ### Conflict diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index a54a2e0828..dde5b351c1 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -69,6 +69,8 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then alias gcR='git reset "HEAD^"' alias gcs='git show' alias gcl='git-commit-lost' + alias gcy='git cherry -v --abbrev' + alias gcY='git cherry -v' # Conflict (C) alias gCl='git --no-pager diff --name-only --diff-filter=U' From 054eb351f1d7d92d810259e3a5fbfd9e025b2d08 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 6 Apr 2018 11:33:02 -0700 Subject: [PATCH 193/322] Revert "Only call reset-prompt when the appropriate zstyle is set" This reverts commit 6d00fdf8c8e4003a89d622590265d80356a7a95f. As unfortunate as it is, this workaround was a hack and doesn't take into account prompts like spaceship which don't use $editor_info but rely on $KEYMAP directly. We'll need to find a more consistent solution to fix this. --- modules/editor/README.md | 2 -- modules/editor/init.zsh | 15 +++++++-------- modules/prompt/functions/prompt_smiley_setup | 2 +- runcoms/zpreztorc | 3 +++ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/editor/README.md b/modules/editor/README.md index f0799611f9..c27e8642c0 100644 --- a/modules/editor/README.md +++ b/modules/editor/README.md @@ -26,8 +26,6 @@ zstyle ':prezto:module:editor' dot-expansion 'yes' ### PS Context -**NOTE:** *This is deprecated and will be removed in future versions.* - To enable the prompt context to be set, add the following to your *zpreztorc*. diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index df019e7609..085947ef61 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -116,21 +116,20 @@ function editor-info { } zle -N editor-info -# Reset the prompt based on the current context and whether the prompt utilizes -# the editor:info zstyle. If the prompt does utilize the editor:info, we must -# reset the prompt, otherwise the change in the prompt will never update. If the -# prompt does not utilize the editor:info, we simply redisplay the command line. +# Reset the prompt based on the current context and +# the ps-context option. function zle-reset-prompt { - # Explicitly check to see if there is an editor info keymap set that would - # require a reset of the prompt - if zstyle -L ':prezto:module:editor:info*' | grep -v 'completing' > /dev/null 2>&1; then + 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 -R } zle -N zle-reset-prompt diff --git a/modules/prompt/functions/prompt_smiley_setup b/modules/prompt/functions/prompt_smiley_setup index 3d41b3af46..3066a2dc2b 100644 --- a/modules/prompt/functions/prompt_smiley_setup +++ b/modules/prompt/functions/prompt_smiley_setup @@ -36,7 +36,7 @@ function prompt_smiley_precmd { function prompt_smiley_setup { unsetopt XTRACE KSH_ARRAYS - prompt_opts=(cr percent sp subst) + prompt_opts=(percent subst) # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_smiley_precmd diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index d2a1572936..c109155565 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -62,6 +62,9 @@ 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 # From 300102897a4710e1559e4435c686f794d126d3c3 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 6 Apr 2018 11:35:39 -0700 Subject: [PATCH 194/322] Add proper prompt_opts to smiley prompt --- modules/prompt/functions/prompt_smiley_setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/functions/prompt_smiley_setup b/modules/prompt/functions/prompt_smiley_setup index 3066a2dc2b..3d41b3af46 100644 --- a/modules/prompt/functions/prompt_smiley_setup +++ b/modules/prompt/functions/prompt_smiley_setup @@ -36,7 +36,7 @@ function prompt_smiley_precmd { function prompt_smiley_setup { unsetopt XTRACE KSH_ARRAYS - prompt_opts=(percent subst) + prompt_opts=(cr percent sp subst) # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_smiley_precmd From b6b43eb331a893d9a278c278b20534a2ca07aed0 Mon Sep 17 00:00:00 2001 From: Ashish Gandhi Date: Mon, 16 Apr 2018 15:51:57 -0700 Subject: [PATCH 195/322] Rename "Mac OS X" to "macOS" in comments This only changes references in text for human consumption. It leaves out renaming paths because that can cause breaking changes. Related issue https://github.com/sorin-ionescu/prezto/issues/1449. --- modules/README.md | 4 ++-- modules/command-not-found/init.zsh | 2 +- modules/osx/README.md | 6 +++--- modules/osx/functions/osx-ls-download-history | 2 +- modules/osx/functions/osx-rm-download-history | 2 +- modules/osx/init.zsh | 2 +- modules/perl/README.md | 4 ++-- modules/perl/init.zsh | 2 +- modules/python/init.zsh | 2 +- modules/rsync/README.md | 2 +- modules/rsync/init.zsh | 2 +- modules/tmux/README.md | 4 ++-- modules/utility/init.zsh | 2 +- runcoms/zpreztorc | 2 +- 14 files changed, 19 insertions(+), 19 deletions(-) diff --git a/modules/README.md b/modules/README.md index 1c2cdc54d8..3c7392cf16 100644 --- a/modules/README.md +++ b/modules/README.md @@ -122,7 +122,7 @@ Initializes OCaml package management. OSX --- -Defines Mac OS X aliases and functions. +Defines macOS aliases and functions. Pacman ------ @@ -132,7 +132,7 @@ Provides aliases and functions for the Pacman package manager and frontends. Perl ---- -Enables local Perl module installation on Mac OS X and defines alises. +Enables local Perl module installation on macOS and defines alises. Prompt ------ diff --git a/modules/command-not-found/init.zsh b/modules/command-not-found/init.zsh index 0e778031f1..4089256048 100644 --- a/modules/command-not-found/init.zsh +++ b/modules/command-not-found/init.zsh @@ -12,7 +12,7 @@ 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. +# Load command-not-found on macOS 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. diff --git a/modules/osx/README.md b/modules/osx/README.md index 870b486408..1f93a2c332 100644 --- a/modules/osx/README.md +++ b/modules/osx/README.md @@ -1,7 +1,7 @@ OSX === -Defines [Mac OS X][1] aliases and functions. +Defines [macOS][1] aliases and functions. Settings -------- @@ -34,8 +34,8 @@ Functions - `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]). - `ql` previews files in Quick Look. - `osx-rm-dir-metadata` deletes .DS\_Store, \_\_MACOSX cruft. - - `osx-ls-download-history` displays the Mac OS X download history. - - `osx-rm-download-history` deletes the Mac OS X download history. + - `osx-ls-download-history` displays the macOS download history. + - `osx-rm-download-history` deletes the macOS download history. Authors ------- diff --git a/modules/osx/functions/osx-ls-download-history b/modules/osx/functions/osx-ls-download-history index ba6a40c7ea..8b6eaab260 100644 --- a/modules/osx/functions/osx-ls-download-history +++ b/modules/osx/functions/osx-ls-download-history @@ -1,5 +1,5 @@ # -# Displays the Mac OS X download history. +# Displays the macOS download history. # # Authors: # Sorin Ionescu diff --git a/modules/osx/functions/osx-rm-download-history b/modules/osx/functions/osx-rm-download-history index c6a368cafb..068ba3db93 100644 --- a/modules/osx/functions/osx-rm-download-history +++ b/modules/osx/functions/osx-rm-download-history @@ -1,5 +1,5 @@ # -# Deletes the Mac OS X download history. +# Deletes the macOS download history. # # Authors: # Sorin Ionescu diff --git a/modules/osx/init.zsh b/modules/osx/init.zsh index edf6ed3d5f..f7871ca718 100644 --- a/modules/osx/init.zsh +++ b/modules/osx/init.zsh @@ -1,5 +1,5 @@ # -# Defines Mac OS X aliases and functions. +# Defines macOS aliases and functions. # # Authors: # Sorin Ionescu diff --git a/modules/perl/README.md b/modules/perl/README.md index 092c922478..67f2a17798 100644 --- a/modules/perl/README.md +++ b/modules/perl/README.md @@ -1,14 +1,14 @@ Perl ==== -Enables local [Perl][1] module installation on Mac OS X and defines aliases. +Enables local [Perl][1] module installation on macOS and defines aliases. Local Module Installation ------------------------- Perl versions older than 5.14 do not support the local installation of Perl modules natively. This module allows for local installation of Perl modules on -Mac OS X in *~/Library/Perl/5.12* by altering the environment. +macOS in *~/Library/Perl/5.12* by altering the environment. ### Usage diff --git a/modules/perl/init.zsh b/modules/perl/init.zsh index ffd5f0dfd8..3bed638816 100644 --- a/modules/perl/init.zsh +++ b/modules/perl/init.zsh @@ -1,5 +1,5 @@ # -# Enables local Perl module installation on Mac OS X and defines aliases. +# Enables local Perl module installation on macOS and defines aliases. # # Authors: # Sorin Ionescu diff --git a/modules/python/init.zsh b/modules/python/init.zsh index bb48f6cda6..b7c20272b0 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -19,7 +19,7 @@ elif (( $+commands[pyenv] )); then eval "$(pyenv init -)" # Prepend PEP 370 per user site packages directory, which defaults to -# ~/Library/Python on Mac OS X and ~/.local elsewhere, to PATH. The +# ~/Library/Python on macOS and ~/.local elsewhere, to PATH. The # path can be overridden using PYTHONUSERBASE. else if [[ -n "$PYTHONUSERBASE" ]]; then diff --git a/modules/rsync/README.md b/modules/rsync/README.md index b418780b87..77d78ea54c 100644 --- a/modules/rsync/README.md +++ b/modules/rsync/README.md @@ -3,7 +3,7 @@ Rsync Defines [rsync][1] aliases. -Mac OS X users are encouraged to use [Bombich's rsync][2], which has HFS+ +macOS users are encouraged to use [Bombich's rsync][2], which has HFS+ enhancements. Aliases diff --git a/modules/rsync/init.zsh b/modules/rsync/init.zsh index 3afebdb4dd..a802222fac 100644 --- a/modules/rsync/init.zsh +++ b/modules/rsync/init.zsh @@ -20,7 +20,7 @@ if grep -q 'xattrs' <(rsync --help 2>&1); then _rsync_cmd="${_rsync_cmd} --acls --xattrs" fi -# Mac OS X and HFS+ Enhancements +# macOS and HFS+ Enhancements # http://help.bombich.com/kb/overview/credits#opensource if [[ "$OSTYPE" == darwin* ]] && grep -q 'file-flags' <(rsync --help 2>&1); then _rsync_cmd="${_rsync_cmd} --crtimes --fileflags --protect-decmpfs --force-change" diff --git a/modules/tmux/README.md b/modules/tmux/README.md index 3d742ba684..0738d7cfad 100644 --- a/modules/tmux/README.md +++ b/modules/tmux/README.md @@ -62,7 +62,7 @@ Aliases Caveats ------- -On Mac OS X, launching tmux can cause the error **launch_msg(...): Socket is not +On macOS, launching tmux can cause the error **launch_msg(...): Socket is not 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*: @@ -71,7 +71,7 @@ following to *tmux.conf*: 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 +Furthermore, tmux is known to cause **kernel panics** on macOS. A discussion about this and Prezto has already been [opened][2]. Authors diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 7f75fb83af..942090d777 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -128,7 +128,7 @@ if zstyle -t ':prezto:module:utility:grep' color; then alias grep="${aliases[grep]:-grep} --color=auto" fi -# Mac OS X Everywhere +# macOS Everywhere if [[ "$OSTYPE" == darwin* ]]; then alias o='open' elif [[ "$OSTYPE" == cygwin* ]]; then diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index c109155565..28b6005467 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -93,7 +93,7 @@ zstyle ':prezto:module:editor' key-bindings 'emacs' # zstyle ':prezto:module:history-substring-search' globbing-flags '' # -# OS X +# macOS # # Set the keyword used by `mand` to open man pages in Dash.app From f8f93d4b91ba59a3323baf0a1ed91c6c33da72b8 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sun, 29 Apr 2018 17:39:25 -0700 Subject: [PATCH 196/322] command-not-found: Directly source homebrew command-not-found handler Fixes #1577, Fixes #1451 --- modules/command-not-found/init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/command-not-found/init.zsh b/modules/command-not-found/init.zsh index 4089256048..2c59a4b31d 100644 --- a/modules/command-not-found/init.zsh +++ b/modules/command-not-found/init.zsh @@ -13,8 +13,8 @@ if [[ -s '/etc/zsh_command_not_found' ]]; then 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 macOS 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)" +elif [[ -s '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh' ]]; then + source '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh' # Return if requirements are not found. else return 1 From 6e179f24ab606f5c38d12b333771b4ba6b087eba Mon Sep 17 00:00:00 2001 From: Casey McGinty Date: Mon, 30 Apr 2018 22:22:10 -0700 Subject: [PATCH 197/322] Export VIRTUAL_ENV_DISABLE_PROMPT when enabling virutalenv Adding `export` ensures the define is available in the shell so pyenv or virtualenvwrapper do not duplicate the virtualenv name on the prompt. --- modules/python/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index b7c20272b0..4bd38ad650 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -94,7 +94,7 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ export WORKON_HOME="${WORKON_HOME:-$HOME/.virtualenvs}" # Disable the virtualenv prompt. - VIRTUAL_ENV_DISABLE_PROMPT=1 + export 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 From 2995b7d0c89d628a68ea789e21ea8f26ea8fa4d9 Mon Sep 17 00:00:00 2001 From: Casey McGinty Date: Sun, 6 May 2018 13:19:35 -0700 Subject: [PATCH 198/322] Update cache files when .zpreztorc file is modified Fixes #1581 --- modules/fasd/init.zsh | 4 +++- modules/node/init.zsh | 4 +++- modules/perl/init.zsh | 2 +- modules/python/init.zsh | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/fasd/init.zsh b/modules/fasd/init.zsh index 113a8716f0..37babd8e3e 100644 --- a/modules/fasd/init.zsh +++ b/modules/fasd/init.zsh @@ -20,7 +20,9 @@ fi # cache_file="${TMPDIR:-/tmp}/prezto-fasd-cache.$UID.zsh" -if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file" ]]; then +if [[ "${commands[fasd]}" -nt "$cache_file" \ + || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ + || ! -s "$cache_file" ]]; then # Set the base init arguments. init_args=(zsh-hook) diff --git a/modules/node/init.zsh b/modules/node/init.zsh index 578c642436..0a516f0dfb 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -32,7 +32,9 @@ fi if (( $+commands[npm] )); then cache_file="${TMPDIR:-/tmp}/prezto-node-cache.$UID.zsh" - if [[ "$commands[npm]" -nt "$cache_file" || ! -s "$cache_file" ]]; then + if [[ "$commands[npm]" -nt "$cache_file" \ + || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ + || ! -s "$cache_file" ]]; then # npm is slow; cache its output. npm completion >! "$cache_file" 2> /dev/null fi diff --git a/modules/perl/init.zsh b/modules/perl/init.zsh index 3bed638816..b7a794797a 100644 --- a/modules/perl/init.zsh +++ b/modules/perl/init.zsh @@ -43,7 +43,7 @@ if [[ "$OSTYPE" == darwin* ]]; then perl_path="$HOME/Library/Perl/5.12" if [[ -f "$perl_path/lib/perl5/local/lib.pm" ]]; then - if [[ ! -s "$cache_file" ]]; then + if [[ "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" || ! -s "$cache_file" ]]; then perl -I$perl_path/lib/perl5 -Mlocal::lib=$perl_path >! "$cache_file" fi diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 4bd38ad650..45e9b8dd6b 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -149,7 +149,9 @@ if (( $#commands[(i)pip(|[23])] )); then # 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 + if [[ "$pip_command" -nt "$cache_file" \ + || "${ZDOTDIR:-$HOME}/.zpreztorc" -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 From ae23bedd24268778eb8e66c8aaea740d64f3d2f3 Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Sun, 20 May 2018 14:06:54 -0700 Subject: [PATCH 199/322] Document macOS support for `command-not-found` Document macOS support for `command-not-found` --- modules/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/README.md b/modules/README.md index 3c7392cf16..1ff4e61225 100644 --- a/modules/README.md +++ b/modules/README.md @@ -20,7 +20,7 @@ Integrates zsh-autosuggestions into Prezto. Command-Not-Found ----------------- -Loads the command-not-found tool on Debian-based distributions. +Loads the command-not-found tool on macOS or Debian-based distributions. Completion ---------- From 3d911cd51189c806d8e2b1a3b8b83f7fcbd56aec Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Sun, 20 May 2018 13:48:14 -0700 Subject: [PATCH 200/322] Document `gpf` vs `gpF` Document the difference between `gpf` and `gpF`. These were changed in https://github.com/sorin-ionescu/prezto/pull/1040 / https://github.com/sorin-ionescu/prezto/commit/ddfc870f9aae4f43da10863a175cee2c91485cde, but never documented. --- modules/git/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/git/README.md b/modules/git/README.md index 1d4b7ba562..a497826267 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -233,7 +233,8 @@ zstyle ':prezto:module:git:alias' skip 'yes' ### Push - `gp` updates remote refs along with associated objects. - - `gpf` forcefully updates remote refs along with associated objects. + - `gpf` forcefully updates remote refs along with associated objects using the safer `--force-with-lease` option. + - `gpF` forcefully updates remote refs along with associated objects using the riskier `--force` option. - `gpa` updates remote branches along with associated objects. - `gpA` updates remote branches and tags along with associated objects. - `gpt` updates remote tags along with associated objects. From 92e668e1d92e01e599c79db939e386b60bb33e4a Mon Sep 17 00:00:00 2001 From: Christopher Bowns Date: Tue, 22 May 2018 18:44:57 -0700 Subject: [PATCH 201/322] Remove zlogout's Apu quote (#1583) * Remove zlogout's Apu quote For questions about why, see https://en.wikipedia.org/wiki/The_Problem_with_Apu * Add a couple of random sayings per feedback in #1583 --- runcoms/zlogout | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/runcoms/zlogout b/runcoms/zlogout index 56b6b5515e..b5d9858c08 100644 --- a/runcoms/zlogout +++ b/runcoms/zlogout @@ -8,11 +8,12 @@ # Execute code only if STDERR is bound to a TTY. [[ -o INTERACTIVE && -t 2 ]] && { -# Print the message. -cat <<-EOF +SAYINGS=( + "So long and thanks for all the fish.\n -- Douglas Adams" + "Good morning! And in case I don't see ya, good afternoon, good evening and goodnight.\n --Truman Burbank" +) -Thank you. Come again! - -- Dr. Apu Nahasapeemapetilon -EOF +# Print a randomly-chosen message: +echo $SAYINGS[$(($RANDOM % ${#SAYINGS} + 1))] } >&2 From d4332e2faf420f73ada88397bee95dc4f1da6b97 Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Fri, 1 Jun 2018 03:36:21 -0400 Subject: [PATCH 202/322] Fix spelling error in CONTRIBUTING.md (#1590) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7800b818c4..f4dc0d6160 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,7 +32,7 @@ there are a number of additional things to keep in mind. - 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. + - The 80 character hard limit can be waived for readability. #### Using an Alternative zprezto Directory From b11b9ce788dbe389bd6c7984748de243b43b46bd Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Thu, 14 Jun 2018 15:42:45 +0200 Subject: [PATCH 203/322] Fix path to global ssh known hosts file The path to the global known hosts file is /etc/ssh/ssh_known_hosts, not /etc/ssh_hosts. --- modules/completion/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index e2cc2d4472..e25a22a409 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -107,7 +107,7 @@ zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-va zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores' zstyle -e ':completion:*:hosts' hosts 'reply=( - ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } + ${=${=${=${${(f)"$(cat {/etc/ssh/ssh_known_hosts,~/.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 }:#*\**}:#*\?*}} )' From 0d6e7de0312366322bf7e7e1dbb41697b5bcd3b1 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 18 Jun 2018 14:16:36 -0700 Subject: [PATCH 204/322] syntax-highlighting: Update README to clarify module load order Fixes #1584 --- modules/syntax-highlighting/README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/syntax-highlighting/README.md b/modules/syntax-highlighting/README.md index 5dad5bbad9..7a28892a46 100644 --- a/modules/syntax-highlighting/README.md +++ b/modules/syntax-highlighting/README.md @@ -3,9 +3,11 @@ Syntax Highlighting Integrates [zsh-syntax-highlighting][1] into Prezto. -This module should be loaded *second to last*, where last is the *prompt* -module, unless used in conjuncture with the *history-substring-search* module -where it must be loaded **before** it. +This module should be loaded before the *prompt* module. + +Additionally, if this module is used in conjunction with the +*history-substring-search* module, this module must be loaded **before** the +*history-substring-search* module. Contributors ------------ From cd7082299467a26d443e597f1fd2f02506a45a6a Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Tue, 26 Jun 2018 13:43:27 -0500 Subject: [PATCH 205/322] completion: Compact path to global ssh known hosts file --- modules/completion/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index e25a22a409..48202f3724 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -107,7 +107,7 @@ zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-va zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores' zstyle -e ':completion:*:hosts' hosts 'reply=( - ${=${=${=${${(f)"$(cat {/etc/ssh/ssh_known_hosts,~/.ssh/known_hosts}(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } + ${=${=${=${${(f)"$(cat {/etc/ssh/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 }:#*\**}:#*\?*}} )' From e149367445d2bcb9faa6ada365dfd56efec39de8 Mon Sep 17 00:00:00 2001 From: Colin Hebert Date: Wed, 27 Jun 2018 09:28:04 +1000 Subject: [PATCH 206/322] coreutils: update list of included coreutils (#1592) --- modules/gnu-utility/init.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/gnu-utility/init.zsh b/modules/gnu-utility/init.zsh index cbf9a4baa8..4675a3ca56 100644 --- a/modules/gnu-utility/init.zsh +++ b/modules/gnu-utility/init.zsh @@ -15,16 +15,16 @@ fi _gnu_utility_cmds=( # Coreutils - '[' 'base64' 'basename' 'cat' 'chcon' 'chgrp' 'chmod' 'chown' + '[' 'b2sum' 'base32' 'base64' 'basename' 'cat' 'chcon' 'chgrp' 'chmod' 'chown' 'chroot' 'cksum' 'comm' 'cp' 'csplit' 'cut' 'date' 'dd' 'df' 'dir' 'dircolors' 'dirname' 'du' 'echo' 'env' 'expand' 'expr' 'factor' 'false' 'fmt' 'fold' 'groups' 'head' 'hostid' 'id' - 'install' 'join' 'kill' 'link' 'ln' 'logname' 'ls' 'md5sum' - 'mkdir' 'mkfifo' 'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc' - 'od' 'paste' 'pathchk' 'pinee' 'pr' 'printenv' 'printf' 'ptx' + 'install' 'join' 'kill' 'link' 'ln' 'logname' 'ls' 'md5sum' 'mkdir' + 'mkfifo' 'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc' + 'numfmt' 'od' 'paste' 'pathchk' 'pinky' 'pr' 'printenv' 'printf' 'ptx' 'pwd' 'readlink' 'realpath' 'rm' 'rmdir' 'runcon' 'seq' 'sha1sum' 'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf' - 'sleep' 'sort' 'split' 'stat' 'stty' 'sum' 'sync' 'tac' 'tail' + 'sleep' 'sort' 'split' 'stat' 'stdbuf' 'stty' 'sum' 'sync' 'tac' 'tail' 'tee' 'test' 'timeout' 'touch' 'tr' 'true' 'truncate' 'tsort' 'tty' 'uname' 'unexpand' 'uniq' 'unlink' 'uptime' 'users' 'vdir' 'wc' 'who' 'whoami' 'yes' From 152b4a1b5d61905b60134869d9ba854465ea53d9 Mon Sep 17 00:00:00 2001 From: Tharre Date: Sat, 28 Jul 2018 18:33:24 +0200 Subject: [PATCH 207/322] Fix broken gitref link in README.md gitref.org points to services.github.com, and has been for some time[0]. [0] https://github.com/git/git-reference/issues/112 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 18bcfcce4e..2f94cd6ccd 100644 --- a/README.md +++ b/README.md @@ -126,6 +126,6 @@ This project is licensed under the MIT License. [3]: http://git-scm.com [4]: https://github.com [5]: http://gitimmersion.com -[6]: http://gitref.org +[6]: https://git.github.io/git-reference/ [7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf [8]: http://grml.org/zsh/zsh-lovers.html From e064d5c65f49b5eae3c083c14b57b58dfe996a14 Mon Sep 17 00:00:00 2001 From: Michael Kohl Date: Wed, 18 Jul 2018 15:08:21 +0700 Subject: [PATCH 208/322] Make node-info work without nvm/nodenv --- modules/node/functions/node-info | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/node/functions/node-info b/modules/node/functions/node-info index 22ac31bd5c..9feca3e16e 100644 --- a/modules/node/functions/node-info +++ b/modules/node/functions/node-info @@ -19,6 +19,8 @@ if (( $+functions[nvm_version] )); then version="${$(nvm_version)#v}" elif (( $+commands[nodenv] )); then version="${${$(nodenv version)#v}[(w)0]}" +elif (( $+commands[node] )) ; then + version="${$(node -v)#v}" fi if [[ "$version" != (none|) ]]; then From dacef142144aaddd886a2a6898cba506a9ea01b9 Mon Sep 17 00:00:00 2001 From: Steven Loria Date: Sat, 14 Jul 2018 09:40:39 -0400 Subject: [PATCH 209/322] Improve startup time by skipping pyenv rehash After profiling startup time, I found that "pyenv rehash" is by far the slowest piece. This change skips rehashing on init. See https://github.com/pyenv/pyenv/issues/784#issuecomment-404850327 Also pass the shell explicitly, as suggested in https://github.com/pyenv/pyenv/issues/784#issuecomment-404944318, which provides a modest improvement. In total, this improves startup time from 1s to 0.3s on my machine. Using the following command: python -m timeit "__import__('subprocess').Popen(['zsh', '-i', '-c', 'echo']).communicate()" Result before this change: 10 loops, best of 3: 1 sec per loop Result after this change: 10 loops, best of 3: 334 msec per loop --- modules/python/init.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 45e9b8dd6b..28f671e0cf 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -11,12 +11,12 @@ if [[ -s "$HOME/.pyenv/bin/pyenv" ]]; then path=("$HOME/.pyenv/bin" $path) export PYENV_ROOT=$(pyenv root) - eval "$(pyenv init -)" + eval "$(pyenv init - --no-rehash zsh)" # Load package manager installed pyenv into the shell session. elif (( $+commands[pyenv] )); then export PYENV_ROOT=$(pyenv root) - eval "$(pyenv init -)" + eval "$(pyenv init - --no-rehash zsh)" # Prepend PEP 370 per user site packages directory, which defaults to # ~/Library/Python on macOS and ~/.local elsewhere, to PATH. The @@ -106,7 +106,7 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ if (( $pyenv_plugins[(i)virtualenv-init] <= $#pyenv_plugins )); then # Enable 'virtualenv' with 'pyenv'. - eval "$(pyenv virtualenv-init -)" + eval "$(pyenv virtualenv-init - zsh)" # Optionally activate 'virtualenvwrapper' plugin when available. if (( $pyenv_plugins[(i)virtualenvwrapper(_lazy|)] <= $#pyenv_plugins )); then From f2042a29cc7613e8f797044948b0238916b2a234 Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Thu, 9 Aug 2018 15:25:30 -0300 Subject: [PATCH 210/322] Update submodules (#1615) This updates the submodules for autosuggestions, completion, syntax-highlighting and the prompts async, powerlevel9k and pure. All submodules that have TAGs/Releases were updated to their latest TAG/release, except for syntax-highlighting because it's latest release/TAG is from more than one year ago, and the project seems to be well maintained but without releases. --- modules/autosuggestions/external | 2 +- modules/completion/external | 2 +- modules/prompt/external/async | 2 +- modules/prompt/external/powerlevel9k | 2 +- modules/prompt/external/pure | 2 +- modules/syntax-highlighting/external | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 15931f04ff..d7c796719e 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 15931f04ffac91a2f9a1a044b6b3ee4050751064 +Subproject commit d7c796719e6352666f7a9c94da9ddaed10f3217d diff --git a/modules/completion/external b/modules/completion/external index 2a30b05a5c..7ec52769d3 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit 2a30b05a5cf724a2d1c4c140c302dbf93f6aa6f6 +Subproject commit 7ec52769d3a0dd505d33d857511866d2b90d0eec diff --git a/modules/prompt/external/async b/modules/prompt/external/async index b001fa529a..da48ccb0e2 160000 --- a/modules/prompt/external/async +++ b/modules/prompt/external/async @@ -1 +1 @@ -Subproject commit b001fa529a874fbe8bd22a9d4526153138645289 +Subproject commit da48ccb0e2ade777a10decfe214b5433d990d0d9 diff --git a/modules/prompt/external/powerlevel9k b/modules/prompt/external/powerlevel9k index 17c069d25a..d031b3e035 160000 --- a/modules/prompt/external/powerlevel9k +++ b/modules/prompt/external/powerlevel9k @@ -1 +1 @@ -Subproject commit 17c069d25ac7b24af6b5dc7ecb9597cef881f582 +Subproject commit d031b3e03522d47607173ebda89e7558b622a322 diff --git a/modules/prompt/external/pure b/modules/prompt/external/pure index a95d55cc7d..fa9137ecec 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit a95d55cc7d3a73fc562ac11e23c26113ed6d58cf +Subproject commit fa9137ecec76d23fe76fd6fabe9c2f8ae0de9cf5 diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index 434af7b11d..db6cac391b 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit 434af7b11dd33641231f1b48b8432e68eb472e46 +Subproject commit db6cac391bee957c20ff3175b2f03c4817253e60 From 66487c95329874019d17920390c3101faa9dead7 Mon Sep 17 00:00:00 2001 From: newtonne Date: Mon, 13 Aug 2018 02:56:21 +0100 Subject: [PATCH 211/322] Correct alphabetical order in zprestorc --- runcoms/zpreztorc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 28b6005467..a54907344c 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -124,13 +124,6 @@ zstyle ':prezto:module:prompt' theme 'sorin' # return codes. This is not supported by all prompts. # zstyle ':prezto:module:prompt' show-return-val 'yes' -# -# Ruby -# - -# Auto switch the Ruby version on directory change. -# zstyle ':prezto:module:ruby:chruby' auto-switch 'yes' - # # Python # @@ -141,6 +134,13 @@ zstyle ':prezto:module:prompt' theme 'sorin' # Automatically initialize virtualenvwrapper if pre-requisites are met. # zstyle ':prezto:module:python:virtualenv' initialize 'yes' +# +# Ruby +# + +# Auto switch the Ruby version on directory change. +# zstyle ':prezto:module:ruby:chruby' auto-switch 'yes' + # # Screen # From 7bb7a7cb6fe02cce77ad31e91796f84b1a8f1011 Mon Sep 17 00:00:00 2001 From: Bruce Clounie Date: Sat, 21 Jul 2018 01:06:31 -0600 Subject: [PATCH 212/322] Add explanation for extra git theme symbols in README.md Helps with #1589 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2f94cd6ccd..bcbe15914e 100644 --- a/README.md +++ b/README.md @@ -88,8 +88,8 @@ accompanying README files to learn of what is available. 3. Load the theme you like in *~/.zpreztorc* then open a new Zsh terminal window or tab. - ![sorin theme][2] - + ![sorin theme][2] + Note that the 'git' module may be required for special symbols to appear, such as those on the right of the above image. Add `'git'` to the list under `zstyle ':prezto:load' pmodule \ ` in your `.zpreztorc` to enable this module. ### External Modules 1. By default modules will be loaded from */modules* and */contrib*. From dd7a26e219b3340567aeeececcf383cfdb371fa0 Mon Sep 17 00:00:00 2001 From: Yutian Li Date: Sat, 15 Sep 2018 12:35:48 -0400 Subject: [PATCH 213/322] [git] Also check "commondir" when looking for a stash (#1620) --- modules/git/functions/git-info | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/git/functions/git-info b/modules/git/functions/git-info index a173c20f14..fe8ca2acd9 100644 --- a/modules/git/functions/git-info +++ b/modules/git/functions/git-info @@ -212,10 +212,17 @@ function git-info { # Format stashed. zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format' - if [[ -n "$stashed_format" && -f "$(git-dir)/refs/stash" ]]; then - stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')" - if [[ -n "$stashed" ]]; then - zformat -f stashed_formatted "$stashed_format" "S:$stashed" + if [[ -n "$stashed_format" ]]; then + commondir="" + if [[ -f "$(git-dir)/commondir" ]]; then + commondir="$(<$(git-dir)/commondir)" + [[ "$commondir" =~ ^/ ]] || commondir="$(git-dir)/$commondir" + fi + if [[ -f "$(git-dir)/refs/stash" || ( -n "$commondir" && -f "$commondir/refs/stash" ) ]]; then + stashed="$(command git stash list 2> /dev/null | wc -l | awk '{print $1}')" + if [[ -n "$stashed" ]]; then + zformat -f stashed_formatted "$stashed_format" "S:$stashed" + fi fi fi From 2bbf5d0687bf754fff8ab6fcaec70669907aa29b Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 14 Sep 2018 23:40:08 -0500 Subject: [PATCH 214/322] homebrew: Load standard Homebrew environment variables into shell session. However, guard for legacy Homebrew as `brew shellenv` is relatively new. --- modules/homebrew/README.md | 11 ++++++++++- modules/homebrew/init.zsh | 10 ++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/modules/homebrew/README.md b/modules/homebrew/README.md index 98a3444c19..1a6df51c6e 100644 --- a/modules/homebrew/README.md +++ b/modules/homebrew/README.md @@ -1,7 +1,16 @@ Homebrew ======== -Defines Homebrew aliases. +Defines Homebrew specific shell environment variables and aliases. + +Environment Variables +--------------------- + +Execute the following to list the environment variables loaded in the shell: + +```sh +brew shellenv +``` Aliases ------- diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index e517c0a5e0..12acf595ac 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -10,6 +10,16 @@ if [[ "$OSTYPE" != (darwin|linux)* ]]; then return 1 fi +# +# Environmental Variables +# + +# Load standard Homebrew shellenv into the shell session. +# `brew shellenv` is relatively new, guard for legacy Homebrew. +if (( $+commands[brew] )); then + eval "$(brew shellenv 2> /dev/null)" +fi + # # Aliases # From ad861d3b45190053deba73392b128805f37b06d1 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 15 Sep 2018 01:45:57 -0500 Subject: [PATCH 215/322] homebrew: Replace deprecated casks with their brew counterpart Homebrew has deprecated `brew cask cleanup` and `brew cask search` in favor of `brew cleanup` and `brew search` respectively. They will stop working on 2018-09-30. Further, `--outdated` has been removed. We should eventually remove the related aliases, but for a while we keep supporting them gracefully with deprecation warning. The documentation has been removed from README.md, however. --- modules/homebrew/README.md | 3 --- modules/homebrew/init.zsh | 17 ++++++++++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/homebrew/README.md b/modules/homebrew/README.md index 1a6df51c6e..3046f98ebe 100644 --- a/modules/homebrew/README.md +++ b/modules/homebrew/README.md @@ -29,12 +29,9 @@ Aliases ### Homebrew Cask - `cask` is aliased to `brew cask`. - - `caskc` cleans up old cached downloads. - - `caskC` cleans up all cached downloads. - `caski` installs a cask. - `caskl` lists installed casks. - `casko` lists casks which have an update available. - - `casks` searches for a cask. - `caskx` uninstalls a cask. Authors diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index 12acf595ac..013344735a 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -36,10 +36,21 @@ alias brewx='brew remove' # Homebrew Cask alias cask='brew cask' -alias caskc='brew cask cleanup --outdated' -alias caskC='brew cask cleanup' +alias caskc='hb_deprecated brew cask cleanup' +alias caskC='hb_deprecated brew cask cleanup' alias caski='brew cask install' alias caskl='brew cask list' alias casko='brew cask outdated' -alias casks='brew cask search' +alias casks='hb_deprecated brew cask search' alias caskx='brew cask uninstall' + +function hb_deprecated { + local cmd="${argv[3]}" + local cmd_args=( ${(@)argv:4} ) + + printf "'brew cask %s' has been deprecated, " "${cmd}" + printf "using 'brew %s' instead\n" "${cmd}" + + cmd_args=( ${(@)argv:4} ) + command brew "${cmd}" ${(@)cmd_args} +} From f366e49c32727d658160ca4ff2ec6d515ace7aa6 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 15 Sep 2018 01:55:46 -0500 Subject: [PATCH 216/322] homebrew: Cleanup homebrew aliases - 'brew upgrade' does 'brew update' by default, no need for explicit call - replace 'brew remove' with 'brew uninstall' for consistency --- modules/homebrew/init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index 013344735a..cd1e5f72ce 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -31,8 +31,8 @@ alias brewi='brew install' alias brewl='brew list' alias brewo='brew outdated' alias brews='brew search' -alias brewu='brew update && brew upgrade' -alias brewx='brew remove' +alias brewu='brew upgrade' +alias brewx='brew uninstall' # Homebrew Cask alias cask='brew cask' From fbcae356d30928802e8150f4beca7e43f39513e1 Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Mon, 17 Sep 2018 17:28:15 -0300 Subject: [PATCH 217/322] Updating submodules For the submodules that have some kind of release (tags), they were updated up to the most recent release. Otherwise, the submodule was updated to the latest commit. --- modules/completion/external | 2 +- modules/prompt/external/async | 2 +- modules/prompt/external/powerlevel9k | 2 +- modules/prompt/external/pure | 2 +- modules/syntax-highlighting/external | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/completion/external b/modules/completion/external index 7ec52769d3..955645c22b 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit 7ec52769d3a0dd505d33d857511866d2b90d0eec +Subproject commit 955645c22b29434caefadcb7d541d570d40ae932 diff --git a/modules/prompt/external/async b/modules/prompt/external/async index da48ccb0e2..5248bd85bf 160000 --- a/modules/prompt/external/async +++ b/modules/prompt/external/async @@ -1 +1 @@ -Subproject commit da48ccb0e2ade777a10decfe214b5433d990d0d9 +Subproject commit 5248bd85bf2c522ebfa2b8d18ee7bc736d10c791 diff --git a/modules/prompt/external/powerlevel9k b/modules/prompt/external/powerlevel9k index d031b3e035..358c105de7 160000 --- a/modules/prompt/external/powerlevel9k +++ b/modules/prompt/external/powerlevel9k @@ -1 +1 @@ -Subproject commit d031b3e03522d47607173ebda89e7558b622a322 +Subproject commit 358c105de7aa5e8109788adf65c08c44e368d418 diff --git a/modules/prompt/external/pure b/modules/prompt/external/pure index fa9137ecec..7aade5fca2 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit fa9137ecec76d23fe76fd6fabe9c2f8ae0de9cf5 +Subproject commit 7aade5fca2acae3f10e260d0c076af6356da9dc6 diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index db6cac391b..42d396d819 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit db6cac391bee957c20ff3175b2f03c4817253e60 +Subproject commit 42d396d8190b93ae0bb45ed22039589b4840ab82 From ee885d42decf58ba90ddff250bb9c05f66009397 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 28 Sep 2018 14:04:20 -0700 Subject: [PATCH 218/322] python: use pure's magic value for VIRTUAL_ENV_DISABLE_PROMPT Fixes #1627 --- modules/python/init.zsh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 28f671e0cf..f90156fd2d 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -93,8 +93,11 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ # Set the directory where virtual environments are stored. export WORKON_HOME="${WORKON_HOME:-$HOME/.virtualenvs}" - # Disable the virtualenv prompt. - export VIRTUAL_ENV_DISABLE_PROMPT=1 + # Disable the virtualenv prompt. Note that we use the magic value used by the + # pure prompt because there's some additional logic in that prompt which tries + # to figure out if a user set this variable and disable the python portion of + # that prompt based on it which is the exact opposite of what we want to do. + export VIRTUAL_ENV_DISABLE_PROMPT=12 # Create a sorted array of available virtualenv related 'pyenv' commands to # look for plugins of interest. Scanning shell '$path' isn't enough as they From e9387a177e04b05dcf4f82e622615ddd32c558db Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 28 Sep 2018 14:24:25 -0700 Subject: [PATCH 219/322] python: respect PYENV_ROOT if already set Fixes #1578 --- modules/python/init.zsh | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index f90156fd2d..9796294ccf 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -7,15 +7,18 @@ # Patrick Bos # -# Load manually installed pyenv into the shell session. -if [[ -s "$HOME/.pyenv/bin/pyenv" ]]; then +# Load manually installed pyenv into the path +if [[ -n "$PYENV_ROOT" && -s "$PYENV_ROOT/bin/pyenv" ]]; then + path=("$PYENV_ROOT/bin" $path) +elif [[ -s "$HOME/.pyenv/bin/pyenv" ]]; then path=("$HOME/.pyenv/bin" $path) - export PYENV_ROOT=$(pyenv root) - eval "$(pyenv init - --no-rehash zsh)" +fi -# Load package manager installed pyenv into the shell session. -elif (( $+commands[pyenv] )); then - export PYENV_ROOT=$(pyenv root) +# Load pyenv into the current python session +if (( $+commands[pyenv] )); then + if [[ -z "$PYENV_ROOT" ]]; then + export PYENV_ROOT=$(pyenv root) + fi eval "$(pyenv init - --no-rehash zsh)" # Prepend PEP 370 per user site packages directory, which defaults to @@ -57,7 +60,7 @@ function _python-workon-cwd { local ENV_NAME="" if [[ -f "$PROJECT_ROOT/.venv" ]]; then ENV_NAME="$(cat "$PROJECT_ROOT/.venv")" - elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then + elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]]; then ENV_NAME="$PROJECT_ROOT/.venv" elif [[ "$PROJECT_ROOT" != "." ]]; then ENV_NAME="${PROJECT_ROOT:t}" From 6c46804f418effb65442c6d92f63950f831c281e Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Fri, 28 Sep 2018 14:51:59 -0700 Subject: [PATCH 220/322] environment: only enable bracketed paste on non-dumb terminals Fixes #1552 --- modules/environment/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/environment/init.zsh b/modules/environment/init.zsh index 4f3bbfe35a..7ae8c4f6a6 100644 --- a/modules/environment/init.zsh +++ b/modules/environment/init.zsh @@ -14,7 +14,7 @@ # paste had a regression. Additionally, 5.2 added bracketed-paste-url-magic # which is generally better than url-quote-magic so we load that when possible. autoload -Uz is-at-least -if [[ ${ZSH_VERSION} != 5.1.1 ]]; then +if [[ ${ZSH_VERSION} != 5.1.1 && ${TERM} != "dumb" ]]; then if is-at-least 5.2; then autoload -Uz bracketed-paste-url-magic zle -N bracketed-paste bracketed-paste-url-magic From df4c61861d298880edac1413f386704950fb9f76 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 11 Oct 2018 17:10:35 -0500 Subject: [PATCH 221/322] doc: Bit of copyediting and formatting for consistency and clarification --- README.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index bcbe15914e..552784bae7 100644 --- a/README.md +++ b/README.md @@ -33,10 +33,11 @@ version is 4.3.11. 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 + Note: If you already have any of the given configuration files, `ln` will + cause error. In simple cases you can load prezto by adding the line + `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to the bottom of your + `.zshrc` and keep the rest of your Zsh configuration intact. For more + complicated setups, it is recommended that you back up your original configs and replace them with the provided prezto runcoms. 4. Set Zsh as your default shell: @@ -88,8 +89,12 @@ accompanying README files to learn of what is available. 3. Load the theme you like in *~/.zpreztorc* then open a new Zsh terminal window or tab. - ![sorin theme][2] - Note that the 'git' module may be required for special symbols to appear, such as those on the right of the above image. Add `'git'` to the list under `zstyle ':prezto:load' pmodule \ ` in your `.zpreztorc` to enable this module. + ![sorin theme][2] + Note that the 'git' module may be required for special symbols to appear, + such as those on the right of the above image. Add `'git'` to the `pmodule` + list (under `zstyle ':prezto:load' pmodule \` in your *~/.zpreztorc*) to + enable this module. + ### External Modules 1. By default modules will be loaded from */modules* and */contrib*. @@ -99,7 +104,7 @@ accompanying README files to learn of what is available. Note that module names need to be unique or they will cause an error when loading. - ```console + ```sh zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib ``` From ff5bd9306e99c5286d4eb85be5ceb1deba5a3c22 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 11 Oct 2018 17:26:38 -0500 Subject: [PATCH 222/322] submodule: Updating submodules 'modules/prompt/external/async' updated to 'v1.7.1' 'modules/syntax-highlighting/external' updated to latest 'master' --- modules/prompt/external/async | 2 +- modules/syntax-highlighting/external | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/prompt/external/async b/modules/prompt/external/async index 5248bd85bf..58f7ba70f0 160000 --- a/modules/prompt/external/async +++ b/modules/prompt/external/async @@ -1 +1 @@ -Subproject commit 5248bd85bf2c522ebfa2b8d18ee7bc736d10c791 +Subproject commit 58f7ba70f05e75802299848e7e31c7d7a7fd0c97 diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index 42d396d819..d6586e2a4f 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit 42d396d8190b93ae0bb45ed22039589b4840ab82 +Subproject commit d6586e2a4f54a66808aba3c325a614d5166342f8 From 6f603df7a641fb136b8b168d75e905fef60a00cf Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 12 Oct 2018 03:55:55 -0500 Subject: [PATCH 223/322] general: Miscellaneous documentation updates - Add missing documentation for options and environment variables - Rearrange definition and documentation of 'Options', 'Variables' and 'Aliases' in a consistent order --- modules/completion/README.md | 13 +++++++++++++ modules/completion/init.zsh | 2 +- modules/editor/README.md | 12 +++++++++++- modules/environment/README.md | 34 ++++++++++++++++++++++++++++++++-- modules/history/README.md | 14 +++++++------- modules/history/init.zsh | 16 ++++++++-------- modules/homebrew/README.md | 6 +++--- modules/homebrew/init.zsh | 2 +- modules/rsync/init.zsh | 3 ++- runcoms/README.md | 2 +- 10 files changed, 79 insertions(+), 25 deletions(-) diff --git a/modules/completion/README.md b/modules/completion/README.md index 7efb3d96a8..dc2b9b837a 100644 --- a/modules/completion/README.md +++ b/modules/completion/README.md @@ -6,6 +6,19 @@ the [zsh-completions][1] project. This module must be loaded **after** the *utility* module. +Options +------- + + - `COMPLETE_IN_WORD` complete from both ends of a word. + - `ALWAYS_TO_END` move cursor to the end of a completed word. + - `PATH_DIRS` perform path search even on command names with slashes. + - `AUTO_MENU` show completion menu on a successive tab press. + - `AUTO_LIST` automatically list choices on ambiguous completion. + - `AUTO_PARAM_SLASH` if completed parameter is a directory, add a trailing slash. + - `EXTENDED_GLOB` needed for file modification glob modifiers with compinit. + - `MENU_COMPLETE` do not autoselect the first completion entry. + - `FLOW_CONTROL` disable start/stop characters in shell editor. + Settings -------- diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index 48202f3724..07acf13bf3 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -99,7 +99,7 @@ zstyle ':completion:*:history-words' remove-all-dups yes zstyle ':completion:*:history-words' list false zstyle ':completion:*:history-words' menu yes -# Environmental Variables +# Environment Variables zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-} # Populate hostname completion. But allow ignoring custom entries from static diff --git a/modules/editor/README.md b/modules/editor/README.md index c27e8642c0..d5280c45f5 100644 --- a/modules/editor/README.md +++ b/modules/editor/README.md @@ -1,7 +1,17 @@ Editor ====== -Sets key bindings. +Sets editor specific key bindings options and variables. + +Options +------- + + - `BEEP` beep on error in line editor. + +Variables +--------- + + - `WORDCHARS` treat a given set of characters as part of a word. Settings -------- diff --git a/modules/environment/README.md b/modules/environment/README.md index b0d579bb45..6a5e582c0e 100644 --- a/modules/environment/README.md +++ b/modules/environment/README.md @@ -5,8 +5,38 @@ Sets general shell options and defines environment variables. This module must be loaded first. -Environment Variables ---------------------- +Options +------- + +### General + + - `COMBINING_CHARS` combine zero-length punctuation characters (accents) with + the base character. + - `INTERACTIVE_COMMENTS` enable comments in interactive shell. + - `RC_QUOTES` allow 'Henry''s Garage' instead of 'Henry'\''s Garage'. + - `MAIL_WARNING` don't print a warning message if a mail file has been accessed. + +### Jobs + + - `LONG_LIST_JOBS` list jobs in the long format by default. + - `AUTO_RESUME` attempt to resume existing job before creating a new process. + - `NOTIFY` report status of background jobs immediately. + - `BG_NICE` don't run all background jobs at a lower priority. + - `HUP` don't kill jobs on shell exit. + - `CHECK_JOBS` don't report on jobs when shell exit. + +Variables +--------- + +### Termcap + + - `LESS_TERMCAP_mb` begins blinking. + - `LESS_TERMCAP_md` begins bold. + - `LESS_TERMCAP_me` ends mode. + - `LESS_TERMCAP_se` ends standout-mode. + - `LESS_TERMCAP_so` begins standout-mode. + - `LESS_TERMCAP_ue` ends underline. + - `LESS_TERMCAP_us` begins underline. Contributors ------------ diff --git a/modules/history/README.md b/modules/history/README.md index 3dc9a26423..d020688a56 100644 --- a/modules/history/README.md +++ b/modules/history/README.md @@ -3,13 +3,6 @@ History Sets [history][1] options and defines history aliases. -Variables ---------- - - - `HISTFILE` stores the path to the history file. - - `HISTSIZE` stores the maximum number of events to save in the internal history. - - `SAVEHIST` stores the maximum number of events to save in the history file. - Options ------- @@ -26,6 +19,13 @@ Options - `HIST_VERIFY` does not execute immediately upon history expansion. - `HIST_BEEP` beeps when accessing non-existent history. +Variables +--------- + + - `HISTFILE` stores the path to the history file. + - `HISTSIZE` stores the maximum number of events to save in the internal history. + - `SAVEHIST` stores the maximum number of events to save in the history file. + Aliases ------- diff --git a/modules/history/init.zsh b/modules/history/init.zsh index 31db4c5b3a..db357b0259 100644 --- a/modules/history/init.zsh +++ b/modules/history/init.zsh @@ -6,14 +6,6 @@ # Sorin Ionescu # -# -# Variables -# - -HISTFILE="${ZDOTDIR:-$HOME}/.zhistory" # The path to the history file. -HISTSIZE=10000 # The maximum number of events to save in the internal history. -SAVEHIST=10000 # The maximum number of events to save in the history file. - # # Options # @@ -31,6 +23,14 @@ setopt HIST_SAVE_NO_DUPS # Do not write a duplicate event to the history setopt HIST_VERIFY # Do not execute immediately upon history expansion. setopt HIST_BEEP # Beep when accessing non-existent history. +# +# Variables +# + +HISTFILE="${ZDOTDIR:-$HOME}/.zhistory" # The path to the history file. +HISTSIZE=10000 # The maximum number of events to save in the internal history. +SAVEHIST=10000 # The maximum number of events to save in the history file. + # # Aliases # diff --git a/modules/homebrew/README.md b/modules/homebrew/README.md index 3046f98ebe..2a37553d15 100644 --- a/modules/homebrew/README.md +++ b/modules/homebrew/README.md @@ -1,10 +1,10 @@ Homebrew ======== -Defines Homebrew specific shell environment variables and aliases. +Defines Homebrew specific environment variables and aliases. -Environment Variables ---------------------- +Variables +--------- Execute the following to list the environment variables loaded in the shell: diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index cd1e5f72ce..d078b7ae08 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -11,7 +11,7 @@ if [[ "$OSTYPE" != (darwin|linux)* ]]; then fi # -# Environmental Variables +# Variables # # Load standard Homebrew shellenv into the shell session. diff --git a/modules/rsync/init.zsh b/modules/rsync/init.zsh index a802222fac..3618812fa2 100644 --- a/modules/rsync/init.zsh +++ b/modules/rsync/init.zsh @@ -14,7 +14,8 @@ fi # Aliases # -_rsync_cmd='rsync --verbose --progress --human-readable --compress --archive --hard-links --one-file-system' +_rsync_cmd='rsync --verbose --progress --human-readable --compress --archive \ + --hard-links --one-file-system' if grep -q 'xattrs' <(rsync --help 2>&1); then _rsync_cmd="${_rsync_cmd} --acls --xattrs" diff --git a/runcoms/README.md b/runcoms/README.md index 9df890e51a..29d9f8a98d 100644 --- a/runcoms/README.md +++ b/runcoms/README.md @@ -10,7 +10,7 @@ in */etc* by default. User-local configuration files have the same name as their global counterparts but are prefixed with a dot (hidden). Zsh looks for these files in the path -stored in the `$ZDOTDIR` environmental variable. However, if said variable is +stored in the `$ZDOTDIR` environment variable. However, if said variable is not defined, Zsh will use the user's home directory. File Descriptions From 992b9de5050f38cdefee26dc020175506c8469a2 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 12 Oct 2018 10:52:24 -0500 Subject: [PATCH 224/322] doc: More copyediting and formatting for consistency --- modules/archive/README.md | 6 +++--- modules/autosuggestions/README.md | 5 ----- modules/command-not-found/README.md | 7 ++++--- modules/environment/README.md | 14 +++++++------- modules/python/README.md | 8 +++++--- modules/utility/README.md | 7 ++++--- 6 files changed, 23 insertions(+), 24 deletions(-) diff --git a/modules/archive/README.md b/modules/archive/README.md index 600ff15d0e..c9806ea591 100644 --- a/modules/archive/README.md +++ b/modules/archive/README.md @@ -31,9 +31,9 @@ installed: - *.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. +Additionally, if `pigz` and/or `pbzip2` are installed, `archive` will use them +over their traditional counterparts, `gzip` and `bzip2` respectively, to take +full advantage of all available CPU cores for compression. Alternatives ------------ diff --git a/modules/autosuggestions/README.md b/modules/autosuggestions/README.md index c3e90a4916..48f9852887 100644 --- a/modules/autosuggestions/README.md +++ b/modules/autosuggestions/README.md @@ -1,8 +1,3 @@ -Autosuggestions ---------------- - -Integrates zsh-autosuggestions into Prezto. - Autosuggestions =============== diff --git a/modules/command-not-found/README.md b/modules/command-not-found/README.md index 7775c92621..ee5a94d6d5 100644 --- a/modules/command-not-found/README.md +++ b/modules/command-not-found/README.md @@ -3,11 +3,12 @@ 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. +the proper install command. -Debian-based and Arch Linux-based distributions use the [`command-not-found`][1] tool. +Debian 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]. +macOS uses Homebrew's [`command-not-found` clone][2]. Note that you also need to +[follow the instructions][3] to tap the `command-not-found` homebrew repository. Authors diff --git a/modules/environment/README.md b/modules/environment/README.md index 6a5e582c0e..15ee95922c 100644 --- a/modules/environment/README.md +++ b/modules/environment/README.md @@ -5,6 +5,13 @@ Sets general shell options and defines environment variables. This module must be loaded first. +Contributors +------------ + +This module **MUST NOT** rely on any command not built in Zsh. + +Non-interactive environment variables should be defined in [`zshenv`][1]. + Options ------- @@ -38,13 +45,6 @@ Variables - `LESS_TERMCAP_ue` ends underline. - `LESS_TERMCAP_us` begins underline. -Contributors ------------- - -This module **MUST NOT** rely on any command not built in Zsh. - -Non-interactive environment variables should be defined in [`zshenv`][1]. - Authors ------- diff --git a/modules/python/README.md b/modules/python/README.md index e7b72c480b..121ea37395 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -6,7 +6,9 @@ Enables local Python and local Python package installation. Settings -------- -This module supports virtual environments from conda and virtualenvwrapper. By default, only virtualenvwrapper is enabled. To disable virtualenvwrapper, add the following to *zpreztorc*. +This module supports virtual environments from conda and virtualenvwrapper. By +default, only virtualenvwrapper is enabled. To disable virtualenvwrapper, add +the following to *zpreztorc*. ```sh zstyle ':prezto:module:python' skip-virtualenvwrapper-init 'on' @@ -52,8 +54,8 @@ virtualenvwrapper [`virtualenvwrapper`][2] is a frontend to the popular [`virtualenv`][3] utility. -`virtualenv` creates isolated Python environments and `virtualenvwrapper` provides -convenient shell functions to create, switch, and manage them. +`virtualenv` creates isolated Python environments and `virtualenvwrapper` +provides convenient shell functions to create, switch, and manage them. ### Usage diff --git a/modules/utility/README.md b/modules/utility/README.md index 84e81f5c28..9ace1ebace 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -8,8 +8,8 @@ Settings ### Highlighting -If you have enabled color globally in *zpreztorc*, you may disable it for certain -commands. +If you have enabled color globally in *zpreztorc*, you may disable it for +certain commands. To disable `ls` color, add the following line to *zpreztorc*; when coloring is disabled, type indicators (\*, /, =>, @, =, |, %) will be appended to entries. @@ -109,7 +109,8 @@ 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 (aliases to `pydf`, + if installed). - `du` displays disk usage using human readable units. - `top` displays information about processes. - `topc` displays information about processes sorted by CPU usage. From 58809b2d21274cf462ca3d597c41e1e4ec509034 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 12 Oct 2018 16:53:46 -0500 Subject: [PATCH 225/322] Update submodule 'history-substring-search' history-substring-search doesn't tag releases anymore and just maintains the master branch -- switching to tracking master instead. --- modules/history-substring-search/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/history-substring-search/external b/modules/history-substring-search/external index aae3388491..47a7d416c6 160000 --- a/modules/history-substring-search/external +++ b/modules/history-substring-search/external @@ -1 +1 @@ -Subproject commit aae3388491c2312c4efb2e86bcb999927bb2900e +Subproject commit 47a7d416c652a109f6e8856081abc042b50125f4 From a3753d8f3b09911d064293bdd3c87d98b9ddfc3b Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 13 Oct 2018 23:09:14 -0500 Subject: [PATCH 226/322] prompt/steeef: Add basic support for editor_info and preview --- modules/prompt/functions/prompt_steeef_setup | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/prompt/functions/prompt_steeef_setup b/modules/prompt/functions/prompt_steeef_setup index b241f9aa35..ca39f9321d 100644 --- a/modules/prompt/functions/prompt_steeef_setup +++ b/modules/prompt/functions/prompt_steeef_setup @@ -72,6 +72,9 @@ function prompt_steeef_setup { local unstaged_format="${_prompt_steeef_colors[2]}●%f" local staged_format="${_prompt_steeef_colors[5]}●%f" + # Set editor-info parameters. + zstyle ':prezto:module:editor:info:keymap:primary' format '$' + # Set vcs_info parameters. zstyle ':vcs_info:*' enable bzr git hg svn zstyle ':vcs_info:*:prompt:*' check-for-changes true @@ -87,8 +90,17 @@ function prompt_steeef_setup { # Define prompts. PROMPT=" ${_prompt_steeef_colors[3]}%n%f at ${_prompt_steeef_colors[2]}%m%f in ${_prompt_steeef_colors[5]}%~%f "'${vcs_info_msg_0_}'" -"'$python_info[virtualenv]'"$ " +"'$python_info[virtualenv]${editor_info[keymap]} ' RPROMPT='' } +function prompt_steeef_preview { + local +h PROMPT='' + local +h RPROMPT='' + local +h SPROMPT='' + + editor-info 2> /dev/null + prompt_preview_theme 'steeef' +} + prompt_steeef_setup "$@" From a43093119e8d0e7ebb49e45b9fda069c3c4998fd Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 13 Oct 2018 23:13:16 -0500 Subject: [PATCH 227/322] prompt/minimal: Add support for preview --- modules/prompt/functions/prompt_minimal_setup | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/prompt/functions/prompt_minimal_setup b/modules/prompt/functions/prompt_minimal_setup index 7456ffdb1d..b600768bd0 100644 --- a/modules/prompt/functions/prompt_minimal_setup +++ b/modules/prompt/functions/prompt_minimal_setup @@ -47,4 +47,13 @@ function prompt_minimal_setup { RPROMPT='' } +function prompt_minimal_preview { + local +h PROMPT='' + local +h RPROMPT='' + local +h SPROMPT='' + + editor-info 2> /dev/null + prompt_preview_theme 'minimal' +} + prompt_minimal_setup "$@" From bfe1815cbfb9044cdfc341383ad2d930781d7db8 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sat, 13 Oct 2018 23:16:20 -0500 Subject: [PATCH 228/322] prompt/sorin: Minor cleanup and reordering --- modules/prompt/functions/prompt_sorin_setup | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 30e71a9285..14f8858c1c 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -144,16 +144,17 @@ function prompt_sorin_setup { zstyle ':prezto:module:git:info:keys' format \ 'status' '%b %p %c:%s%A%B%S%a%d%m%r%U%u' + # Set python-info parameters. + zstyle ':prezto:module:python:info:virtualenv' format '%f%F{3}(%v)%F{7} ' + # 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 + # Get the async worker set up. _sorin_cur_git_root='' _prompt_sorin_git='' From 1ed5331e84421241c58e9f15795650f9608bf186 Mon Sep 17 00:00:00 2001 From: Tercio Gaudencio Filho Date: Mon, 15 Oct 2018 09:56:41 -0300 Subject: [PATCH 229/322] Fix issue #1635. Option to disable GNU ls to group directories first. --- modules/utility/README.md | 6 ++++++ modules/utility/init.zsh | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/utility/README.md b/modules/utility/README.md index 9ace1ebace..3b25b3a75b 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -18,6 +18,12 @@ disabled, type indicators (\*, /, =>, @, =, |, %) will be appended to entries. zstyle ':prezto:module:utility:ls' color 'no' ``` +To disable GNU coreutils `ls` to list directories grouped first, add the following line to *zpreztorc*: + +```sh +zstyle ':prezto:module:utility:ls' dirs-first 'no' +``` + To disable `diff` highlighting, add the following line to *zpreztorc*: ```sh diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 942090d777..6b07bf0f9e 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -73,7 +73,10 @@ fi # ls if is-callable 'dircolors'; then # GNU Core Utilities - alias ls='ls --group-directories-first' + + if zstyle -T ':prezto:module:utility:ls' dirs-first; then + alias ls="${aliases[ls]:-ls} --group-directories-first" + fi if zstyle -t ':prezto:module:utility:ls' color; then # Call dircolors to define colors if they're missing From e6eea17b12d18775cb26df7f0eddcf4d9b5cc59d Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Thu, 8 Nov 2018 13:02:10 -0200 Subject: [PATCH 230/322] Update submodules Updating to the latest released tags for modules: completetion syntax-highlighting And for agnoster prompt --- modules/completion/external | 2 +- modules/prompt/external/agnoster | 2 +- modules/syntax-highlighting/external | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/completion/external b/modules/completion/external index 955645c22b..8ec8c8c5c6 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit 955645c22b29434caefadcb7d541d570d40ae932 +Subproject commit 8ec8c8c5c662c3cb77231b7458ce1975d2f8c967 diff --git a/modules/prompt/external/agnoster b/modules/prompt/external/agnoster index 3ad94b6599..6bba672c78 160000 --- a/modules/prompt/external/agnoster +++ b/modules/prompt/external/agnoster @@ -1 +1 @@ -Subproject commit 3ad94b659910c775a6560c45b1524d23d8c83b09 +Subproject commit 6bba672c7812a76defc3efed9b6369eeee2425dc diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index d6586e2a4f..e900ad8bad 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit d6586e2a4f54a66808aba3c325a614d5166342f8 +Subproject commit e900ad8bad53501689afcb050456400d7a8466e5 From 8bfed017737d69cf3a62813c586467c3aee16bc9 Mon Sep 17 00:00:00 2001 From: "John P. Neumann" Date: Thu, 29 Nov 2018 17:13:23 -0600 Subject: [PATCH 231/322] Resolves #1641 - Roll the pure prompt back from 1.8.0 to 1.7.0 --- modules/prompt/external/pure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/pure b/modules/prompt/external/pure index 7aade5fca2..fa9137ecec 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit 7aade5fca2acae3f10e260d0c076af6356da9dc6 +Subproject commit fa9137ecec76d23fe76fd6fabe9c2f8ae0de9cf5 From 3de1e24965ae42337287160b155b16b1f054cff2 Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Wed, 5 Dec 2018 09:38:07 -0200 Subject: [PATCH 232/322] Update submodules versions --- modules/autosuggestions/external | 2 +- modules/prompt/external/powerlevel9k | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index d7c796719e..a7f0106b31 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit d7c796719e6352666f7a9c94da9ddaed10f3217d +Subproject commit a7f0106b31c2538a36cab30428e6ca65d9a2ae60 diff --git a/modules/prompt/external/powerlevel9k b/modules/prompt/external/powerlevel9k index 358c105de7..2f4b15041f 160000 --- a/modules/prompt/external/powerlevel9k +++ b/modules/prompt/external/powerlevel9k @@ -1 +1 @@ -Subproject commit 358c105de7aa5e8109788adf65c08c44e368d418 +Subproject commit 2f4b15041fe31d85dc9ef705b818c3a0e6985da3 From 2286662b807d0edc4436df6277c863ddddb66ce0 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Tue, 31 Jul 2018 20:29:01 -0500 Subject: [PATCH 233/322] command-not-found: Restore idiomatic homebrewed handler loading on MacOS As is the convention in prezto, we cache the command-not-found handler to avoid incurring the performance penalty of loading ruby interpreter on every call. This restores the 'Homebrew way' of loading command-not-found handler. Further, the formally recommended command lookup mechanism in Homebrew (viz., `brew command command-not-found-init`) is ruby based and is super slow. To avoid performance penalty, we `find` it ourselves from `TAP_DIRECTORY` defined internally in Homebrew. This also reinstates support for custom taps or non-standard Homebrew location. --- modules/command-not-found/init.zsh | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/modules/command-not-found/init.zsh b/modules/command-not-found/init.zsh index 2c59a4b31d..dc3c2b4ca2 100644 --- a/modules/command-not-found/init.zsh +++ b/modules/command-not-found/init.zsh @@ -12,9 +12,28 @@ 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 macOS when homebrew tap is configured. -elif [[ -s '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh' ]]; then - source '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh' +# Load command-not-found on macOS when Homebrew tap is configured. +# To avoid performance penalty, we do not use Homebrew's ruby based command +# lookup mechanism (viz., `brew command command-not-found-init`) and instead +# `find` it ourselves from `TAP_DIRECTORY` defined internally in Homebrew. +elif (( $+commands[brew] )); then + cnf_command="$(brew --repository 2> /dev/null)"/Library/Taps/homebrew/homebrew-command-not-found/cmd/brew-command-not-found-init.rb + if [[ -s "$cnf_command" ]]; then + cache_file="${TMPDIR:-/tmp}/prezto-brew-command-not-found-cache.$UID.zsh" + + if [[ "$cnf_command" -nt "$cache_file" \ + || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ + || ! -s "$cache_file" ]]; then + # brew command-not-found-init is slow; cache its output. + brew command-not-found-init >! "$cache_file" 2> /dev/null + fi + + source "$cache_file" + + unset cache_file + fi + + unset cnf_command # Return if requirements are not found. else return 1 From 53286ebbdb18e9744182734082713d569ee0880b Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 7 Dec 2018 15:45:06 -0600 Subject: [PATCH 234/322] python: Make cached completion file mangling more reliable While mangling cached completion file, we cannot just assume that `$pip_command` would resolve to `pip` -- it might be `pip2` or `pip3` depending on the relative position in zsh `$commands` array. Thus replace the whole of 'pip*' with 'pip pip2 pip3' for compctl assignment. --- modules/python/init.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 9796294ccf..d78c0dca41 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -160,10 +160,11 @@ if (( $#commands[(i)pip(|[23])] )); then || ! -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 + | sed -e "s|\(compctl -K [-_[:alnum:]]*\) pip|\1 pip pip2 pip3|" >! "$cache_file" 2> /dev/null fi source "$cache_file" + unset cache_file pip_command fi From e7fea3343f57461d8f3fa50d1a22b2c8490f9ecd Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sun, 9 Dec 2018 17:16:21 -0600 Subject: [PATCH 235/322] python: Use more apropriate filename for pip completion --- modules/python/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index d78c0dca41..302aff4b66 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -150,7 +150,7 @@ fi # Load PIP completion. if (( $#commands[(i)pip(|[23])] )); then - cache_file="${TMPDIR:-/tmp}/prezto-python-cache.$UID.zsh" + cache_file="${TMPDIR:-/tmp}/prezto-pip-cache.$UID.zsh" # Detect and use one available from among 'pip', 'pip2', 'pip3' variants pip_command="$commands[(i)pip(|[23])]" From a2398fc0454a641b020ee2d96489524bead8f3f9 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 7 Dec 2018 17:08:12 -0600 Subject: [PATCH 236/322] node: Cache completion for additional helpers Add support for npm and additional well-known helper commands --- modules/node/init.zsh | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/modules/node/init.zsh b/modules/node/init.zsh index 0a516f0dfb..75a7ebb499 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -28,18 +28,28 @@ elif (( ! $+commands[node] )); then return 1 fi -# Load NPM completion. -if (( $+commands[npm] )); then - cache_file="${TMPDIR:-/tmp}/prezto-node-cache.$UID.zsh" - - if [[ "$commands[npm]" -nt "$cache_file" \ - || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ - || ! -s "$cache_file" ]]; then - # npm is slow; cache its output. - npm completion >! "$cache_file" 2> /dev/null +# Load NPM and known helper completions. +typeset -A compl_commands=( + npm 'npm completion' + grunt 'grunt --completion=zsh' + gupl 'gulp --completion=zsh' +) + +for compl_command in "${(k)compl_commands[@]}"; do + if (( $+commands[$compl_command] )); then + cache_file="${TMPDIR:-/tmp}/prezto-$compl_command-cache.$UID.zsh" + + # Completion commands are slow; cache their output if old or missing. + if [[ "$commands[$compl_command]" -nt "$cache_file" \ + || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ + || ! -s "$cache_file" ]]; then + command ${=compl_commands[$compl_command]} >! "$cache_file" 2> /dev/null + fi + + source "$cache_file" + + unset cache_file fi +done - source "$cache_file" - - unset cache_file -fi +unset compl_command{s,} From f7456453428a48cbb6d45829711a1fcbb908613e Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Tue, 11 Dec 2018 11:02:37 -0600 Subject: [PATCH 237/322] command-not-found: Support custom Homebrew tap on MacOS Added support for homebrew-command-not-found from a non-default tap --- modules/command-not-found/init.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/command-not-found/init.zsh b/modules/command-not-found/init.zsh index dc3c2b4ca2..bcb0dead16 100644 --- a/modules/command-not-found/init.zsh +++ b/modules/command-not-found/init.zsh @@ -17,11 +17,11 @@ elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then # lookup mechanism (viz., `brew command command-not-found-init`) and instead # `find` it ourselves from `TAP_DIRECTORY` defined internally in Homebrew. elif (( $+commands[brew] )); then - cnf_command="$(brew --repository 2> /dev/null)"/Library/Taps/homebrew/homebrew-command-not-found/cmd/brew-command-not-found-init.rb - if [[ -s "$cnf_command" ]]; then + cnf_command=("$(brew --repository 2> /dev/null)"/Library/Taps/*/*/cmd/brew-command-not-found-init(|.rb)(.NL+0)) + if (( $#cnf_command )); then cache_file="${TMPDIR:-/tmp}/prezto-brew-command-not-found-cache.$UID.zsh" - if [[ "$cnf_command" -nt "$cache_file" \ + if [[ "${${(@o)cnf_command}[1]}" -nt "$cache_file" \ || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ || ! -s "$cache_file" ]]; then # brew command-not-found-init is slow; cache its output. From a987c8bc8a142d2792c4d067998959971dbc91fa Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Wed, 12 Dec 2018 16:18:58 -0600 Subject: [PATCH 238/322] python: Fix pip compctl file match pattern Make `sed` match more reliable while replacing the whole of 'pip*' with 'pip pip2 pip3' for `compctl` assignment --- modules/python/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 302aff4b66..d61488ed9a 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -160,7 +160,7 @@ if (( $#commands[(i)pip(|[23])] )); then || ! -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|\1 pip pip2 pip3|" >! "$cache_file" 2> /dev/null + | sed -e "s|\(compctl -K [-_[:alnum:]]*\) pip.*|\1 pip pip2 pip3|" >! "$cache_file" 2> /dev/null fi source "$cache_file" From d45d87b08feb3a0361e0564678e6d7e3a18e3751 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Wed, 12 Dec 2018 22:17:16 -0600 Subject: [PATCH 239/322] node: Make nvm lookup mechanism more efficient in homebrewed environment In homebrewed environment, avoid using `brew --prefix nvm` which is ruby based and is super slow. Instead, rely on homebrew standard behavior wherein all installed packages are available in canonical path $(brew --prefix)/opt/ (for nvm it would obviously be `$(brew --prefix)/opt/nvm`). NB: `$(brew --prefix)` (without additional argument) is a simple shell shortcut and doesn't have the same performance impact. --- modules/node/init.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/node/init.zsh b/modules/node/init.zsh index 75a7ebb499..f452ec5a53 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -11,8 +11,10 @@ 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 +elif (( $+commands[brew] )) && \ + [[ -d "${nvm_prefix::="$(brew --prefix 2> /dev/null)"/opt/nvm}" ]]; then source "$(brew --prefix nvm)/nvm.sh" + unset nvm_prefix # Load manually installed nodenv into the shell session. elif [[ -s "$HOME/.nodenv/bin/nodenv" ]]; then From 6a2cc2e14611e7ea5742a49759180772b3fda2a4 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Wed, 12 Dec 2018 22:42:02 -0600 Subject: [PATCH 240/322] rsync: Update link to Bombich rsync page again --- modules/rsync/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rsync/init.zsh b/modules/rsync/init.zsh index 3618812fa2..b3010ede32 100644 --- a/modules/rsync/init.zsh +++ b/modules/rsync/init.zsh @@ -22,7 +22,7 @@ if grep -q 'xattrs' <(rsync --help 2>&1); then fi # macOS and HFS+ Enhancements -# http://help.bombich.com/kb/overview/credits#opensource +# https://bombich.com/kb/ccc5/credits if [[ "$OSTYPE" == darwin* ]] && grep -q 'file-flags' <(rsync --help 2>&1); then _rsync_cmd="${_rsync_cmd} --crtimes --fileflags --protect-decmpfs --force-change" fi From d275f316ffdd0bbd075afbff677c3e00791fba16 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Wed, 12 Dec 2018 23:02:59 -0600 Subject: [PATCH 241/322] syntax-highlighting: Further clarify relative module ordering --- modules/syntax-highlighting/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/syntax-highlighting/README.md b/modules/syntax-highlighting/README.md index 7a28892a46..7a5a30c356 100644 --- a/modules/syntax-highlighting/README.md +++ b/modules/syntax-highlighting/README.md @@ -9,6 +9,9 @@ Additionally, if this module is used in conjunction with the *history-substring-search* module, this module must be loaded **before** the *history-substring-search* module. +To elaborate: The relative order of loading the modules would be +'syntax-highlighting', 'history-substring-search' and 'prompt'. + Contributors ------------ From 39e1a633494e5ba492fe826e0ceb104ad5318ada Mon Sep 17 00:00:00 2001 From: Bruno Oliveira da Silva Date: Thu, 13 Dec 2018 16:43:23 -0200 Subject: [PATCH 242/322] Aliases to digital sign/verify commits and tags (#651) --- modules/git/alias.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index dde5b351c1..4e4f482815 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -68,10 +68,11 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then alias gcr='git revert' alias gcR='git reset "HEAD^"' alias gcs='git show' + alias gpS='git show --pretty=short --show-signature' alias gcl='git-commit-lost' alias gcy='git cherry -v --abbrev' alias gcY='git cherry -v' - + # Conflict (C) alias gCl='git --no-pager diff --name-only --diff-filter=U' alias gCa='git add $(gCl)' @@ -190,6 +191,7 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then alias glg='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_format}"' alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"' alias glc='git shortlog --summary --numbered' + alias glS='git log --show-signature' # Merge (m) alias gm='git merge' @@ -255,6 +257,8 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then # Tag (t) alias gt='git tag' alias gtl='git tag -l' + alias gts='git tag -s' + alias gtv='git verify-tag' # Working Copy (w) alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short' From eee3c9c1662914cd2a7f30139396bf96d0200521 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 13 Dec 2018 10:51:56 -0800 Subject: [PATCH 243/322] git: add documentation for new aliases --- modules/git/README.md | 4 ++++ modules/git/alias.zsh | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/git/README.md b/modules/git/README.md index a497826267..b5de9f6fbe 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -81,6 +81,7 @@ zstyle ':prezto:module:git:alias' skip 'yes' commits. - `gcR` removes the *HEAD* commit. - `gcs` displays various types of objects. + - `gcsS` displays commits with GPG signature. - `gcl` lists lost commits. - `gcy` displays commits yet to be applied to upstream in the short format. - `gcY` displays commits yet to be applied to upstream. @@ -220,6 +221,7 @@ zstyle ':prezto:module:git:alias' skip 'yes' - `glg` displays the graph log. - `glb` displays the brief commit log. - `glc` displays the commit count for each contributor in descending order. + - `glS` displays the log and checks the validity of signed commits. ### Merge @@ -295,6 +297,8 @@ zstyle ':prezto:module:git:alias' skip 'yes' - `gt` lists tags or creates tag. - `gtl` lists tags matching pattern. + - `gts` creates a signed tag. + - `gtv` validate a signed tag. ### Working directory diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 4e4f482815..89ba558733 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -68,11 +68,11 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then alias gcr='git revert' alias gcR='git reset "HEAD^"' alias gcs='git show' - alias gpS='git show --pretty=short --show-signature' + alias gcsS='git show --pretty=short --show-signature' alias gcl='git-commit-lost' alias gcy='git cherry -v --abbrev' alias gcY='git cherry -v' - + # Conflict (C) alias gCl='git --no-pager diff --name-only --diff-filter=U' alias gCa='git add $(gCl)' From 54dff31b63ea04705cc95200e53dd4e7a67232d6 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Thu, 13 Dec 2018 01:14:59 -0600 Subject: [PATCH 244/322] archive: Enhance 'archive' helper to support multi file archive We now allow multiple paths (files/directories) to be archived in one shot. Validation of the target path(s) is now delegated to the actual archive helper. --- modules/archive/functions/archive | 32 +++++++++++++------------------ 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/modules/archive/functions/archive b/modules/archive/functions/archive index 0e3bb616bf..fab409e2c0 100644 --- a/modules/archive/functions/archive +++ b/modules/archive/functions/archive @@ -8,11 +8,11 @@ # function archive { -local archive_name dir_to_archive _gzip_bin _bzip2_bin +local archive_name path_to_archive _gzip_bin _bzip2_bin -if (( $# != 2 )); then +if (( $# < 2 )); then cat >&2 <&2 - return 1 -fi +# let paths be handled by actual archive helper +path_to_archive="${@:2}" # here, we check for dropin/multi-threaded replacements # this should eventually be moved to modules/archive/init.zsh @@ -53,14 +47,14 @@ else 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}" ;; + (*.tar.gz|*.tgz) tar -cvf "${archive_name}" --use-compress-program="${_gzip_bin}" "${=path_to_archive}" ;; + (*.tar.bz2|*.tbz|*.tbz2) tar -cvf "${archive_name}" --use-compress-program="${_bzip2_bin}" "${=path_to_archive}" ;; + (*.tar.xz|*.txz) tar -cvJf "${archive_name}" "${=path_to_archive}" ;; + (*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${=path_to_archive}" ;; + (*.tar) tar -cvf "${archive_name}" "${=path_to_archive}" ;; + (*.zip|*.jar) zip -r "${archive_name}" "${=path_to_archive}" ;; + (*.rar) rar a "${archive_name}" "${=path_to_archive}" ;; + (*.7z) 7za a "${archive_name}" "${=path_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" ;; From 11184084bcd0d67838c420bdd18f3c7922ad4993 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 14 Dec 2018 15:34:42 -0600 Subject: [PATCH 245/322] homebrew: Simplify array assignment No need for nesting array assignment only to flatten it later. --- modules/homebrew/init.zsh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index d078b7ae08..b449bac52b 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -45,12 +45,11 @@ alias casks='hb_deprecated brew cask search' alias caskx='brew cask uninstall' function hb_deprecated { - local cmd="${argv[3]}" - local cmd_args=( ${(@)argv:4} ) + local cmd="${@[3]}" + local cmd_args="${@:4}" printf "'brew cask %s' has been deprecated, " "${cmd}" printf "using 'brew %s' instead\n" "${cmd}" - cmd_args=( ${(@)argv:4} ) - command brew "${cmd}" ${(@)cmd_args} + command brew "${cmd}" "${=cmd_args}" } From 3093f1b966985c834fb698dabbe9a0af805ef940 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 14 Dec 2018 15:40:59 -0600 Subject: [PATCH 246/322] homebrew: Load 'HOMEBREW_' prefixed variables only Load 'HOMEBREW_' prefixed variables only. Avoid loading 'PATH' related variables as they are already handled in standard zsh configuration. --- modules/homebrew/init.zsh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index b449bac52b..056f1fb5db 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -14,10 +14,11 @@ fi # Variables # -# Load standard Homebrew shellenv into the shell session. -# `brew shellenv` is relatively new, guard for legacy Homebrew. +# Load standard Homebrew shellenv into the shell session. +# Load 'HOMEBREW_' prefixed variables only. Avoid loading 'PATH' related +# variables as they are already handled in standard zsh configuration. if (( $+commands[brew] )); then - eval "$(brew shellenv 2> /dev/null)" + eval "${(@M)${(f)"$(brew shellenv 2> /dev/null)"}:#export HOMEBREW*}" fi # From dc8e168d5fab038bc2bd39f97984c111abf5258c Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 14 Dec 2018 20:57:10 -0600 Subject: [PATCH 247/322] command-not-found: Minor reformatting --- modules/command-not-found/init.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/command-not-found/init.zsh b/modules/command-not-found/init.zsh index bcb0dead16..f3d7ea6287 100644 --- a/modules/command-not-found/init.zsh +++ b/modules/command-not-found/init.zsh @@ -17,7 +17,9 @@ elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then # lookup mechanism (viz., `brew command command-not-found-init`) and instead # `find` it ourselves from `TAP_DIRECTORY` defined internally in Homebrew. elif (( $+commands[brew] )); then - cnf_command=("$(brew --repository 2> /dev/null)"/Library/Taps/*/*/cmd/brew-command-not-found-init(|.rb)(.NL+0)) + cnf_command=( + "$(brew --repository 2> /dev/null)"/Library/Taps/*/*/cmd/brew-command-not-found-init(|.rb)(.N) + ) if (( $#cnf_command )); then cache_file="${TMPDIR:-/tmp}/prezto-brew-command-not-found-cache.$UID.zsh" From 9d3e2f0204f2de5a0f04da1e0cdcf63e8afe5add Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Fri, 14 Dec 2018 21:32:10 -0600 Subject: [PATCH 248/322] python: Expand compctl matches for pip variants Expand `sed` match for more variants of 'pip*' (pip, pip2, pip3, pip2.7, pip3.7 etc.) for `compctl` assignment --- modules/python/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index d61488ed9a..a8e00b39b8 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -160,7 +160,7 @@ if (( $#commands[(i)pip(|[23])] )); then || ! -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.*|\1 pip pip2 pip3|" >! "$cache_file" 2> /dev/null + | sed -e "s/\(compctl -K [-_[:alnum:]]*\) pip.*/\1 pip(|[23](|.[0-9]))/" >! "$cache_file" 2> /dev/null fi source "$cache_file" From 0e6429da97876c7ce0868966e8a812c29bcba0b3 Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Mon, 17 Dec 2018 16:22:33 -0200 Subject: [PATCH 249/322] Remove duplicated information from git module README (#1657) --- modules/git/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/git/README.md b/modules/git/README.md index b5de9f6fbe..e4425fab22 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -67,7 +67,7 @@ zstyle ':prezto:module:git:alias' skip 'yes' - `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. + - `gcSm` records changes to the repository with the given message. (Signed) - `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. From a338cba805f63f770e9078925bc5c46129e28bde Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Mon, 17 Dec 2018 14:10:51 -0600 Subject: [PATCH 250/322] python: Use brace expansion for pip compctl match Just use brace expansion only (and not a mix of brace expansion and path expansion) to expand `sed` match for more variants of 'pip*' (pip, pip2, pip3, pip2.7, pip3.7 etc.) in `compctl` assignment --- modules/python/init.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index a8e00b39b8..44043f1c35 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -160,7 +160,9 @@ if (( $#commands[(i)pip(|[23])] )); then || ! -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.*/\1 pip(|[23](|.[0-9]))/" >! "$cache_file" 2> /dev/null + | sed -e "s/\(compctl -K [-_[:alnum:]]* pip\).*/\1{,2,3}{,.{0..9}}/" \ + >! "$cache_file" \ + 2> /dev/null fi source "$cache_file" From 4a16d3fa50f6596fe13affd90107d25710c88e43 Mon Sep 17 00:00:00 2001 From: Jeff Widman Date: Wed, 2 Jan 2019 18:04:07 -0800 Subject: [PATCH 251/322] Fix typo: gupl --> gulp (#1668) --- modules/node/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/node/init.zsh b/modules/node/init.zsh index f452ec5a53..d8eea1459e 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -34,7 +34,7 @@ fi typeset -A compl_commands=( npm 'npm completion' grunt 'grunt --completion=zsh' - gupl 'gulp --completion=zsh' + gulp 'gulp --completion=zsh' ) for compl_command in "${(k)compl_commands[@]}"; do From 88456ec9b6c0ef4eb18381bca1942474e27336a4 Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Mon, 7 Jan 2019 10:41:23 -0200 Subject: [PATCH 252/322] Updating submodules to lastest tags/master commits --- modules/completion/external | 2 +- modules/fasd/external | 2 +- modules/history-substring-search/external | 2 +- modules/prompt/external/pure | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/completion/external b/modules/completion/external index 8ec8c8c5c6..cf565254e2 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit 8ec8c8c5c662c3cb77231b7458ce1975d2f8c967 +Subproject commit cf565254e26bb7ce03f51889e9a29953b955b1fb diff --git a/modules/fasd/external b/modules/fasd/external index 90b531a5da..48220241e7 160000 --- a/modules/fasd/external +++ b/modules/fasd/external @@ -1 +1 @@ -Subproject commit 90b531a5daaa545c74c7d98974b54cbdb92659fc +Subproject commit 48220241e764fdf46b075cd7fe723468aaadde58 diff --git a/modules/history-substring-search/external b/modules/history-substring-search/external index 47a7d416c6..aae3388491 160000 --- a/modules/history-substring-search/external +++ b/modules/history-substring-search/external @@ -1 +1 @@ -Subproject commit 47a7d416c652a109f6e8856081abc042b50125f4 +Subproject commit aae3388491c2312c4efb2e86bcb999927bb2900e diff --git a/modules/prompt/external/pure b/modules/prompt/external/pure index fa9137ecec..7aade5fca2 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit fa9137ecec76d23fe76fd6fabe9c2f8ae0de9cf5 +Subproject commit 7aade5fca2acae3f10e260d0c076af6356da9dc6 From ba4063f99e0b2d531a55b375ca92314e3a9a178b Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Sun, 6 Jan 2019 11:24:34 +0100 Subject: [PATCH 253/322] Remove old prompt tempfile and pid variable This is a leftover of #1385, the temp file and the PID variable is not needed any more. --- modules/prompt/functions/prompt_sorin_setup | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 14f8858c1c..2df92122d0 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -110,8 +110,6 @@ function prompt_sorin_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS prompt_opts=(cr percent sp subst) - _prompt_sorin_precmd_async_pid=0 - _prompt_sorin_precmd_async_data=$(mktemp "${TMPDIR:-/tmp}/sorin-prompt-async-XXXXXXXXXX") # Load required functions. autoload -Uz add-zsh-hook From 777674e07e4f2fd465b273341c639263f379394d Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Mon, 7 Jan 2019 10:42:34 -0200 Subject: [PATCH 254/322] Update syntax-highlighting submodule --- modules/syntax-highlighting/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index e900ad8bad..1e34c4aa0b 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit e900ad8bad53501689afcb050456400d7a8466e5 +Subproject commit 1e34c4aa0bcbdde5173aab15600784edf0a212fd From 4abbc5572149baa6a5e7e38393a4b2006f01024f Mon Sep 17 00:00:00 2001 From: Yutian Li Date: Fri, 4 Jan 2019 13:05:37 -0500 Subject: [PATCH 255/322] remove mutually exclusive option --- modules/history/README.md | 5 +++-- modules/history/init.zsh | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/history/README.md b/modules/history/README.md index d020688a56..a5a4acb125 100644 --- a/modules/history/README.md +++ b/modules/history/README.md @@ -8,8 +8,9 @@ Options - `BANG_HIST` treats the **!** character specially during expansion. - `EXTENDED_HISTORY` writes the history file in the *:start:elapsed;command* format. - - `INC_APPEND_HISTORY` writes to the history file immediately, not when the shell exits. - - `SHARE_HISTORY` shares history between all sessions. + - `SHARE_HISTORY` shares history between all sessions. Note that + `SHARE_HISTORY`, `INC_APPEND_HISTORY`, and `INC_APPEND_HISTORY_TIME` are + mutually exclusive. - `HIST_EXPIRE_DUPS_FIRST` expires a duplicate event first when trimming history. - `HIST_IGNORE_DUPS` does not record an event that was just recorded again. - `HIST_IGNORE_ALL_DUPS` deletes an old recorded event if a new event is a duplicate. diff --git a/modules/history/init.zsh b/modules/history/init.zsh index db357b0259..a26f3c9f42 100644 --- a/modules/history/init.zsh +++ b/modules/history/init.zsh @@ -12,7 +12,6 @@ setopt BANG_HIST # Treat the '!' character specially during expansion. setopt EXTENDED_HISTORY # Write the history file in the ':start:elapsed;command' format. -setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits. setopt SHARE_HISTORY # Share history between all sessions. setopt HIST_EXPIRE_DUPS_FIRST # Expire a duplicate event first when trimming history. setopt HIST_IGNORE_DUPS # Do not record an event that was just recorded again. From d22effbf856427b281b455a7419edfdd67aab3ce Mon Sep 17 00:00:00 2001 From: Yutian Li Date: Mon, 11 Feb 2019 19:21:38 -0500 Subject: [PATCH 256/322] editor: allow alt+arrow keys for word movement (#1688) --- modules/editor/init.zsh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 085947ef61..3a7d66e6f3 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -269,9 +269,11 @@ bindkey -d # Emacs Key Bindings # -for key in "$key_info[Escape]"{B,b} "${(s: :)key_info[ControlLeft]}" +for key in "$key_info[Escape]"{B,b} "${(s: :)key_info[ControlLeft]}" \ + "${key_info[Escape]}${key_info[Left]}" bindkey -M emacs "$key" emacs-backward-word -for key in "$key_info[Escape]"{F,f} "${(s: :)key_info[ControlRight]}" +for key in "$key_info[Escape]"{F,f} "${(s: :)key_info[ControlRight]}" \ + "${key_info[Escape]}${key_info[Right]}" bindkey -M emacs "$key" emacs-forward-word # Kill to the beginning of the line. From 5d7c990eec21e83c0735f6b8e7d1d669102cbb4f Mon Sep 17 00:00:00 2001 From: Maxim Baz Date: Sun, 17 Feb 2019 00:31:54 +0100 Subject: [PATCH 257/322] archive: enhance parallel operations --- modules/archive/functions/archive | 14 ++++++++--- modules/archive/functions/unarchive | 36 +++++++++++++++++++++++------ 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/modules/archive/functions/archive b/modules/archive/functions/archive index fab409e2c0..10bbad3985 100644 --- a/modules/archive/functions/archive +++ b/modules/archive/functions/archive @@ -8,7 +8,7 @@ # function archive { -local archive_name path_to_archive _gzip_bin _bzip2_bin +local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin if (( $# < 2 )); then cat >&2 <&2 < 0 )); do if [[ ! -s "$1" ]]; then print "$0: file not valid: $1" >&2 @@ -42,15 +66,13 @@ while (( $# > 0 )); do file_path="${1:A}" extract_dir="${file_name:r}" case "$1:l" in - (*.tar.gz|*.tgz) tar xvzf "$1" ;; - (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;; - (*.tar.xz|*.txz) tar --xz --help &> /dev/null \ - && tar --xz -xvf "$1" \ - || xzcat "$1" | tar xvf - ;; + (*.tar.gz|*.tgz) tar -xvf "$1" --use-compress-program="${_gzip_bin}" ;; + (*.tar.bz2|*.tbz|*.tbz2) tar -xvf "$1" --use-compress-program="${_bzip2_bin}" ;; + (*.tar.xz|*.txz) tar -xvf "$1" --use-compress-program="${_xz_bin}" ;; (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ && tar --lzma -xvf "$1" \ - || lzcat "$1" | tar xvf - ;; - (*.tar) tar xvf "$1" ;; + || lzcat "$1" | tar -xvf - ;; + (*.tar) tar -xvf "$1" ;; (*.gz) gunzip "$1" ;; (*.bz2) bunzip2 "$1" ;; (*.xz) unxz "$1" ;; From b8d7e2cad863959323a4c6452d58cad0af0b84e8 Mon Sep 17 00:00:00 2001 From: monai Date: Sat, 19 Jan 2019 12:54:49 +0200 Subject: [PATCH 258/322] Add zstyle option to disable zsh option CORRECT --- modules/utility/README.md | 6 ++++++ modules/utility/init.zsh | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/utility/README.md b/modules/utility/README.md index 3b25b3a75b..1179478703 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -62,6 +62,12 @@ Aliases - `mysql` - `rm` +To disable all spelling corrections, add the following line to *zpreztorc*: + +```sh +zstyle ':prezto:module:utility' correct 'no' +``` + ### Disabled File Globbing - `bower` diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 6b07bf0f9e..59a04f93f7 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -11,7 +11,9 @@ pmodload 'helper' 'spectrum' # Correct commands. -setopt CORRECT +if zstyle -T ':prezto:module:utility' correct; then + setopt CORRECT +fi # # Aliases From 1f4601e44c989b90dc7314b151891fa60a101251 Mon Sep 17 00:00:00 2001 From: Chris Ewald Date: Sun, 17 Mar 2019 21:27:13 -0400 Subject: [PATCH 259/322] Disable node-info output when value is system. This makes the behavior consistent with rbenv and pyenv. --- modules/node/functions/node-info | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/node/functions/node-info b/modules/node/functions/node-info index 9feca3e16e..c43759b760 100644 --- a/modules/node/functions/node-info +++ b/modules/node/functions/node-info @@ -23,7 +23,7 @@ elif (( $+commands[node] )) ; then version="${$(node -v)#v}" fi -if [[ "$version" != (none|) ]]; then +if [[ "$version" != (none|system) ]]; then zstyle -s ':prezto:module:node:info:version' format 'version_format' zformat -f version_formatted "$version_format" "v:$version" node_info[version]="$version_formatted" From bb901dfb7ebd1df7d68e2ca2d6e75b627d270dff Mon Sep 17 00:00:00 2001 From: Toshiki Murayama Date: Tue, 21 May 2019 09:42:03 +0900 Subject: [PATCH 260/322] Update zsh-autosuggestions submodule --- modules/autosuggestions/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index a7f0106b31..733abd4af0 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit a7f0106b31c2538a36cab30428e6ca65d9a2ae60 +Subproject commit 733abd4af0f23f217caa2a303fbef66382d19d6f From ac65e8eb18bed5964508e76719ecb7a66f5c358a Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Wed, 29 May 2019 22:40:47 +0200 Subject: [PATCH 261/322] Add powerlevel10k theme (#1695) --- .gitmodules | 3 +++ modules/prompt/external/powerlevel10k | 1 + modules/prompt/functions/prompt_powerlevel10k_setup | 1 + 3 files changed, 5 insertions(+) create mode 160000 modules/prompt/external/powerlevel10k create mode 120000 modules/prompt/functions/prompt_powerlevel10k_setup diff --git a/.gitmodules b/.gitmodules index 051f2633f0..fcc482621e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,3 +28,6 @@ [submodule "modules/prompt/external/powerlevel9k"] path = modules/prompt/external/powerlevel9k url = https://github.com/bhilburn/powerlevel9k.git +[submodule "modules/prompt/external/powerlevel10k"] + path = modules/prompt/external/powerlevel10k + url = https://github.com/romkatv/powerlevel10k.git diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k new file mode 160000 index 0000000000..45588cc28a --- /dev/null +++ b/modules/prompt/external/powerlevel10k @@ -0,0 +1 @@ +Subproject commit 45588cc28a132602e334c6ebb8bb876bd85903c4 diff --git a/modules/prompt/functions/prompt_powerlevel10k_setup b/modules/prompt/functions/prompt_powerlevel10k_setup new file mode 120000 index 0000000000..8c66c69696 --- /dev/null +++ b/modules/prompt/functions/prompt_powerlevel10k_setup @@ -0,0 +1 @@ +../external/powerlevel10k/powerlevel10k.zsh-theme \ No newline at end of file From 1d58546406bc8f13b910141265f67dbe2f08bd5f Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Wed, 29 May 2019 13:42:17 -0700 Subject: [PATCH 262/322] prompt: update powerlevel10k to latest commit --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 45588cc28a..a4b0fd6114 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 45588cc28a132602e334c6ebb8bb876bd85903c4 +Subproject commit a4b0fd6114541c688552305112a9ab9a534e8abf From 09e83ed2829d13b8102af1bf660efbf99e0f896b Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Mon, 17 Jun 2019 19:49:02 +0200 Subject: [PATCH 263/322] prompt: update powerlevel10k submodule (#1715) --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index a4b0fd6114..31fdb6797e 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit a4b0fd6114541c688552305112a9ab9a534e8abf +Subproject commit 31fdb6797ed19f008f25e26e452e297981295410 From e94b6b2078ccd0b289293dc4b996983a96a34681 Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Tue, 2 Jul 2019 18:23:12 +0200 Subject: [PATCH 264/322] prompt: update powerlevel10k submodule to the latest commit (#1717) A bunch of bug fixes. Most notably romkatv/powerlevel10k#89. --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 31fdb6797e..613ffec4b6 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 31fdb6797ed19f008f25e26e452e297981295410 +Subproject commit 613ffec4b61fc8c97427a99bcca72808a980645e From 6dd97d15e0303f648ad0a29303a7fe56f43a2c7c Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Tue, 23 Jul 2019 19:04:45 +0200 Subject: [PATCH 265/322] prompt: update powerlevel10k submodule to the latest commit (#1726) Changes include a few bug fixes and a score of new features. --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 613ffec4b6..5ef0ec415e 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 613ffec4b61fc8c97427a99bcca72808a980645e +Subproject commit 5ef0ec415eefbc8b4431a6e4b8e2a5e0d299176a From 3ae422a0da0c675f1a53d7a1c079baa6cd87e73f Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Wed, 24 Jul 2019 20:13:32 +0200 Subject: [PATCH 266/322] prompt: update powerlevel10k submodule to the latest commit (#1727) The last update has picked up a nasty bug in gitstatus that disables all user aliases. This commit fixes it. --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 5ef0ec415e..f14497918f 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 5ef0ec415eefbc8b4431a6e4b8e2a5e0d299176a +Subproject commit f14497918f0a70955f6d227d1e002ad2a3f94cc8 From 5566a9c7927ed1ee166e92f8ecb72aa7a2d0ce09 Mon Sep 17 00:00:00 2001 From: "John P. Neumann" Date: Thu, 25 Jul 2019 17:14:43 -0500 Subject: [PATCH 267/322] Resolves 1641 - Checks whether the prompt is set to be managed or not. (#1723) This is a new variable that will need to be set on all new prompts and is not backwards compatible with custom prompts that are not prezto managed, but use prezto's editor-info functionality. Updated the README.md with additional information for themes. --- modules/editor/init.zsh | 42 ++++++++++--------- modules/prompt/README.md | 16 +++++++ modules/prompt/functions/prompt-pwd | 1 + modules/prompt/functions/prompt_cloud_setup | 4 ++ .../prompt/functions/prompt_damoekri_setup | 4 ++ modules/prompt/functions/prompt_giddie_setup | 4 ++ .../prompt/functions/prompt_kylewest_setup | 4 ++ modules/prompt/functions/prompt_minimal_setup | 4 ++ .../prompt/functions/prompt_nicoulaj_setup | 4 ++ modules/prompt/functions/prompt_paradox_setup | 4 ++ .../prompt/functions/prompt_peepcode_setup | 4 ++ modules/prompt/functions/prompt_skwp_setup | 4 ++ modules/prompt/functions/prompt_smiley_setup | 4 ++ modules/prompt/functions/prompt_sorin_setup | 4 ++ modules/prompt/functions/prompt_steeef_setup | 4 ++ 15 files changed, 88 insertions(+), 19 deletions(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 3a7d66e6f3..28a2fb24a0 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -91,28 +91,32 @@ function bindkey-all { # Exposes information about the Zsh Line Editor via the $editor_info associative # array. function editor-info { - # Clean up previous $editor_info. - unset editor_info - typeset -gA editor_info - - if [[ "$KEYMAP" == 'vicmd' ]]; then - zstyle -s ':prezto:module:editor:info:keymap:alternate' format 'REPLY' - editor_info[keymap]="$REPLY" - else - zstyle -s ':prezto:module:editor:info:keymap:primary' format 'REPLY' - editor_info[keymap]="$REPLY" - - if [[ "$ZLE_STATE" == *overwrite* ]]; then - zstyle -s ':prezto:module:editor:info:keymap:primary:overwrite' format 'REPLY' - editor_info[overwrite]="$REPLY" + # Ensure that we're going to set the editor-info for prompts that + # are prezto managed and/or compatible. + if zstyle -t ':prezto:module:prompt' managed; then + # Clean up previous $editor_info. + unset editor_info + typeset -gA editor_info + + if [[ "$KEYMAP" == 'vicmd' ]]; then + zstyle -s ':prezto:module:editor:info:keymap:alternate' format 'REPLY' + editor_info[keymap]="$REPLY" else - zstyle -s ':prezto:module:editor:info:keymap:primary:insert' format 'REPLY' - editor_info[overwrite]="$REPLY" + zstyle -s ':prezto:module:editor:info:keymap:primary' format 'REPLY' + editor_info[keymap]="$REPLY" + + if [[ "$ZLE_STATE" == *overwrite* ]]; then + zstyle -s ':prezto:module:editor:info:keymap:primary:overwrite' format 'REPLY' + editor_info[overwrite]="$REPLY" + else + zstyle -s ':prezto:module:editor:info:keymap:primary:insert' format 'REPLY' + editor_info[overwrite]="$REPLY" + fi fi - fi - unset REPLY - zle zle-reset-prompt + unset REPLY + zle zle-reset-prompt + fi } zle -N editor-info diff --git a/modules/prompt/README.md b/modules/prompt/README.md index 523c83e929..ef32770b20 100644 --- a/modules/prompt/README.md +++ b/modules/prompt/README.md @@ -43,6 +43,22 @@ A prompt theme is an autoloadable function file with a special name, project, themes **should** be placed in the *modules/prompt/functions* directory. +### Required Variables + +To ensure that your function works with the editor-info module you'll need to +set the following variable: + +``` + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' +``` + +This is to ensure compatibility with outside prompts, while allowing prezto +and prezto-compatible prompts to take full advantage of the editor module. +This should be set in the `prompt_name_setup` function after you've added +any additional hooks with `add-zsh-hook precmd prompt_name_precmd`. See below +for additional information about functions and hooks. + ### Theme Functions There are three theme functions, a setup function, a help function, and diff --git a/modules/prompt/functions/prompt-pwd b/modules/prompt/functions/prompt-pwd index 53613e7292..d2d1788fdf 100644 --- a/modules/prompt/functions/prompt-pwd +++ b/modules/prompt/functions/prompt-pwd @@ -28,3 +28,4 @@ unset current_pwd print "$ret_directory" # } +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_cloud_setup b/modules/prompt/functions/prompt_cloud_setup index 0637208b4e..be2a33a495 100644 --- a/modules/prompt/functions/prompt_cloud_setup +++ b/modules/prompt/functions/prompt_cloud_setup @@ -104,6 +104,9 @@ function prompt_cloud_setup { # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_cloud_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Set git-info parameters. zstyle ':prezto:module:git:info' verbose 'yes' zstyle ':prezto:module:git:info:dirty' format "%%B%F{$secondary_color}]%f%%b %F{yellow}⚡%f" @@ -119,3 +122,4 @@ function prompt_cloud_setup { } prompt_cloud_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_damoekri_setup b/modules/prompt/functions/prompt_damoekri_setup index 4fe132d6e1..1fbaedfb03 100644 --- a/modules/prompt/functions/prompt_damoekri_setup +++ b/modules/prompt/functions/prompt_damoekri_setup @@ -40,6 +40,9 @@ function prompt_damoekri_setup { # Add hook for calling git-info and ruby-info before each command. add-zsh-hook precmd prompt_damoekri_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Set editor-info parameters. zstyle ':prezto:module:editor:info:keymap:primary' format ' %F{green}»%f' @@ -63,3 +66,4 @@ function prompt_damoekri_setup { } prompt_damoekri_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_giddie_setup b/modules/prompt/functions/prompt_giddie_setup index 3c194fb9a0..2b36ccc72a 100644 --- a/modules/prompt/functions/prompt_giddie_setup +++ b/modules/prompt/functions/prompt_giddie_setup @@ -47,6 +47,9 @@ function prompt_giddie_setup { # Add hook to set up prompt parameters before each command. add-zsh-hook precmd prompt_giddie_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Set editor-info parameters. zstyle ':prezto:module:editor:info:completing' format '%F{green}...%f' zstyle ':prezto:module:editor:info:keymap:alternate' format '%F{yellow}--- COMMAND ---%f' @@ -74,3 +77,4 @@ function prompt_giddie_setup { } prompt_giddie_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_kylewest_setup b/modules/prompt/functions/prompt_kylewest_setup index 70b6a54afe..d3b33a9548 100644 --- a/modules/prompt/functions/prompt_kylewest_setup +++ b/modules/prompt/functions/prompt_kylewest_setup @@ -40,6 +40,9 @@ function prompt_kylewest_setup { # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_kylewest_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Set editor-info parameters. zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b' zstyle ':prezto:module:editor:info:keymap:primary' format "%B%F{green}❯%f%b" @@ -63,3 +66,4 @@ function prompt_kylewest_setup { } prompt_kylewest_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_minimal_setup b/modules/prompt/functions/prompt_minimal_setup index b600768bd0..e57aac57c1 100644 --- a/modules/prompt/functions/prompt_minimal_setup +++ b/modules/prompt/functions/prompt_minimal_setup @@ -32,6 +32,9 @@ function prompt_minimal_setup { # Add hook for calling vcs_info before each command. add-zsh-hook precmd prompt_minimal_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Set vcs_info parameters. zstyle ':vcs_info:*' enable bzr git hg svn zstyle ':vcs_info:*' check-for-changes true @@ -57,3 +60,4 @@ function prompt_minimal_preview { } prompt_minimal_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_nicoulaj_setup b/modules/prompt/functions/prompt_nicoulaj_setup index 447ba1f40a..4b40bac8b1 100644 --- a/modules/prompt/functions/prompt_nicoulaj_setup +++ b/modules/prompt/functions/prompt_nicoulaj_setup @@ -35,6 +35,9 @@ function prompt_nicoulaj_setup { # Add hook for calling vcs_info before each command. add-zsh-hook precmd prompt_nicoulaj_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Customizable parameters. local max_path_chars=30 local user_char='❯' @@ -58,3 +61,4 @@ function prompt_nicoulaj_setup { } prompt_nicoulaj_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_paradox_setup b/modules/prompt/functions/prompt_paradox_setup index 4f19989daf..9286967f9a 100644 --- a/modules/prompt/functions/prompt_paradox_setup +++ b/modules/prompt/functions/prompt_paradox_setup @@ -116,6 +116,9 @@ function prompt_paradox_setup { add-zsh-hook preexec prompt_paradox_preexec add-zsh-hook precmd prompt_paradox_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Set editor-info parameters. zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b' zstyle ':prezto:module:editor:info:keymap:primary' format '%B%F{blue}❯%f%b' @@ -154,3 +157,4 @@ ${(e)$(prompt_paradox_build_prompt)} } prompt_paradox_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_peepcode_setup b/modules/prompt/functions/prompt_peepcode_setup index 2081961ca4..3a108df4a6 100644 --- a/modules/prompt/functions/prompt_peepcode_setup +++ b/modules/prompt/functions/prompt_peepcode_setup @@ -34,6 +34,9 @@ function prompt_peepcode_setup { # Add a hook for calling info functions before each command. add-zsh-hook precmd prompt_peepcode_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Set git-info parameters. zstyle ':prezto:module:git:info' verbose 'no' zstyle ':prezto:module:git:info:action' format ' +%s' @@ -83,3 +86,4 @@ function prompt_peepcode_preview { } prompt_peepcode_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_skwp_setup b/modules/prompt/functions/prompt_skwp_setup index f69dcddfe7..b84011fe53 100644 --- a/modules/prompt/functions/prompt_skwp_setup +++ b/modules/prompt/functions/prompt_skwp_setup @@ -36,6 +36,9 @@ function prompt_skwp_setup { # Add hook to set up prompt parameters before each command. add-zsh-hook precmd prompt_skwp_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Use extended color pallete if available. if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then _prompt_skwp_colors=( @@ -73,3 +76,4 @@ function prompt_skwp_setup { } prompt_skwp_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_smiley_setup b/modules/prompt/functions/prompt_smiley_setup index 3d41b3af46..cd1725bd05 100644 --- a/modules/prompt/functions/prompt_smiley_setup +++ b/modules/prompt/functions/prompt_smiley_setup @@ -41,6 +41,9 @@ function prompt_smiley_setup { # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_smiley_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Set editor-info parameters. zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b' @@ -63,3 +66,4 @@ function prompt_smiley_setup { } prompt_smiley_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 2df92122d0..41ac7d0175 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -118,6 +118,9 @@ function prompt_sorin_setup { # Add hook for calling git-info before each command. add-zsh-hook precmd prompt_sorin_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Set editor-info parameters. zstyle ':prezto:module:editor:info:completing' format '%B%F{7}...%f%b' zstyle ':prezto:module:editor:info:keymap:primary' format ' %B%F{1}❯%F{3}❯%F{2}❯%f%b' @@ -176,3 +179,4 @@ function prompt_sorin_preview { } prompt_sorin_setup "$@" +# vim: ft=zsh diff --git a/modules/prompt/functions/prompt_steeef_setup b/modules/prompt/functions/prompt_steeef_setup index ca39f9321d..d32bd343f0 100644 --- a/modules/prompt/functions/prompt_steeef_setup +++ b/modules/prompt/functions/prompt_steeef_setup @@ -41,6 +41,9 @@ function prompt_steeef_setup { # Add hook for calling vcs_info before each command. add-zsh-hook precmd prompt_steeef_precmd + # Tell prezto we can manage this prompt + zstyle ':prezto:module:prompt' managed 'yes' + # Use extended color pallete if available. if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then _prompt_steeef_colors=( @@ -104,3 +107,4 @@ function prompt_steeef_preview { } prompt_steeef_setup "$@" +# vim: ft=zsh From b01f02aa5c6714430647a4ee854149e9a336270a Mon Sep 17 00:00:00 2001 From: romkatv Date: Wed, 31 Jul 2019 15:10:06 +0200 Subject: [PATCH 268/322] prompt: update powerlevel10k submodule to the latest commit New feature: Configuration Wizard. Type `p10k configure` to explore the unique styles and features Powerlevel10k has to offer. --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index f14497918f..3fe113f91d 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit f14497918f0a70955f6d227d1e002ad2a3f94cc8 +Subproject commit 3fe113f91d0f819ad33c90608c3f293a1559324a From abb0c7ecb4b4c4a83ee952681cd9de30a11f9058 Mon Sep 17 00:00:00 2001 From: romkatv Date: Fri, 2 Aug 2019 07:11:27 +0200 Subject: [PATCH 269/322] prompt: update powerlevel10k submodule to the latest commit A dozen bug fixes. Most important: - rbenv and a few other segments didn't work if IFS was set to something unusual. - vcs segment couldn't properly apply subsegment style if color overrides used mnemonic names. - the check for .p10k.zsh already being sourced was too strict. --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 3fe113f91d..635b0d7c99 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 3fe113f91d0f819ad33c90608c3f293a1559324a +Subproject commit 635b0d7c99a22d996b5ca43efb56e9ec6b1ebdb4 From a8087e01fbe2eff895ca6c85eddda76ff2ebd883 Mon Sep 17 00:00:00 2001 From: romkatv Date: Mon, 19 Aug 2019 11:30:16 +0200 Subject: [PATCH 270/322] prompt: update powerlevel10k submodule to the latest commit - Several bug fixes. Most notable: - Don't hide command execution time on reset-prompt. - Support prezto with zsh 5.1. - Don't hide nvm prompt when there is no nvm command. - New prompt: ranger. - Add an option to hide rust version when outside of rust project tree. - Add an option to show rvm gemset. --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 635b0d7c99..3090ae6633 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 635b0d7c99a22d996b5ca43efb56e9ec6b1ebdb4 +Subproject commit 3090ae6633aedc50b43524e6c2ce1482b0a15772 From 34948690d575e9bfc9a3836b2f5a8a87c69a4a26 Mon Sep 17 00:00:00 2001 From: Julien Brochet Date: Tue, 13 Aug 2019 16:02:41 +0200 Subject: [PATCH 271/322] syntax-highlighting: update external dependency --- modules/syntax-highlighting/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index 1e34c4aa0b..35c8690c00 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit 1e34c4aa0bcbdde5173aab15600784edf0a212fd +Subproject commit 35c8690c0025ceef9584f64da86ced3a72ee32b6 From 8914274ca9f7b997d4a1663e0f290c691772db7f Mon Sep 17 00:00:00 2001 From: pedrosland Date: Mon, 19 Aug 2019 18:30:33 +0100 Subject: [PATCH 272/322] prompt: update zsh-async to fix an infinite loop (#1734) --- modules/prompt/external/async | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/async b/modules/prompt/external/async index 58f7ba70f0..95c2b1577f 160000 --- a/modules/prompt/external/async +++ b/modules/prompt/external/async @@ -1 +1 @@ -Subproject commit 58f7ba70f05e75802299848e7e31c7d7a7fd0c97 +Subproject commit 95c2b1577f455728ec01cec001a86c216d0af2bd From 8b1a7afd81a97014eb0ac2d3e357e962d5b7625d Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Fri, 6 Sep 2019 19:08:26 +0200 Subject: [PATCH 273/322] prompt: update powerlevel10k submodule to the latest commit (#1738) - New prompt segment: terraform. - Configuration wizard: - Offer to install Meslo Nerd Font (only on iTerm2 and Termux). - Offer to enable `time` prompt segment. - New style options: round separators, heads and tails. - Reduce the minimum required terminal width to 55 columns. - Several bug fixes. Most notable: - Fix network interface and ip parsing on Linux and WSL. - Disregard auto_name_dirs if it's set. --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 3090ae6633..5886154bb1 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 3090ae6633aedc50b43524e6c2ce1482b0a15772 +Subproject commit 5886154bb14965f59d26f349b97e2c5e9104bf93 From 43214f1aed1723ab5b18cd73ce0019b5c6bb9848 Mon Sep 17 00:00:00 2001 From: Shane O'Grady Date: Mon, 9 Sep 2019 17:49:48 -0700 Subject: [PATCH 274/322] history: Permit use of previously set HISTFILE Honor the use of the HISTFILE environment variable, if it's already set. --- modules/history/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/history/init.zsh b/modules/history/init.zsh index a26f3c9f42..d1d3373a98 100644 --- a/modules/history/init.zsh +++ b/modules/history/init.zsh @@ -26,7 +26,7 @@ setopt HIST_BEEP # Beep when accessing non-existent history. # Variables # -HISTFILE="${ZDOTDIR:-$HOME}/.zhistory" # The path to the history file. +HISTFILE="${HISTFILE:-${ZDOTDIR:-$HOME}/.zhistory}" # The path to the history file. HISTSIZE=10000 # The maximum number of events to save in the internal history. SAVEHIST=10000 # The maximum number of events to save in the history file. From 75940e8ee97fe7fe8b690ca98b76f95f4148a960 Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Tue, 10 Sep 2019 17:57:42 +0200 Subject: [PATCH 275/322] directory: update docs to clarify it doesn't really set AUTO_NAME_DIRS (#1740) Module `directory` used to set AUTO_NAME_DIRS. This was changed in 73e94b84 but README.md hasn't been updated. This looks like an accidental omission that this commit fixes. --- modules/directory/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/directory/README.md b/modules/directory/README.md index 47c1bc201b..ce806eea12 100644 --- a/modules/directory/README.md +++ b/modules/directory/README.md @@ -12,7 +12,6 @@ Options - `PUSHD_SILENT` does not print the directory stack after `pushd` or `popd`. - `PUSHD_TO_HOME` pushes to the home directory when no argument is given. - `CDABLE_VARS` changes directory to a path stored in a variable. - - `AUTO_NAME_DIRS` auto adds variable-stored paths to `~` list. - `MULTIOS` writes to multiple descriptors. - `EXTENDED_GLOB` uses extended globbing syntax. - `CLOBBER` does not overwrite existing files with `>` and `>>`. Use `>!` and From 6ae2f39cc12d7102ca207e3bd33e986acce3eac8 Mon Sep 17 00:00:00 2001 From: laggardkernel Date: Thu, 25 Apr 2019 15:59:49 +0800 Subject: [PATCH 276/322] ruby: support environment variable RBENV_ROOT --- modules/ruby/init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ruby/init.zsh b/modules/ruby/init.zsh index 4ede36675f..1c1fb999e1 100644 --- a/modules/ruby/init.zsh +++ b/modules/ruby/init.zsh @@ -15,8 +15,8 @@ if [[ -s "$HOME/.rvm/scripts/rvm" ]]; then source "$HOME/.rvm/scripts/rvm" # Load manually installed rbenv into the shell session. -elif [[ -s "$HOME/.rbenv/bin/rbenv" ]]; then - path=("$HOME/.rbenv/bin" $path) +elif [[ -s "${RBENV_ROOT:=$HOME/.rbenv}/bin/rbenv" ]]; then + path=("${RBENV_ROOT}/bin" $path) eval "$(rbenv init - --no-rehash zsh)" # Load package manager installed rbenv into the shell session. From 61de4d199d145ac35c21d8144942bb533533f51f Mon Sep 17 00:00:00 2001 From: laggardkernel Date: Thu, 25 Apr 2019 16:00:34 +0800 Subject: [PATCH 277/322] node: support environment variables NVM_DIR and NODENV_ROOT --- modules/node/init.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/node/init.zsh b/modules/node/init.zsh index d8eea1459e..1ea66f9c6c 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -7,8 +7,8 @@ # # Load manually installed NVM into the shell session. -if [[ -s "$HOME/.nvm/nvm.sh" ]]; then - source "$HOME/.nvm/nvm.sh" +if [[ -s "${NVM_DIR:=$HOME/.nvm}/nvm.sh" ]]; then + source "${NVM_DIR}/nvm.sh" # Load package manager installed NVM into the shell session. elif (( $+commands[brew] )) && \ @@ -17,8 +17,8 @@ elif (( $+commands[brew] )) && \ unset nvm_prefix # Load manually installed nodenv into the shell session. -elif [[ -s "$HOME/.nodenv/bin/nodenv" ]]; then - path=("$HOME/.nodenv/bin" $path) +elif [[ -s "${NODENV_ROOT:=$HOME/.nodenv}/bin/nodenv" ]]; then + path=("${NODENV_ROOT}/bin" $path) eval "$(nodenv init - --no-rehash zsh)" # Load package manager installed nodenv into the shell session. From f596d5d1d6f7ff4edefd03749e847fdfd0505654 Mon Sep 17 00:00:00 2001 From: laggardkernel Date: Thu, 25 Apr 2019 16:02:05 +0800 Subject: [PATCH 278/322] python: improve PYENV_ROOT detection --- modules/python/init.zsh | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 44043f1c35..e5967f7aa8 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -8,17 +8,12 @@ # # Load manually installed pyenv into the path -if [[ -n "$PYENV_ROOT" && -s "$PYENV_ROOT/bin/pyenv" ]]; then - path=("$PYENV_ROOT/bin" $path) -elif [[ -s "$HOME/.pyenv/bin/pyenv" ]]; then - path=("$HOME/.pyenv/bin" $path) -fi +if [[ -s "${PYENV_ROOT:=$HOME/.pyenv}/bin/pyenv" ]]; then + path=("${PYENV_ROOT}/bin" $path) + eval "$(pyenv init - --no-rehash zsh)" # Load pyenv into the current python session -if (( $+commands[pyenv] )); then - if [[ -z "$PYENV_ROOT" ]]; then - export PYENV_ROOT=$(pyenv root) - fi +elif (( $+commands[pyenv] )); then eval "$(pyenv init - --no-rehash zsh)" # Prepend PEP 370 per user site packages directory, which defaults to From 75b112bcd0ba3a85e1848d25db571aee6da75995 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 10 Sep 2019 09:10:31 -0700 Subject: [PATCH 279/322] node, python, ruby: update docs about new envars --- modules/node/README.md | 6 ++++++ modules/python/README.md | 3 +++ modules/ruby/README.md | 3 +++ 3 files changed, 12 insertions(+) diff --git a/modules/node/README.md b/modules/node/README.md index 951f2a7447..af447c1421 100644 --- a/modules/node/README.md +++ b/modules/node/README.md @@ -10,6 +10,9 @@ nvm [nvm][5] allows for managing multiple, isolated Node.js installations in the home directory. +This will be loaded automatically if nvm is installed in `$NVM_DIR`, +`~/.nvm`, or nvm is installed with homebrew. + nodenv ------ @@ -17,6 +20,9 @@ nodenv Node versions. It's simple and predictable, Just Works, and is rock solid in production. nodenv is forked from the popular [rbenv][7]. +This will be loaded automatically if nodenv is installed in `$NODENV_ROOT`, +`~/.nodenv`, or `nodenv` is on the path. + Functions --------- diff --git a/modules/python/README.md b/modules/python/README.md index 121ea37395..91dc87feae 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -35,6 +35,9 @@ execution of `pyenv`. Install Python versions with `pyenv install` into `~/.pyenv/versions`. +This will be loaded automatically if pyenv is installed to `$PYENV_ROOT`, +`~/.pyenv`, or if the `pyenv` command is on the path. + Local Package Installation -------------------------- diff --git a/modules/ruby/README.md b/modules/ruby/README.md index 12848d8649..feaa3016a5 100644 --- a/modules/ruby/README.md +++ b/modules/ruby/README.md @@ -32,6 +32,9 @@ multiple, isolated Ruby installations in the home directory. While it is not as feature rich as RVM, it is not loaded into the shell and is not known to cause conflicts with shell scripts. +This will be loaded automatically if rbenv is installed to `$RBENV_ROOT`, +`~/.rbenv`, or if the `rbenv` command is on the path. + chruby ------ From 9507a0e881ae71528c9a4182e53c62f2896c8d31 Mon Sep 17 00:00:00 2001 From: Robson Roberto Souza Peixoto <124390+robsonpeixoto@users.noreply.github.com> Date: Tue, 10 Sep 2019 13:18:09 -0300 Subject: [PATCH 280/322] tmux: ignore tmux autostart in vscode terminal (#1718) In certain situations VSCODE_PID isn't set any more, so we just need to check TERM_PROGRAM which has existed for a few years already. --- modules/tmux/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tmux/init.zsh b/modules/tmux/init.zsh index fb56d07603..5c51855f2a 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" && -z "$VSCODE_PID" ]] && ( \ +if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" && -z "$INSIDE_EMACS" && "$TERM_PROGRAM" != "vscode" ]] && ( \ ( [[ -n "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' remote ) || ( [[ -z "$SSH_TTY" ]] && zstyle -t ':prezto:module:tmux:auto-start' local ) \ ); then From 2873885d37e362ae9be8ff4cb93ae36739ac0067 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sat, 21 Sep 2019 17:29:18 -0700 Subject: [PATCH 281/322] utility: fix safe-ops commands Fixes #1699 --- modules/utility/init.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 59a04f93f7..a2e5c2bdfe 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -66,10 +66,10 @@ 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' + alias rm="${aliases[rm]:-rm} -i" + alias mv="${aliases[mv]:-mv} -i" + alias cp="${aliases[cp]:-cp} -i" + alias ln="${aliases[ln]:-ln} -i" fi # ls From 55eb406515ba9add9c5d77a50ca04386d4f02613 Mon Sep 17 00:00:00 2001 From: lambdanerd Date: Fri, 11 Oct 2019 15:15:21 -0500 Subject: [PATCH 282/322] Remove alias for invalid `brew cleanup --force` `brew cleanup --force` produces the following error message: `Error: invalid option: --force`. I can't seem to find any record of this being a valid option for the cleanup command, so either it was deprecated in the stone age or it was a simple mistake. However, there is a `--force` option available for `brew uninstall`, but that's a dicey thing to alias. --- modules/homebrew/init.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index 056f1fb5db..283bb1234f 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -27,7 +27,6 @@ fi # Homebrew alias brewc='brew cleanup' -alias brewC='brew cleanup --force' alias brewi='brew install' alias brewl='brew list' alias brewo='brew outdated' From 1bc0da5f489b1f7084e5ac1c4606e89614dfacc4 Mon Sep 17 00:00:00 2001 From: Wouter Overmeire Date: Mon, 14 Oct 2019 16:27:01 +0200 Subject: [PATCH 283/322] Init submodules when using zprezto-update (#1713) --- init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.zsh b/init.zsh index 99254bdb58..87f095e595 100644 --- a/init.zsh +++ b/init.zsh @@ -44,7 +44,7 @@ function zprezto-update { 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 + git submodule update --init --recursive return $? else cannot-fast-forward From 6d65cb4176c75d3ce143393b3ae12356b644c092 Mon Sep 17 00:00:00 2001 From: lambdanerd Date: Thu, 17 Oct 2019 01:44:17 -0500 Subject: [PATCH 284/322] Remove documentation for obsolete `brewC` alias --- modules/homebrew/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/homebrew/README.md b/modules/homebrew/README.md index 2a37553d15..3e27013f6c 100644 --- a/modules/homebrew/README.md +++ b/modules/homebrew/README.md @@ -18,7 +18,6 @@ Aliases ### Homebrew - `brewc` cleans outdated brews and their cached archives. - - `brewC` cleans outdated brews, including keg-only, and their cached archives. - `brewi` installs a formula. - `brewl` lists installed formulae. - `brewo` lists brews which have an update available. From ed6303c34048fbe0b40de23a648e397e50efeb62 Mon Sep 17 00:00:00 2001 From: lambdanerd Date: Thu, 17 Oct 2019 01:55:40 -0500 Subject: [PATCH 285/322] homebrew: add alias `brewL` --- modules/homebrew/README.md | 1 + modules/homebrew/init.zsh | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/homebrew/README.md b/modules/homebrew/README.md index 3e27013f6c..1d29871e51 100644 --- a/modules/homebrew/README.md +++ b/modules/homebrew/README.md @@ -19,6 +19,7 @@ Aliases - `brewc` cleans outdated brews and their cached archives. - `brewi` installs a formula. + - `brewL` lists installed formulae that are not dependencies of another installed formula. - `brewl` lists installed formulae. - `brewo` lists brews which have an update available. - `brews` searches for a formula. diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index 283bb1234f..9f7e0b4646 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -14,7 +14,7 @@ fi # Variables # -# Load standard Homebrew shellenv into the shell session. +# Load standard Homebrew shellenv into the shell session. # Load 'HOMEBREW_' prefixed variables only. Avoid loading 'PATH' related # variables as they are already handled in standard zsh configuration. if (( $+commands[brew] )); then @@ -28,6 +28,7 @@ fi # Homebrew alias brewc='brew cleanup' alias brewi='brew install' +alias brewL='brew leaves' alias brewl='brew list' alias brewo='brew outdated' alias brews='brew search' From 0af28e758b953d1f6925e34e3664e4ad23719641 Mon Sep 17 00:00:00 2001 From: romkatv Date: Tue, 5 Nov 2019 10:56:58 +0100 Subject: [PATCH 286/322] prompt: update powerlevel10k submodule to the latest commit (#1757) - New feature: Instant Prompt. - Zsh starts instantly even if zshrc loads dozens of plugins. - Must be explicitly enabled via `p10k configure`. - New prompt segment: azure. - New styles: Pure and Rainbow. - 6 times faster loading (independent of instant prompt). --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 5886154bb1..4586e8d54c 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 5886154bb14965f59d26f349b97e2c5e9104bf93 +Subproject commit 4586e8d54c40fb6bd688128101ea5c853e34773b From 2d6205e71404704eecc4f402e5b09d7cbd19bab7 Mon Sep 17 00:00:00 2001 From: romkatv Date: Sun, 10 Nov 2019 09:30:35 +0100 Subject: [PATCH 287/322] prompt: update powerlevel10k submodule to the latest commit (#1761) New feature: Transient Prompt. Demo: https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/transient-prompt.gif Announcement post: https://www.reddit.com/r/zsh/comments/dsh1g3/new_powerlevel10k_feature_transient_prompt --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 4586e8d54c..e753f4152c 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 4586e8d54c40fb6bd688128101ea5c853e34773b +Subproject commit e753f4152c950ab6ea368f3da526b7b49180c847 From a5ebde1b171abfc57eeb434c13935ea8dc0e2a22 Mon Sep 17 00:00:00 2001 From: romkatv Date: Fri, 6 Dec 2019 15:52:54 +0100 Subject: [PATCH 288/322] prompt: update powerlevel10k submodule to the latest commit (#1768) - New prompt segments: - gcloud - fvm - vim_shell - midnight_commander - goenv - Many bug fixes and new minor features. --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index e753f4152c..345d0644a9 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit e753f4152c950ab6ea368f3da526b7b49180c847 +Subproject commit 345d0644a9c1a242ff131bde915bbe234c3dd745 From e86200e7aad9d4ccbabd34222ffcded3f52c6f65 Mon Sep 17 00:00:00 2001 From: Maxim Baz Date: Thu, 19 Dec 2019 00:37:51 +0100 Subject: [PATCH 289/322] Allow mapping Ctrl+S and Ctrl+Q shortcuts (#1750) --- modules/environment/init.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/environment/init.zsh b/modules/environment/init.zsh index 7ae8c4f6a6..b01a7ad593 100644 --- a/modules/environment/init.zsh +++ b/modules/environment/init.zsh @@ -38,6 +38,9 @@ setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell. setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'. unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed. +# Allow mapping Ctrl+S and Ctrl+Q shortcuts +(( $+commands[stty] )) && stty -ixon + # # Jobs # From 7c94154dda2dfcf02515f1caf1e9dfe6d80b0350 Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Sat, 28 Dec 2019 00:22:15 +0100 Subject: [PATCH 290/322] environment: apply `stty -ixon` only to tty (#1771) --- modules/environment/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/environment/init.zsh b/modules/environment/init.zsh index b01a7ad593..ac762780df 100644 --- a/modules/environment/init.zsh +++ b/modules/environment/init.zsh @@ -39,7 +39,7 @@ setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Gar unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed. # Allow mapping Ctrl+S and Ctrl+Q shortcuts -(( $+commands[stty] )) && stty -ixon +[[ -n ${TTY:-} && $+commands[stty] == 1 ]] && stty -ixon <$TTY >$TTY # # Jobs From c6efe8015224fe6dbc10d8f4b1aa52ce5afc9432 Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Sat, 11 Jan 2020 09:48:45 +0100 Subject: [PATCH 291/322] runcoms: don't raise an error in zlogin when stderr is not a TTY (#1775) The existing code in runcoms/zlogin results in `$?` being equal to `1` when starting a login shell if stderr is not a TTY. For example: zsh -l 2>/dev/null When using a theme that displays error/success status of the last command, the first prompt will show an error. This commit fixes it so that error code is zero after sourcing zlogin (unless something unexpected and bad happens). --- runcoms/zlogin | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runcoms/zlogin b/runcoms/zlogin index 16fae45e0f..9ea97929c2 100644 --- a/runcoms/zlogin +++ b/runcoms/zlogin @@ -15,7 +15,7 @@ } &! # Execute code only if STDERR is bound to a TTY. -[[ -o INTERACTIVE && -t 2 ]] && { +if [[ -o INTERACTIVE && -t 2 ]]; then # Print a random, hopefully interesting, adage. if (( $+commands[fortune] )); then @@ -23,4 +23,4 @@ print fi -} >&2 +fi >&2 From a3a51bdf6c485ff60153e80b66915626fcbacd4f Mon Sep 17 00:00:00 2001 From: mattmc3 Date: Mon, 13 Jan 2020 18:49:37 -0500 Subject: [PATCH 292/322] Support pmodule-allow-overrides feature (#1780) --- init.zsh | 8 +++++--- runcoms/zpreztorc | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/init.zsh b/init.zsh index 87f095e595..254ae52cc2 100644 --- a/init.zsh +++ b/init.zsh @@ -98,15 +98,17 @@ function pmodload { else locations=(${pmodule_dirs:+${^pmodule_dirs}/$pmodule(-/FN)}) if (( ${#locations} > 1 )); then - print "$0: conflicting module locations: $locations" - continue + if ! zstyle -t ':prezto:load' pmodule-allow-overrides 'yes'; then + print "$0: conflicting module locations: $locations" + continue + fi elif (( ${#locations} < 1 )); then print "$0: no such module: $pmodule" continue fi # Grab the full path to this module - pmodule_location=${locations[1]} + pmodule_location=${locations[-1]} # Add functions to $fpath. fpath=(${pmodule_location}/functions(/FN) $fpath) diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index a54907344c..9a3c19ae3f 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -18,6 +18,9 @@ zstyle ':prezto:*:*' color 'yes' # Add additional directories to load prezto modules from # zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib +# Allow module overrides when pmodule-dirs causes module name collisions +# zstyle ':prezto:load' pmodule-allow-overrides 'yes' + # Set the Zsh modules to load (man zshmodules). # zstyle ':prezto:load' zmodule 'attr' 'stat' From 2acaec814fe85e45a59ba9a7c7ce9b9b39a73d3c Mon Sep 17 00:00:00 2001 From: Ivan Smirnov Date: Tue, 14 Jan 2020 09:08:47 -0800 Subject: [PATCH 293/322] autosuggestions: update to v0.6.4 --- modules/autosuggestions/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index 733abd4af0..ae315ded4d 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit 733abd4af0f23f217caa2a303fbef66382d19d6f +Subproject commit ae315ded4dba10685dbbafbfa2ff3c1aefeb490d From 9ae279e25ad4afed2c069cf537b9984474afe5a4 Mon Sep 17 00:00:00 2001 From: Joost Cassee Date: Wed, 8 Jan 2020 16:26:10 +0100 Subject: [PATCH 294/322] Allow module functions directory to be a symlink The link must still point to a full directory. --- init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.zsh b/init.zsh index 254ae52cc2..ebae912bc9 100644 --- a/init.zsh +++ b/init.zsh @@ -111,7 +111,7 @@ function pmodload { pmodule_location=${locations[-1]} # Add functions to $fpath. - fpath=(${pmodule_location}/functions(/FN) $fpath) + fpath=(${pmodule_location}/functions(-/FN) $fpath) function { local pfunction From 1f52b03a4569eaf82a78ed9d0b76a9e21aa6dfee Mon Sep 17 00:00:00 2001 From: romkatv Date: Thu, 16 Jan 2020 16:45:12 +0100 Subject: [PATCH 295/322] prompt: update powerlevel10k submodule to the latest commit (#1784) - New features: - Show On Command -- Display prompt segments conditional on the command being typed. Demo: https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/show-on-command.gif - `p10k display` -- Quickly hide or show different parts of prompt. - `p10k-on-*` hooks -- Get notified about prompt-related events. - New prompt segments: - google_app_cred -- Google Application Credentials. - luaenv -- Lua version from https://github.com/cehoffman/luaen. - jenv -- Java version from https://github.com/jenv/jenv. - plenv -- Perl version from https://github.com/tokuhirom/plenv. - nnn -- Shell indicator for https://github.com/jarun/nnn. - Important fixes: - Ctrl-C no longer shortens prompt when used to terminate a zle widget with transient prompt enabled. - Don't print warnings in instant prompt when OMZ is updating. - rust_version now properly recognized rustup overrides. - Smoother rendering when using transient prompt. - New style in `p10k configure`: Lean restricted to 8 colors. --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 345d0644a9..c21961b53c 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 345d0644a9c1a242ff131bde915bbe234c3dd745 +Subproject commit c21961b53c137253020aeffca2b132fdd6bcb116 From 4a32e9d68b95ed3b6554d662fc774c5f5efb391d Mon Sep 17 00:00:00 2001 From: Jongwook Choi Date: Mon, 20 Jan 2020 07:25:07 -0800 Subject: [PATCH 296/322] node: suppress node-info when nvm points system-wide node (#802) On modern versions of nvm, when virtual environment is not activated (i.e. node comes from system-wide and `nvm version` == 'system'), redundant node-info could be suppressed from showing. From 7cad349a5aac43d4a7779e9d51bab43007af5902 Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Mon, 20 Jan 2020 16:29:34 +0100 Subject: [PATCH 297/322] environment: improve the TTY check (#1785) Bug report from @qosmio: https://github.com/sorin-ionescu/prezto/pull/1771#issuecomment-575596417 I'm unable to reproduce it and @qosmio hasn't yet confirmed or disconfirmed whether this fix works. It's a good idea to change the code this way in either case. (As I mentioned in #1771, this `stty -ixon` call may have been added by mistake. It doesn't do what the comment suggest and is at least as likely to be harming users as helping them.) --- modules/environment/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/environment/init.zsh b/modules/environment/init.zsh index ac762780df..836a6cd443 100644 --- a/modules/environment/init.zsh +++ b/modules/environment/init.zsh @@ -39,7 +39,7 @@ setopt RC_QUOTES # Allow 'Henry''s Garage' instead of 'Henry'\''s Gar unsetopt MAIL_WARNING # Don't print a warning message if a mail file has been accessed. # Allow mapping Ctrl+S and Ctrl+Q shortcuts -[[ -n ${TTY:-} && $+commands[stty] == 1 ]] && stty -ixon <$TTY >$TTY +[[ -r ${TTY:-} && -w ${TTY:-} && $+commands[stty] == 1 ]] && stty -ixon <$TTY >$TTY # # Jobs From 66b9ea7d44740be0d8185b4623398f27fed8104d Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Mon, 20 Jan 2020 07:50:42 -0800 Subject: [PATCH 298/322] Update documentation - Fix an old link to the wrong issue tracker - Add documentation to the history module about migration from oh-my-zsh Closes #1766 --- modules/editor/README.md | 2 +- modules/history/README.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/editor/README.md b/modules/editor/README.md index d5280c45f5..7035635b2c 100644 --- a/modules/editor/README.md +++ b/modules/editor/README.md @@ -106,4 +106,4 @@ Authors - [Sorin Ionescu](https://github.com/sorin-ionescu) -[1]: https://github.com/sorin-ionescu/oh-my-zsh/issues +[1]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/history/README.md b/modules/history/README.md index a5a4acb125..1a03bd95e1 100644 --- a/modules/history/README.md +++ b/modules/history/README.md @@ -3,6 +3,10 @@ History Sets [history][1] options and defines history aliases. +**Note:** If you are migrating from oh-my-zsh and want to keep your history, you +will either need to set HISTFILE manually to `$HOME/.zsh_history` or rename +`~/.zsh_history` to ~/.zhistory`. + Options ------- From 4bcbe2ee68f6e9c969efea3e6b8dc013876482ed Mon Sep 17 00:00:00 2001 From: romkatv Date: Sun, 2 Feb 2020 17:29:08 +0100 Subject: [PATCH 299/322] prompt: update powerlevel10k submodule to v1.1 ==[ Changes since the last release ]== - Complete documentation overhaul. Powerlevel10k documentation is no longer embarrassing (still no reference though; coming "soon"). - Worker pool and recursive globber have been rewritten for better performance and simpler code. Performance improvements (large speedup means an improvement in big-O and at least 2x in typical configurations): - +15% prompt speedup across the board. - Large prompt speedup for several rarely used prompt segments (disk_usage, ram, etc.). - Large prompt speedup for a few prompt segments on macOS (battery, swap, etc.). - Large prompt speedup when many prompt segments are active simultaneously. - Large prompt speedup when filesystem is slow. - New prompt segments: nix_shell and timewarrior. Both enabled by default. - Configuration wizard: - Many new options for Pure style (color scheme, number of lines, etc.) - Several new options for 8-color version of Pure style. - Better support for terminals with less than 256 colors. - Lean, Classic and Rainbow style configs now have disk_usage and swap prompt segments (disabled by default). - POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER now contains 'oc'. - New parameters: - POWERLEVEL9K_LEGACY_ICON_SPACING=true makes spaces around icons appear just like in powerlevel9k. - When in a vcs repo, POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=true removes directory prefix that precedes repo root. - P9K_KUBECONTEXT_USER can now be used in kubecontext format. - POWERLEVEL9K_GOENV_SOURCES -- the same as POWERLEVEL9K_RBENV_SOURCES but or go. - POWERLEVEL9K_TERRAFORM_CLASSES -- the same as POWERLEVEL9K_AWS_CLASSES but for terraform. - Bug fixes: - Configuration wizard now correctly follows symlinks when modifying ~/.zshrc and ~/.p10k.zsh. - ram prompt segment now works on WSL. - Powerlevel10k now correctly works with zsh-you-should-use in hardcore mode. - POWERLEVEL9K_PUBLIC_IP_HOST now points to a host that actually works. - Instant prompt no longer prints nonsensical "entry=" in rare circumstances. - Misc: - Config templates no longer work with POWERLEVEL9K_VISUAL_IDENTIFIER='' defined after them. - Powerlevel10k now detects when Antigen corrupts its source and emits an appropriate error message. - Command line parser now understands 'tabbed'. - Remove all references to romkatv/dotfiles-public. Fonts are now hosted in romkatv/powerlevel10k-media together with all images and animations. ==[ Build time dependencies ]== - https://github.com/romkatv/gitstatus/tree/edb99aa7b86d10ad0a1cfe25135b57c8031d82ad - https://github.com/romkatv/libgit2/tree/75be63625a0de418ec3551306362ee1e21034039 - https://opensource.apple.com/tarballs/libiconv/libiconv-51.200.6.tar.gz --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index c21961b53c..9d9c50611d 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit c21961b53c137253020aeffca2b132fdd6bcb116 +Subproject commit 9d9c50611da19044370ee759e593ccadbad32a6a From e9f281cd6f62983f44faaae0816866d13bc1474e Mon Sep 17 00:00:00 2001 From: Federico Frenguelli Date: Tue, 11 Feb 2020 08:48:26 +0100 Subject: [PATCH 300/322] Updated prompt pure to version 1.11.0 --- modules/prompt/external/pure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/pure b/modules/prompt/external/pure index 7aade5fca2..2e354b80de 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit 7aade5fca2acae3f10e260d0c076af6356da9dc6 +Subproject commit 2e354b80deae105ea246699c49e65dcd4fe8b759 From 92e6b37f73c221ebf0d8ba7a7d5bd7c2ef63e67f Mon Sep 17 00:00:00 2001 From: romkatv Date: Wed, 26 Feb 2020 18:19:53 +0100 Subject: [PATCH 301/322] prompt: update powerlevel10k submodule to v1.2.0 Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.2.0 --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 9d9c50611d..cb3f58d21f 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 9d9c50611da19044370ee759e593ccadbad32a6a +Subproject commit cb3f58d21f643d26d71f520d61a592816cca3edf From 94f9e44f3f970357d47e669410ed444db3074360 Mon Sep 17 00:00:00 2001 From: romkatv Date: Mon, 2 Mar 2020 09:27:40 +0100 Subject: [PATCH 302/322] use $TTY instead of $(tty); it's faster and more reliable `tty` command infers the current TTY from file descriptor 0. `$TTY` gives current TTY directly. The latter works even when file descriptor 0 is redirected. It's also over 1000 times faster. --- modules/gpg/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gpg/init.zsh b/modules/gpg/init.zsh index 7976fd7da4..4498b7b066 100644 --- a/modules/gpg/init.zsh +++ b/modules/gpg/init.zsh @@ -26,7 +26,7 @@ if [[ -z "$GPG_AGENT_INFO" && ! -S "${GNUPGHOME:-$HOME/.gnupg}/S.gpg-agent" ]]; fi # Inform gpg-agent of the current TTY for user prompts. -export GPG_TTY="$(tty)" +export GPG_TTY=$TTY # Integrate with the SSH module. if grep '^enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then From d955fbdeb729ed038ffa7af16c1cf82dd68aff1e Mon Sep 17 00:00:00 2001 From: romkatv Date: Fri, 6 Mar 2020 17:40:32 +0100 Subject: [PATCH 303/322] prompt: update powerlevel10k submodule to v1.3.0 Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.3.0 --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index cb3f58d21f..7306efb94b 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit cb3f58d21f643d26d71f520d61a592816cca3edf +Subproject commit 7306efb94ba739f714972038ad74c48d2bebfdd6 From cfeb8cd6c9f60c2a928f4c706d0137c7de2ef106 Mon Sep 17 00:00:00 2001 From: romkatv Date: Mon, 16 Mar 2020 08:34:02 +0100 Subject: [PATCH 304/322] prompt: update powerlevel10k submodule to v1.4.0 Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.4.0 --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 7306efb94b..d53355cd30 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 7306efb94ba739f714972038ad74c48d2bebfdd6 +Subproject commit d53355cd30acf8888bc1cf5caccea52f486c5584 From 1b99be879c84be12364ca9d1db553de61fd5586e Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 19 Mar 2020 11:19:25 -0700 Subject: [PATCH 305/322] Update syntax-highlighting module --- modules/syntax-highlighting/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index 35c8690c00..932e29a0c7 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit 35c8690c0025ceef9584f64da86ced3a72ee32b6 +Subproject commit 932e29a0c75411cb618f02995b66c0a4a25699bc From f4ca9ebfc913453f98ba6912a8c42684fd742cc1 Mon Sep 17 00:00:00 2001 From: Kaspar Vollenweider Date: Thu, 13 Feb 2020 09:56:29 +0100 Subject: [PATCH 306/322] feat(helper): add os-type helper functions Add the following functions: - is-darwin - is-linux - is-bsd - is-cygwin And apply them everywhere I found code doing that what these functions do. --- modules/haskell/init.zsh | 2 +- modules/helper/init.zsh | 20 ++++++++++++++++++++ modules/homebrew/init.zsh | 2 +- modules/macports/init.zsh | 2 +- modules/osx/init.zsh | 2 +- modules/perl/init.zsh | 2 +- modules/python/init.zsh | 2 +- modules/rsync/init.zsh | 2 +- modules/utility/init.zsh | 6 +++--- 9 files changed, 30 insertions(+), 10 deletions(-) diff --git a/modules/haskell/init.zsh b/modules/haskell/init.zsh index c1c78ca2a0..7863528a72 100644 --- a/modules/haskell/init.zsh +++ b/modules/haskell/init.zsh @@ -11,7 +11,7 @@ if (( ! $+commands[ghc] )); then fi # Prepend Cabal per user directories to PATH. -if [[ "$OSTYPE" == darwin* && -d $HOME/Library/Haskell ]]; then +if is-darwin && [[ -d $HOME/Library/Haskell ]]; then path=($HOME/Library/Haskell/bin(/N) $path) else path=($HOME/.cabal/bin(/N) $path) diff --git a/modules/helper/init.zsh b/modules/helper/init.zsh index 328bed4f71..6e83f89a18 100644 --- a/modules/helper/init.zsh +++ b/modules/helper/init.zsh @@ -29,3 +29,23 @@ function coalesce { done return 1 } + +# is true on MacOS Darwin +function is-darwin { + [[ "$OSTYPE" == darwin* ]] +} + +# is true on Linux's +function is-linux { + [[ "$OSTYPE" == linux* ]] +} + +# is true on BSD's +function is-bsd { + [[ "$OSTYPE" == *bsd* ]] +} + +# is true on Cygwin (Windows) +function is-cygwin { + [[ "$OSTYPE" == cygwin* ]] +} diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index 9f7e0b4646..6605426f4f 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -6,7 +6,7 @@ # # Return if requirements are not found. -if [[ "$OSTYPE" != (darwin|linux)* ]]; then +if ! is-darwin || ! is-linux; then return 1 fi diff --git a/modules/macports/init.zsh b/modules/macports/init.zsh index d55744a875..943ff5bad6 100644 --- a/modules/macports/init.zsh +++ b/modules/macports/init.zsh @@ -7,7 +7,7 @@ # # Return if requirements are not found. -if [[ "$OSTYPE" != darwin* ]]; then +if ! is-darwin; then return 1 fi diff --git a/modules/osx/init.zsh b/modules/osx/init.zsh index f7871ca718..2b74d3ad11 100644 --- a/modules/osx/init.zsh +++ b/modules/osx/init.zsh @@ -6,7 +6,7 @@ # # Return if requirements are not found. -if [[ "$OSTYPE" != darwin* ]]; then +if ! is-darwin; then return 1 fi diff --git a/modules/perl/init.zsh b/modules/perl/init.zsh index b7a794797a..50e9b64ff2 100644 --- a/modules/perl/init.zsh +++ b/modules/perl/init.zsh @@ -37,7 +37,7 @@ fi # Local Module Installation # -if [[ "$OSTYPE" == darwin* ]]; then +if is-darwin; then # Perl is slow; cache its output. cache_file="${TMPDIR:-/tmp}/prezto-perl-cache.$UID.zsh" perl_path="$HOME/Library/Perl/5.12" diff --git a/modules/python/init.zsh b/modules/python/init.zsh index e5967f7aa8..a7e8b6e8af 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -22,7 +22,7 @@ elif (( $+commands[pyenv] )); then else if [[ -n "$PYTHONUSERBASE" ]]; then path=($PYTHONUSERBASE/bin $path) - elif [[ "$OSTYPE" == darwin* ]]; then + elif is-darwin; then path=($HOME/Library/Python/*/bin(N) $path) else # This is subject to change. diff --git a/modules/rsync/init.zsh b/modules/rsync/init.zsh index b3010ede32..f2eb89132f 100644 --- a/modules/rsync/init.zsh +++ b/modules/rsync/init.zsh @@ -23,7 +23,7 @@ fi # macOS and HFS+ Enhancements # https://bombich.com/kb/ccc5/credits -if [[ "$OSTYPE" == darwin* ]] && grep -q 'file-flags' <(rsync --help 2>&1); then +if is-darwin && grep -q 'file-flags' <(rsync --help 2>&1); then _rsync_cmd="${_rsync_cmd} --crtimes --fileflags --protect-decmpfs --force-change" fi diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index a2e5c2bdfe..caa0ec8d41 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -134,9 +134,9 @@ if zstyle -t ':prezto:module:utility:grep' color; then fi # macOS Everywhere -if [[ "$OSTYPE" == darwin* ]]; then +if is-darwin; then alias o='open' -elif [[ "$OSTYPE" == cygwin* ]]; then +elif is-cygwin; then alias o='cygstart' alias pbcopy='tee > /dev/clipboard' alias pbpaste='cat /dev/clipboard' @@ -166,7 +166,7 @@ fi alias df='df -kh' alias du='du -kh' -if [[ "$OSTYPE" == (darwin*|*bsd*) ]]; then +if is-darwin || is-bsd; then alias topc='top -o cpu' alias topm='top -o vsize' else From f479f37ead5476c1c5029ed7476375cb7eed562f Mon Sep 17 00:00:00 2001 From: romkatv Date: Sun, 22 Mar 2020 17:31:35 +0100 Subject: [PATCH 307/322] prompt: update powerlevel10k submodule to v1.5.0 Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.5.0 --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index d53355cd30..6a0e7523b2 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit d53355cd30acf8888bc1cf5caccea52f486c5584 +Subproject commit 6a0e7523b232d02854008405a3645031c848922b From d5bef142d44138e18865199df0e4e81aa8bdd792 Mon Sep 17 00:00:00 2001 From: Charith Amarasinghe <995136+char8@users.noreply.github.com> Date: Sun, 29 Mar 2020 20:49:35 +0100 Subject: [PATCH 308/322] Fix missing dependency on helper module for helpers added in #1793 (#1811) PR #1793 introduced helper functions for OS detection in some modules. These helpers require a module dependency on the 'helper' module. --- modules/haskell/init.zsh | 3 +++ modules/macports/init.zsh | 3 +++ modules/osx/init.zsh | 3 +++ modules/perl/init.zsh | 3 +++ modules/python/init.zsh | 3 +++ modules/rsync/init.zsh | 3 +++ 6 files changed, 18 insertions(+) diff --git a/modules/haskell/init.zsh b/modules/haskell/init.zsh index 7863528a72..cb76864122 100644 --- a/modules/haskell/init.zsh +++ b/modules/haskell/init.zsh @@ -10,6 +10,9 @@ if (( ! $+commands[ghc] )); then return 1 fi +# Load dependencies. +pmodload 'helper' + # Prepend Cabal per user directories to PATH. if is-darwin && [[ -d $HOME/Library/Haskell ]]; then path=($HOME/Library/Haskell/bin(/N) $path) diff --git a/modules/macports/init.zsh b/modules/macports/init.zsh index 943ff5bad6..7bf4ab2940 100644 --- a/modules/macports/init.zsh +++ b/modules/macports/init.zsh @@ -6,6 +6,9 @@ # Sorin Ionescu # +# Load dependencies. +pmodload 'helper' + # Return if requirements are not found. if ! is-darwin; then return 1 diff --git a/modules/osx/init.zsh b/modules/osx/init.zsh index 2b74d3ad11..62f219437b 100644 --- a/modules/osx/init.zsh +++ b/modules/osx/init.zsh @@ -5,6 +5,9 @@ # Sorin Ionescu # +# Load dependencies. +pmodload 'helper' + # Return if requirements are not found. if ! is-darwin; then return 1 diff --git a/modules/perl/init.zsh b/modules/perl/init.zsh index 50e9b64ff2..8f097f6cac 100644 --- a/modules/perl/init.zsh +++ b/modules/perl/init.zsh @@ -10,6 +10,9 @@ if (( ! $+commands[perl] )); then return 1 fi +# Load dependencies. +pmodload 'helper' + # # Load Perlbrew or plenv # diff --git a/modules/python/init.zsh b/modules/python/init.zsh index a7e8b6e8af..809ab406e9 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -7,6 +7,9 @@ # Patrick Bos # +# Load dependencies +pmodload 'helper' + # Load manually installed pyenv into the path if [[ -s "${PYENV_ROOT:=$HOME/.pyenv}/bin/pyenv" ]]; then path=("${PYENV_ROOT}/bin" $path) diff --git a/modules/rsync/init.zsh b/modules/rsync/init.zsh index f2eb89132f..79432c1251 100644 --- a/modules/rsync/init.zsh +++ b/modules/rsync/init.zsh @@ -10,6 +10,9 @@ if (( ! $+commands[rsync] )); then return 1 fi +# Load dependencies. +pmodload 'helper' + # # Aliases # From 5b03d7fa32cae51cee7903d3338f87c2d7d89657 Mon Sep 17 00:00:00 2001 From: Ackerley Tng Date: Mon, 30 Mar 2020 03:51:11 +0800 Subject: [PATCH 309/322] prompt: fix usage of zsh-async in sorin prompt (#1810) --- modules/prompt/functions/prompt_sorin_setup | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 41ac7d0175..a7d341ee8d 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -54,6 +54,13 @@ function prompt_sorin_async_callback { zle && zle reset-prompt fi ;; + "[async]") + # Code is 1 for corrupted worker output and 2 for dead worker. + if [[ $2 -eq 2 ]]; then + # Our worker died unexpectedly. + typeset -g prompt_prezto_async_init=0 + fi + ;; esac } From 95ff0360aeef951111c5ca6a80939e9329ddb434 Mon Sep 17 00:00:00 2001 From: Srijan R Shetty Date: Mon, 6 Apr 2020 15:25:01 +0530 Subject: [PATCH 310/322] fix: regression in homebrew module (#1816) --- modules/homebrew/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index 6605426f4f..fb05042509 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -6,7 +6,7 @@ # # Return if requirements are not found. -if ! is-darwin || ! is-linux; then +if ! is-darwin && ! is-linux; then return 1 fi From de7b3b7fdc99f8a67320dc64085dea44914969c7 Mon Sep 17 00:00:00 2001 From: Vladimir Bauer Date: Thu, 9 Apr 2020 01:15:23 +0500 Subject: [PATCH 311/322] Use shallow clone for powerlevel9k and powerlevel10k submodules (#1819) --- .gitmodules | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitmodules b/.gitmodules index fcc482621e..547effa3e7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,6 +28,8 @@ [submodule "modules/prompt/external/powerlevel9k"] path = modules/prompt/external/powerlevel9k url = https://github.com/bhilburn/powerlevel9k.git + shallow = true [submodule "modules/prompt/external/powerlevel10k"] path = modules/prompt/external/powerlevel10k url = https://github.com/romkatv/powerlevel10k.git + shallow = true From 342385618cad9d4ecbce74cc492f60a22b7c5fa3 Mon Sep 17 00:00:00 2001 From: Zac Bergquist Date: Wed, 22 Apr 2020 17:43:57 -0600 Subject: [PATCH 312/322] homebrew: load helper dependency Updates #1815 --- modules/homebrew/init.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index fb05042509..bfa667c0bc 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -5,6 +5,9 @@ # Sorin Ionescu # +# Load dependencies. +pmodload 'helper' + # Return if requirements are not found. if ! is-darwin && ! is-linux; then return 1 From 530ea10126119e28b457a96e6c7325e6111c92fd Mon Sep 17 00:00:00 2001 From: romkatv Date: Mon, 27 Apr 2020 11:36:54 +0200 Subject: [PATCH 313/322] prompt: update powerlevel10k submodule to v1.7.0 Release notes: - https://github.com/romkatv/powerlevel10k/releases/tag/v1.6.0 - https://github.com/romkatv/powerlevel10k/releases/tag/v1.6.1 - https://github.com/romkatv/powerlevel10k/releases/tag/v1.7.0 --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 6a0e7523b2..7c4b0f36c0 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 6a0e7523b232d02854008405a3645031c848922b +Subproject commit 7c4b0f36c0b5d3dc1049115ecca192463c19278d From 13c61bae30c3a8cf610623c094f2aa0a95fbf035 Mon Sep 17 00:00:00 2001 From: Amyn Date: Sat, 2 May 2020 19:21:27 +0100 Subject: [PATCH 314/322] Do not source history-substring-search if already loaded (#1830) --- modules/history-substring-search/init.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/history-substring-search/init.zsh b/modules/history-substring-search/init.zsh index d3ee3a1131..0de78918dc 100644 --- a/modules/history-substring-search/init.zsh +++ b/modules/history-substring-search/init.zsh @@ -10,7 +10,9 @@ pmodload 'editor' # Source module files. -source "${0:h}/external/zsh-history-substring-search.zsh" || return 1 +if (( ! $+functions[history-substring-search-up] )); then + source "${0:h}/external/zsh-history-substring-search.zsh" || return 1 +fi # # Search From 649c0e4561dc2acb599a464a750bfad426173aff Mon Sep 17 00:00:00 2001 From: Diego Rabatone Oliveira Date: Thu, 14 May 2020 15:19:03 -0300 Subject: [PATCH 315/322] [git] Add git pull autostash alias Adds the gfma and gfra aliases with the `--autostash` flag. --- modules/git/alias.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 89ba558733..3076708996 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -97,7 +97,9 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then alias gfc='git clone' alias gfcr='git clone --recurse-submodules' alias gfm='git pull' + alias gfma='git pull --autostash' alias gfr='git pull --rebase' + alias gfra='git pull --rebase --autostash' # Flow (F) alias gFi='git flow init' From 793f239a5e38ef2c4b76a4955bb734520303e8c4 Mon Sep 17 00:00:00 2001 From: romkatv Date: Wed, 20 May 2020 12:16:06 +0200 Subject: [PATCH 316/322] prompt: update powerlevel10k submodule to v1.10.0 Release notes: - https://github.com/romkatv/powerlevel10k/releases/tag/v1.8.0 - https://github.com/romkatv/powerlevel10k/releases/tag/v1.8.1 - https://github.com/romkatv/powerlevel10k/releases/tag/v1.8.2 - https://github.com/romkatv/powerlevel10k/releases/tag/v1.9.0 - https://github.com/romkatv/powerlevel10k/releases/tag/v1.9.1 - https://github.com/romkatv/powerlevel10k/releases/tag/v1.10.0 --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 7c4b0f36c0..c713ded9e7 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 7c4b0f36c0b5d3dc1049115ecca192463c19278d +Subproject commit c713ded9e76032f90014bc6829165d0dd69d28b3 From b8f5b31573968f03a91a3f197d8759333901f159 Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Sun, 31 May 2020 20:07:49 +0200 Subject: [PATCH 317/322] prompt: update powerlevel10k submodule to v1.11.0 Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.11.0 --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index c713ded9e7..801bfbb294 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit c713ded9e76032f90014bc6829165d0dd69d28b3 +Subproject commit 801bfbb2946b10527e75e77838a3657d78cb92e5 From ff91c8d410df3e6141248474389051c7ddcaf80a Mon Sep 17 00:00:00 2001 From: Texas Toland Date: Fri, 5 Jun 2020 05:53:44 +0900 Subject: [PATCH 318/322] Make .zcomp* location configurable (#1842) --- modules/command-not-found/init.zsh | 3 ++- modules/completion/init.zsh | 15 +++++++++------ modules/fasd/init.zsh | 3 ++- modules/gpg/init.zsh | 3 ++- modules/node/init.zsh | 3 ++- modules/pacman/functions/pacman-list-disowned | 4 ++-- modules/perl/init.zsh | 3 ++- modules/python/init.zsh | 3 ++- modules/ssh/init.zsh | 6 ++++-- runcoms/zlogin | 2 +- 10 files changed, 28 insertions(+), 17 deletions(-) diff --git a/modules/command-not-found/init.zsh b/modules/command-not-found/init.zsh index f3d7ea6287..35884ce6e0 100644 --- a/modules/command-not-found/init.zsh +++ b/modules/command-not-found/init.zsh @@ -21,11 +21,12 @@ elif (( $+commands[brew] )); then "$(brew --repository 2> /dev/null)"/Library/Taps/*/*/cmd/brew-command-not-found-init(|.rb)(.N) ) if (( $#cnf_command )); then - cache_file="${TMPDIR:-/tmp}/prezto-brew-command-not-found-cache.$UID.zsh" + cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/brew-command-not-found-cache.zsh" if [[ "${${(@o)cnf_command}[1]}" -nt "$cache_file" \ || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ || ! -s "$cache_file" ]]; then + mkdir -p "$cache_file:h" # brew command-not-found-init is slow; cache its output. brew command-not-found-init >! "$cache_file" 2> /dev/null fi diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index 07acf13bf3..4cf46fa95d 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -32,13 +32,16 @@ unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor. # 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 +_comp_path="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump" +# #q expands globs in conditional expressions +if [[ $_comp_path(#qNmh-20) ]]; then + # -C (skip function check) implies -i (skip security check). + compinit -C -d "$_comp_path" else - compinit -i + mkdir -p "$_comp_path:h" + compinit -i -d "$_comp_path" fi -unset _comp_files +unset _comp_path # # Styles @@ -46,7 +49,7 @@ unset _comp_files # Use caching to make completion for commands such as dpkg and apt usable. zstyle ':completion::complete:*' use-cache on -zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache" +zstyle ':completion::complete:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompcache" # Case-insensitive (all), partial-word, and then substring completion. if zstyle -t ':prezto:module:completion:*' case-sensitive; then diff --git a/modules/fasd/init.zsh b/modules/fasd/init.zsh index 37babd8e3e..f948789ec8 100644 --- a/modules/fasd/init.zsh +++ b/modules/fasd/init.zsh @@ -19,7 +19,7 @@ fi # Initialization # -cache_file="${TMPDIR:-/tmp}/prezto-fasd-cache.$UID.zsh" +cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/fasd-cache.zsh" if [[ "${commands[fasd]}" -nt "$cache_file" \ || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ || ! -s "$cache_file" ]]; then @@ -31,6 +31,7 @@ if [[ "${commands[fasd]}" -nt "$cache_file" \ init_args+=(zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install) fi + mkdir -p "$cache_file:h" # Cache init code. fasd --init "$init_args[@]" >! "$cache_file" 2> /dev/null fi diff --git a/modules/gpg/init.zsh b/modules/gpg/init.zsh index 4498b7b066..a3b37ba3bc 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="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/gpg-agent.env" # Load environment variables from previous run source "$_gpg_agent_env" 2> /dev/null @@ -21,6 +21,7 @@ source "$_gpg_agent_env" 2> /dev/null if [[ -z "$GPG_AGENT_INFO" && ! -S "${GNUPGHOME:-$HOME/.gnupg}/S.gpg-agent" ]]; then # Start gpg-agent if not started. if ! ps -U "$LOGNAME" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then + mkdir -p "$_gpg_agent_env:h" eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")" fi fi diff --git a/modules/node/init.zsh b/modules/node/init.zsh index 1ea66f9c6c..6fb68f307d 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -39,12 +39,13 @@ typeset -A compl_commands=( for compl_command in "${(k)compl_commands[@]}"; do if (( $+commands[$compl_command] )); then - cache_file="${TMPDIR:-/tmp}/prezto-$compl_command-cache.$UID.zsh" + cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/$compl_command-cache.zsh" # Completion commands are slow; cache their output if old or missing. if [[ "$commands[$compl_command]" -nt "$cache_file" \ || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ || ! -s "$cache_file" ]]; then + mkdir -p "$cache_file:h" command ${=compl_commands[$compl_command]} >! "$cache_file" 2> /dev/null fi diff --git a/modules/pacman/functions/pacman-list-disowned b/modules/pacman/functions/pacman-list-disowned index 9c8f56a0e9..c5e84fcf67 100644 --- a/modules/pacman/functions/pacman-list-disowned +++ b/modules/pacman/functions/pacman-list-disowned @@ -8,11 +8,11 @@ # function pacman-list-disowned { -local tmp="${TMPDIR:-/tmp}/pacman-disowned-$UID-$$" +local tmp="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/pacman-disowned-$$" local db="$tmp/db" local fs="$tmp/fs" -mkdir "$tmp" +mkdir -p "$tmp" trap 'rm -rf "$tmp"' EXIT pacman --quiet --query --list | sort --unique > "$db" diff --git a/modules/perl/init.zsh b/modules/perl/init.zsh index 8f097f6cac..1b5e665761 100644 --- a/modules/perl/init.zsh +++ b/modules/perl/init.zsh @@ -42,11 +42,12 @@ fi if is-darwin; then # Perl is slow; cache its output. - cache_file="${TMPDIR:-/tmp}/prezto-perl-cache.$UID.zsh" + cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/perl-cache.zsh" perl_path="$HOME/Library/Perl/5.12" if [[ -f "$perl_path/lib/perl5/local/lib.pm" ]]; then if [[ "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" || ! -s "$cache_file" ]]; then + mkdir -p "$cache_file:h" perl -I$perl_path/lib/perl5 -Mlocal::lib=$perl_path >! "$cache_file" fi diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 809ab406e9..8193fd34ac 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -148,7 +148,7 @@ fi # Load PIP completion. if (( $#commands[(i)pip(|[23])] )); then - cache_file="${TMPDIR:-/tmp}/prezto-pip-cache.$UID.zsh" + cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/pip-cache.zsh" # Detect and use one available from among 'pip', 'pip2', 'pip3' variants pip_command="$commands[(i)pip(|[23])]" @@ -156,6 +156,7 @@ if (( $#commands[(i)pip(|[23])] )); then if [[ "$pip_command" -nt "$cache_file" \ || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ || ! -s "$cache_file" ]]; then + mkdir -p "$cache_file:h" # pip is slow; cache its output. And also support 'pip2', 'pip3' variants $pip_command completion --zsh \ | sed -e "s/\(compctl -K [-_[:alnum:]]* pip\).*/\1{,2,3}{,.{0..9}}/" \ diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index 08edce5772..b9567d4635 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -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:-${XDG_CACHE_HOME:-$HOME/.cache}/prezto/ssh-agent.env}" # Set the path to the persistent authentication socket. -_ssh_agent_sock="${TMPDIR:-/tmp}/ssh-agent.sock.$UID" +_ssh_agent_sock="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/ssh-agent.sock" # Start ssh-agent if not started. if [[ ! -S "$SSH_AUTH_SOCK" ]]; then @@ -26,12 +26,14 @@ if [[ ! -S "$SSH_AUTH_SOCK" ]]; then # Start ssh-agent if not started. if ! ps -U "$LOGNAME" -o pid,ucomm | grep -q -- "${SSH_AGENT_PID:--1} ssh-agent"; then + mkdir -p "$_ssh_agent_env:h" eval "$(ssh-agent | sed '/^echo /d' | tee "$_ssh_agent_env")" fi fi # Create a persistent SSH authentication socket. if [[ -S "$SSH_AUTH_SOCK" && "$SSH_AUTH_SOCK" != "$_ssh_agent_sock" ]]; then + mkdir -p "$_ssh_agent_sock:h" ln -sf "$SSH_AUTH_SOCK" "$_ssh_agent_sock" export SSH_AUTH_SOCK="$_ssh_agent_sock" fi diff --git a/runcoms/zlogin b/runcoms/zlogin index 9ea97929c2..ac4d3422a2 100644 --- a/runcoms/zlogin +++ b/runcoms/zlogin @@ -8,7 +8,7 @@ # Execute code that does not affect the current session in the background. { # Compile the completion dump to increase startup speed. - zcompdump="${ZDOTDIR:-$HOME}/.zcompdump" + zcompdump="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump" if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then zcompile "$zcompdump" fi From 20a78c04e5e07d61f6b96443ebbb8cb75fe2464d Mon Sep 17 00:00:00 2001 From: hidekuro Date: Tue, 30 Jun 2020 02:23:08 +0900 Subject: [PATCH 319/322] Remove `--all` from git alias `glg` (#1853) --- modules/git/alias.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 3076708996..95b2a0d475 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -190,7 +190,7 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then 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 glg='git log --topo-order --graph --pretty=format:"${_git_log_oneline_format}"' alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"' alias glc='git shortlog --summary --numbered' alias glS='git log --show-signature' From 2d3763380c180ee961a6486bff62ac76a727e7e3 Mon Sep 17 00:00:00 2001 From: Joost Cassee Date: Mon, 29 Jun 2020 19:25:15 +0200 Subject: [PATCH 320/322] Ask pyenv whether pip exists if installed (#1848) Pyenv will install shims for commands that exist in any interpreter, even if it is not the current one. This means that a command may technically exist, but when executed will tell the user to try a different interpreter. The original check for pip in the Python module can fail for this reason, in particular on Ubuntu 20.04. This change checks with pyenv whether pip really exists in the current interpreter to work around this problem and fixes a bug in pip command detection. --- modules/python/init.zsh | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index 8193fd34ac..33248bae74 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -147,18 +147,25 @@ if (( $+VIRTUALENVWRAPPER_VIRTUALENV || $+commands[virtualenv] )) && \ fi # Load PIP completion. -if (( $#commands[(i)pip(|[23])] )); then - cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/pip-cache.zsh" - - # Detect and use one available from among 'pip', 'pip2', 'pip3' variants +# Detect and use one available from among 'pip', 'pip2', 'pip3' variants +if [[ -n "$PYENV_ROOT" ]]; then + for pip in pip{,2,3}; do + pip_command="$(pyenv which "$pip" 2>/dev/null)" + [[ -n "$pip_command" ]] && break + done + unset pip +else pip_command="$commands[(i)pip(|[23])]" +fi +if [[ -n "$pip_command" ]]; then + cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/pip-cache.zsh" if [[ "$pip_command" -nt "$cache_file" \ || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ || ! -s "$cache_file" ]]; then mkdir -p "$cache_file:h" # pip is slow; cache its output. And also support 'pip2', 'pip3' variants - $pip_command completion --zsh \ + "$pip_command" completion --zsh \ | sed -e "s/\(compctl -K [-_[:alnum:]]* pip\).*/\1{,2,3}{,.{0..9}}/" \ >! "$cache_file" \ 2> /dev/null @@ -166,8 +173,9 @@ if (( $#commands[(i)pip(|[23])] )); then source "$cache_file" - unset cache_file pip_command + unset cache_file fi +unset pip_command # Load conda into the shell session, if requested zstyle -T ':prezto:module:python' conda-init From a132c1007a8aa602218383c7a9952f9c6b9c2e0d Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Tue, 30 Jun 2020 01:26:36 +0800 Subject: [PATCH 321/322] git-info: use tab as separator for splitting ahead_and_behind (#902) The current implementation is not tamper-proof against a modified IFS. See discussion in https://github.com/sorin-ionescu/prezto/pull/902 for details. --- modules/git/functions/git-info | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/git/functions/git-info b/modules/git/functions/git-info index fe8ca2acd9..20c284b08c 100644 --- a/modules/git/functions/git-info +++ b/modules/git/functions/git-info @@ -275,7 +275,7 @@ function git-info { # Format ahead. if [[ -n "$ahead_format" ]]; then - ahead="$ahead_and_behind[(w)1]" + ahead="$ahead_and_behind[(pws:\t:)1]" if (( ahead > 0 )); then zformat -f ahead_formatted "$ahead_format" "A:$ahead" fi @@ -283,7 +283,7 @@ function git-info { # Format behind. if [[ -n "$behind_format" ]]; then - behind="$ahead_and_behind[(w)2]" + behind="$ahead_and_behind[(pws:\t:)2]" if (( behind > 0 )); then zformat -f behind_formatted "$behind_format" "B:$behind" fi From c21295b27f5f3e549a0fc64c53b15ebdf7becbe1 Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Mon, 6 Jul 2020 17:41:42 +0200 Subject: [PATCH 322/322] prompt: update powerlevel10k submodule to v1.12.0 Release notes: https://github.com/romkatv/powerlevel10k/releases/tag/v1.12.0 --- modules/prompt/external/powerlevel10k | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/prompt/external/powerlevel10k b/modules/prompt/external/powerlevel10k index 801bfbb294..0c341b6702 160000 --- a/modules/prompt/external/powerlevel10k +++ b/modules/prompt/external/powerlevel10k @@ -1 +1 @@ -Subproject commit 801bfbb2946b10527e75e77838a3657d78cb92e5 +Subproject commit 0c341b67024642b8f1741920d1ae5d760bc488b0