From 4016f0c7c1a339cefbec016f968938a086a97ec4 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Wed, 1 Apr 2015 16:19:52 -0400 Subject: [PATCH 001/182] Update external completions --- modules/completion/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/external b/modules/completion/external index ed964013e2..68c949470e 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit ed964013e290677c866a055e1c1ece6f33f64151 +Subproject commit 68c949470eaa87c5d67080d32fb2b69c8b837eb4 From ccca57f2ac65b4c20f6812af9a290d2e5b7f395b Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Wed, 1 Apr 2015 16:20:17 -0400 Subject: [PATCH 002/182] Update external history-substring-search --- 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 9f9fc7d550..d0381d859c 160000 --- a/modules/history-substring-search/external +++ b/modules/history-substring-search/external @@ -1 +1 @@ -Subproject commit 9f9fc7d550cc547737f4c686591cbbf07e7470b0 +Subproject commit d0381d859c0eb8d52a6211281e622e89153ef812 From ac8bc74ef0e5524308f0b3af1bc42784bddd4a06 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Wed, 1 Apr 2015 16:21:07 -0400 Subject: [PATCH 003/182] Update pure theme --- 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 e5a55c5469..ef1329909a 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit e5a55c5469b82da5bd9a9e42b144cef7cec8915b +Subproject commit ef1329909a3c72bb76765ccc519214ce60cedddb From c98da90662a11e7ac1e046ccd6a99edd21e68312 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Tue, 7 Apr 2015 19:24:44 -0400 Subject: [PATCH 004/182] Update external history-substring-search --- 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 d0381d859c..6d7bc718ae 160000 --- a/modules/history-substring-search/external +++ b/modules/history-substring-search/external @@ -1 +1 @@ -Subproject commit d0381d859c0eb8d52a6211281e622e89153ef812 +Subproject commit 6d7bc718aee81b9afa9e146b5567be014b3ff8f0 From e9f86bf4db23598fc0f9e5980e226a89c5f4ca6f Mon Sep 17 00:00:00 2001 From: Alex Wolkov Date: Fri, 1 May 2015 16:35:59 +0300 Subject: [PATCH 005/182] Update the link to iTerm2 and tmux integration Signed-off-by: Sorin Ionescu --- 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 b2f6bc8db2..11c8a08a0d 100644 --- a/modules/tmux/README.md +++ b/modules/tmux/README.md @@ -74,4 +74,4 @@ Authors [4]: https://github.com/mxcl/homebrew [5]: https://github.com/sorin-ionescu/prezto/issues [6]: http://iterm2.com -[7]: https://code.google.com/p/iterm2/wiki/TmuxIntegration +[7]: https://gitlab.com/gnachman/iterm2/wikis/TmuxIntegration From 20766138cbdff96adfada53ae468bba5eeff70d0 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 3 May 2015 13:39:09 -0400 Subject: [PATCH 006/182] Update external history-substring-search --- 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 6d7bc718ae..c4a83561a1 160000 --- a/modules/history-substring-search/external +++ b/modules/history-substring-search/external @@ -1 +1 @@ -Subproject commit 6d7bc718aee81b9afa9e146b5567be014b3ff8f0 +Subproject commit c4a83561a12b898ff7145856d0e6ae50757e28ba From 08676a273eba1781ddcb63c4f89cfff9bd62eac4 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 3 May 2015 13:39:33 -0400 Subject: [PATCH 007/182] Update pure theme --- 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 ef1329909a..5ade8aeb8a 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit ef1329909a3c72bb76765ccc519214ce60cedddb +Subproject commit 5ade8aeb8a7d45a59841278a9a86090dd880be63 From ca03fd670aaba43f92854500a1a89079eca68f36 Mon Sep 17 00:00:00 2001 From: James Conroy-Finn Date: Sun, 1 Mar 2015 14:02:05 +0000 Subject: [PATCH 008/182] Skip setting terminal title inside Emacs --- modules/terminal/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/terminal/init.zsh b/modules/terminal/init.zsh index 01140d8c71..b0be502303 100644 --- a/modules/terminal/init.zsh +++ b/modules/terminal/init.zsh @@ -6,7 +6,7 @@ # # Return if requirements are not found. -if [[ "$TERM" == (dumb|linux|*bsd*) ]]; then +if [[ "$TERM" == (dumb|linux|*bsd*|eterm*) ]]; then return 1 fi From 6a812ed36bad9032df3645277793f5827dd64088 Mon Sep 17 00:00:00 2001 From: Scott Stevenson Date: Tue, 5 May 2015 21:25:26 +0100 Subject: [PATCH 009/182] Correct typos in completion module --- modules/completion/init.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index 9b5132c7a4..023a90e7d6 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -24,7 +24,7 @@ autoload -Uz compinit && compinit -i setopt COMPLETE_IN_WORD # Complete from both ends of a word. setopt ALWAYS_TO_END # Move cursor to the end of a completed word. setopt PATH_DIRS # Perform path search even on command names with slashes. -setopt AUTO_MENU # Show completion menu on a succesive tab press. +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. unsetopt MENU_COMPLETE # Do not autoselect the first completion entry. @@ -34,7 +34,7 @@ unsetopt FLOW_CONTROL # Disable start/stop characters in shell editor. # Styles # -# Use caching to make completion for cammands such as dpkg and apt usable. +# 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" From cd5067668c2f4e342db7c52a68c213366cbb0199 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Tue, 19 May 2015 18:24:04 -0400 Subject: [PATCH 010/182] Substitute command when alias is undefined --- modules/utility/init.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 30fee32a5d..fd7aaf6e53 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -71,9 +71,9 @@ if is-callable 'dircolors'; then eval "$(dircolors --sh)" fi - alias ls="$aliases[ls] --color=auto" + alias ls="${aliases[ls]:-ls} --color=auto" else - alias ls="$aliases[ls] -F" + alias ls="${aliases[ls]:-ls} -F" fi else # BSD Core Utilities @@ -84,9 +84,9 @@ else # 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:' - alias ls='ls -G' + alias ls="${aliases[ls]:-ls} -G" else - alias ls='ls -F' + alias ls="${aliases[ls]:-ls} -F" fi fi @@ -107,7 +107,7 @@ if zstyle -t ':prezto:module:utility:grep' color; then export GREP_COLOR='37;45' # BSD. export GREP_COLORS="mt=$GREP_COLOR" # GNU. - alias grep="$aliases[grep] --color=auto" + alias grep="${aliases[grep]:-grep} --color=auto" fi # Mac OS X Everywhere From a1dea6ae43f5a1f5e5dfabac49766bda67983ea0 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 22 Feb 2015 19:51:09 -0500 Subject: [PATCH 011/182] Get Git status asynchronously --- modules/prompt/functions/prompt_sorin_setup | 50 ++++++++++++++++++--- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 508dc80d2f..e27f7384cb 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -22,6 +22,33 @@ function prompt_sorin_pwd { fi } +function prompt_sorin_git_info { + # Append Git status. + if [[ -s "$_prompt_sorin_precmd_async_data" ]]; then + alias typeset='typeset -g' + source "$_prompt_sorin_precmd_async_data" + RPROMPT+='${git_info:+${(e)git_info[status]}}' + unalias typeset + fi + + # Reset PID. + _prompt_sorin_precmd_async_pid=0 + + # Redisplay prompt. + zle && zle reset-prompt +} + +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" + fi + + # Signal completion to parent process. + kill -USR1 $$ +} + function prompt_sorin_precmd { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS @@ -29,16 +56,26 @@ function prompt_sorin_precmd { # Format PWD. prompt_sorin_pwd - # Get Git repository information. - if (( $+functions[git-info] )); then - git-info + # Define prompts. + RPROMPT='${editor_info[overwrite]}%(?:: %F{red}⏎%f)${VIM:+" %B%F{green}V%f%b"}${INSIDE_EMACS:+" %B%F{green}E%f%b"}%f' + + # Kill the old process of slow commands if it is still running. + if (( _prompt_sorin_precmd_async_pid > 0 )); then + kill -TERM "$_prompt_sorin_precmd_async_pid" &>/dev/null fi + + # Compute slow commands in the background. + trap prompt_sorin_git_info USR1 + prompt_sorin_precmd_async &! + _prompt_sorin_precmd_async_pid=$! } function prompt_sorin_setup { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS prompt_opts=(cr percent subst) + _prompt_sorin_precmd_async_pid=0 + _prompt_sorin_precmd_async_data="${TMPPREFIX}-prompt_sorin_data" # Load required functions. autoload -Uz add-zsh-hook @@ -68,12 +105,11 @@ function prompt_sorin_setup { zstyle ':prezto:module:git:info:unmerged' format ' %%B%F{yellow}═%f%%b' zstyle ':prezto:module:git:info:untracked' format ' %%B%F{white}◼%f%%b' zstyle ':prezto:module:git:info:keys' format \ - 'prompt' ' %F{blue}git%f$(coalesce "%b" "%p" "%c")%s' \ - 'rprompt' '%A%B%S%a%d%m%r%U%u' + 'status' ' %F{blue}git%f$(coalesce "%b" "%p" "%c")%s%A%B%S%a%d%m%r%U%u' # Define prompts. - PROMPT='${SSH_TTY:+"%F{red}%n%f@%F{yellow}%m%f "}%F{cyan}${_prompt_sorin_pwd}%f${git_info:+${(e)git_info[prompt]}}%(!. %B%F{red}#%f%b.)${editor_info[keymap]} ' - RPROMPT='${editor_info[overwrite]}%(?:: %F{red}⏎%f)${VIM:+" %B%F{green}V%f%b"}${INSIDE_EMACS:+" %B%F{green}E%f%b"}${git_info[rprompt]}' + PROMPT='${SSH_TTY:+"%F{red}%n%f@%F{yellow}%m%f "}%F{cyan}${_prompt_sorin_pwd}%(!. %B%F{red}#%f%b.)${editor_info[keymap]} ' + RPROMPT='' SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? ' } From f6a2c734233a768fdf519c872b3524dd026b75cb Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Tue, 19 May 2015 17:12:17 -0400 Subject: [PATCH 012/182] Remove 'git:' prefix --- 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 e27f7384cb..5e5b73c5aa 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -105,7 +105,7 @@ function prompt_sorin_setup { zstyle ':prezto:module:git:info:unmerged' format ' %%B%F{yellow}═%f%%b' zstyle ':prezto:module:git:info:untracked' format ' %%B%F{white}◼%f%%b' zstyle ':prezto:module:git:info:keys' format \ - 'status' ' %F{blue}git%f$(coalesce "%b" "%p" "%c")%s%A%B%S%a%d%m%r%U%u' + 'status' '$(coalesce "%b" "%p" "%c")%s%A%B%S%a%d%m%r%U%u' # Define prompts. PROMPT='${SSH_TTY:+"%F{red}%n%f@%F{yellow}%m%f "}%F{cyan}${_prompt_sorin_pwd}%(!. %B%F{red}#%f%b.)${editor_info[keymap]} ' From 999f0d1a74c1dbe69bc3973d272064f3d43be029 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Tue, 19 May 2015 17:14:36 -0400 Subject: [PATCH 013/182] Use numerical colors --- modules/prompt/functions/prompt_sorin_setup | 61 ++++++++++++++------- 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 5e5b73c5aa..75fc72b44d 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -8,6 +8,27 @@ # http://i.imgur.com/AzjmpwM.png # +# +# 16 TERMINAL COLORS +# -- --------------- +# 0 black +# 1 red +# 2 green +# 3 yellow +# 4 blue +# 5 magenta +# 6 cyan +# 7 white +# 8 bright black +# 9 bright red +# 10 bright green +# 11 bright yellow +# 12 bright blue +# 13 bright magenta +# 14 bright cyan +# 15 bright white +# + # Load dependencies. pmodload 'helper' @@ -57,7 +78,7 @@ function prompt_sorin_precmd { prompt_sorin_pwd # Define prompts. - RPROMPT='${editor_info[overwrite]}%(?:: %F{red}⏎%f)${VIM:+" %B%F{green}V%f%b"}${INSIDE_EMACS:+" %B%F{green}E%f%b"}%f' + RPROMPT='${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}${INSIDE_EMACS:+" %B%F{6}E%f%b"}%f' # Kill the old process of slow commands if it is still running. if (( _prompt_sorin_precmd_async_pid > 0 )); then @@ -84,33 +105,33 @@ function prompt_sorin_setup { add-zsh-hook precmd prompt_sorin_precmd # Set editor-info parameters. - zstyle ':prezto:module:editor:info:completing' format '%B%F{red}...%f%b' - zstyle ':prezto:module:editor:info:keymap:primary' format ' %B%F{red}❯%F{yellow}❯%F{green}❯%f%b' - zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format ' %F{red}♺%f' - zstyle ':prezto:module:editor:info:keymap:alternate' format ' %B%F{green}❮%F{yellow}❮%F{red}❮%f%b' + 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' + zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format ' %F{3}♺%f' + zstyle ':prezto:module:editor:info:keymap:alternate' format ' %B%F{2}❮%F{3}❮%F{1}❮%f%b' # Set git-info parameters. zstyle ':prezto:module:git:info' verbose 'yes' - zstyle ':prezto:module:git:info:action' format ':%%B%F{yellow}%s%f%%b' - zstyle ':prezto:module:git:info:added' format ' %%B%F{green}✚%f%%b' - zstyle ':prezto:module:git:info:ahead' format ' %%B%F{yellow}⬆%f%%b' - zstyle ':prezto:module:git:info:behind' format ' %%B%F{yellow}⬇%f%%b' - zstyle ':prezto:module:git:info:branch' format ':%F{green}%b%f' - zstyle ':prezto:module:git:info:commit' format ':%F{green}%.7c%f' - zstyle ':prezto:module:git:info:deleted' format ' %%B%F{red}✖%f%%b' - zstyle ':prezto:module:git:info:modified' format ' %%B%F{blue}✱%f%%b' - zstyle ':prezto:module:git:info:position' format ':%F{red}%p%f' - zstyle ':prezto:module:git:info:renamed' format ' %%B%F{magenta}➜%f%%b' - zstyle ':prezto:module:git:info:stashed' format ' %%B%F{cyan}✭%f%%b' - zstyle ':prezto:module:git:info:unmerged' format ' %%B%F{yellow}═%f%%b' - zstyle ':prezto:module:git:info:untracked' format ' %%B%F{white}◼%f%%b' + zstyle ':prezto:module:git:info:action' format '%F{7}:%f%%B%F{9}%s%f%%b' + zstyle ':prezto:module:git:info:added' format ' %%B%F{2}✚%f%%b' + zstyle ':prezto:module:git:info:ahead' format ' %%B%F{13}⬆%f%%b' + zstyle ':prezto:module:git:info:behind' format ' %%B%F{13}⬇%f%%b' + zstyle ':prezto:module:git:info:branch' format ' %%B%F{2}%b%f%%b' + zstyle ':prezto:module:git:info:commit' format ' %%B%F{3}%.7c%f%%b' + zstyle ':prezto:module:git:info:deleted' format ' %%B%F{1}✖%f%%b' + zstyle ':prezto:module:git:info:modified' format ' %%B%F{4}✱%f%%b' + zstyle ':prezto:module:git:info:position' format ' %%B%F{13}%p%f%%b' + zstyle ':prezto:module:git:info:renamed' format ' %%B%F{5}➜%f%%b' + zstyle ':prezto:module:git:info:stashed' format ' %%B%F{6}✭%f%%b' + 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' # Define prompts. - PROMPT='${SSH_TTY:+"%F{red}%n%f@%F{yellow}%m%f "}%F{cyan}${_prompt_sorin_pwd}%(!. %B%F{red}#%f%b.)${editor_info[keymap]} ' + 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='' - SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? ' + SPROMPT='zsh: correct %F{1}%R%f to %F{2}%r%f [nyae]? ' } prompt_sorin_setup "$@" From b46769149be5e19788e8985c3fe758c436e340fb Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Tue, 19 May 2015 17:19:21 -0400 Subject: [PATCH 014/182] Remove Emacs indicator The user always knows that he is inside Emacs making the indicator unnecessary. --- 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 75fc72b44d..3f66c7c41f 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -9,7 +9,7 @@ # # -# 16 TERMINAL COLORS +# 16 Terminal Colors # -- --------------- # 0 black # 1 red @@ -78,7 +78,7 @@ function prompt_sorin_precmd { prompt_sorin_pwd # Define prompts. - RPROMPT='${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}${INSIDE_EMACS:+" %B%F{6}E%f%b"}%f' + 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 From fe64f91f52bbadc3e627fe7910b28a6d5df064e8 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Tue, 19 May 2015 17:39:00 -0400 Subject: [PATCH 015/182] Update sorin screenshot --- README.md | 2 +- modules/prompt/functions/prompt_sorin_setup | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e54a6319ff..d6b40af0b1 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. [1]: http://www.zsh.org -[2]: http://i.imgur.com/AzjmpwM.png "sorin theme" +[2]: http://i.imgur.com/nrGV6pg.png "sorin theme" [3]: http://git-scm.com [4]: https://github.com [5]: http://gitimmersion.com diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index 3f66c7c41f..7a0dab7586 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -5,7 +5,7 @@ # Sorin Ionescu # # Screenshots: -# http://i.imgur.com/AzjmpwM.png +# http://i.imgur.com/nrGV6pg.png # # From f7ea78078f81d2d6fbe71d73274926a3f756a586 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Mon, 25 May 2015 21:58:43 -0400 Subject: [PATCH 016/182] Update pure theme --- 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 5ade8aeb8a..04212522f3 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit 5ade8aeb8a7d45a59841278a9a86090dd880be63 +Subproject commit 04212522f39f43998d001b4a94b05856f010a54b From 159418835fb7f6469b47567c7d197596cc75ef8b Mon Sep 17 00:00:00 2001 From: Quang-Linh LE Date: Wed, 10 Dec 2014 08:54:54 +0100 Subject: [PATCH 017/182] Add Linux as as requirement --- 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 101b6b9731..a5979cc9ce 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -6,7 +6,7 @@ # # Return if requirements are not found. -if [[ "$OSTYPE" != darwin* ]]; then +if [[ "$OSTYPE" != (darwin|linux)* ]]; then return 1 fi From 904c94469e98ba45910d4d7bd271b6d28c6951f9 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Tue, 26 May 2015 22:05:49 -0400 Subject: [PATCH 018/182] Consolidate brew update and upgrade aliases --- modules/homebrew/README.md | 3 +-- modules/homebrew/init.zsh | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/homebrew/README.md b/modules/homebrew/README.md index 69a4e87b9f..84b43865db 100644 --- a/modules/homebrew/README.md +++ b/modules/homebrew/README.md @@ -13,8 +13,7 @@ Aliases - `brewi` installs a formula. - `brewl` lists installed formulae. - `brews` searches for a formula. - - `brewU` upgrades Homebrew and outdated brews. - - `brewu` upgrades Homebrew. + - `brewu` updates Homebrew and formulae. - `brewx` uninstalls a formula. ### Homebrew Cask diff --git a/modules/homebrew/init.zsh b/modules/homebrew/init.zsh index a5979cc9ce..1ebe793d99 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -20,8 +20,7 @@ alias brewC='brew cleanup --force' alias brewi='brew install' alias brewl='brew list' alias brews='brew search' -alias brewu='brew upgrade' -alias brewU='brew update && brew upgrade' +alias brewu='brew update && brew upgrade --all' alias brewx='brew remove' # Homebrew Cask From b6efdc1ea49a3ef4b8b904aacde98ada7a0811e9 Mon Sep 17 00:00:00 2001 From: FireWave Date: Thu, 28 Mar 2013 16:58:10 -0400 Subject: [PATCH 019/182] Add DNF module Signed-off-by: Sorin Ionescu --- modules/README.md | 5 +++++ modules/dnf/README.md | 29 +++++++++++++++++++++++++++++ modules/dnf/init.zsh | 28 ++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 modules/dnf/README.md create mode 100644 modules/dnf/init.zsh diff --git a/modules/README.md b/modules/README.md index 4d247b2434..d0fcdd941a 100644 --- a/modules/README.md +++ b/modules/README.md @@ -26,6 +26,11 @@ Directory Sets directory options and defines directory aliases. +DNF +--- + +Defines dnf aliases. + Dpkg ---- diff --git a/modules/dnf/README.md b/modules/dnf/README.md new file mode 100644 index 0000000000..06439544d0 --- /dev/null +++ b/modules/dnf/README.md @@ -0,0 +1,29 @@ +DNF +=== + +Defines [dnf][1] aliases. + +Aliases +------- + + - `dnfc` removes package(s) and leaves. + - `dnfi` installs package(s). + - `dnfh` displays history. + - `dnfl` lists packages. + - `dnfL` lists installed packages. + - `dnfq` displays package information. + - `dnfr` removes package(s). + - `dnfs` searches for a package. + - `dnfu` updates packages. + - `dnfU` upgrates packages. + +Authors +------- + +*The authors of this module should be contacted via the [issue tracker][2].* + + - [Sorin Ionescu](https://github.com/sorin-ionescu) + +[1]: https://fedoraproject.org/wiki/Features/DNF +[2]: https://github.com/sorin-ionescu/prezto/issues + diff --git a/modules/dnf/init.zsh b/modules/dnf/init.zsh new file mode 100644 index 0000000000..7a4014236b --- /dev/null +++ b/modules/dnf/init.zsh @@ -0,0 +1,28 @@ +# +# Defines dnf aliases. +# +# Authors: +# FireWave +# Sorin Ionescu +# + +# Return if requirements are not found. +if (( ! $+commands[dnf] )); then + return 1 +fi + +# +# Aliases +# + +alias dnfc='sudo dnf clean all' # Cleans the cache. +alias dnfh='dnf history' # Displays history. +alias dnfi='sudo dnf install' # Installs package(s). +alias dnfl='dnf list' # Lists packages. +alias dnfL='dnf list installed' # Lists installed packages. +alias dnfq='dnf info' # Displays package information. +alias dnfr='sudo dnf remove' # Removes package(s). +alias dnfs='dnf search' # Searches for a package. +alias dnfu='sudo dnf update' # Updates packages. +alias dnfU='sudo dnf upgrade' # Upgrades packages. + From a275db55d6fdc8bf92a4722e95196bbfbf44cfae Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Mon, 25 May 2015 22:25:22 -0400 Subject: [PATCH 020/182] Fix MacPorts typo --- modules/README.md | 2 +- modules/macports/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/README.md b/modules/README.md index d0fcdd941a..2a49804ca2 100644 --- a/modules/README.md +++ b/modules/README.md @@ -97,7 +97,7 @@ Homebrew Defines Homebrew aliases. -Macports +MacPorts -------- Defines MacPorts aliases and adds MacPorts directories to path variables. diff --git a/modules/macports/README.md b/modules/macports/README.md index 97f67ea00b..70e4b8b942 100644 --- a/modules/macports/README.md +++ b/modules/macports/README.md @@ -1,4 +1,4 @@ -Macports +MacPorts ======== Defines MacPorts aliases and adds MacPorts directories to path variables. From 02c5f776fc3ebbc5eee6dc74e84be25542983e26 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Thu, 28 May 2015 20:24:58 -0400 Subject: [PATCH 021/182] [Fix #892] Symlink prompt pure async dependency --- modules/prompt/functions/async | 1 + 1 file changed, 1 insertion(+) create mode 120000 modules/prompt/functions/async diff --git a/modules/prompt/functions/async b/modules/prompt/functions/async new file mode 120000 index 0000000000..d4b591e1e9 --- /dev/null +++ b/modules/prompt/functions/async @@ -0,0 +1 @@ +../external/pure/async.zsh \ No newline at end of file From b761261b11af719007203926a769f2b5cb87033b Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 31 May 2015 16:46:42 -0400 Subject: [PATCH 022/182] Replace signal USR1 with WINCH --- 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 7a0dab7586..a3e6745039 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -67,7 +67,7 @@ function prompt_sorin_precmd_async { fi # Signal completion to parent process. - kill -USR1 $$ + kill -WINCH $$ } function prompt_sorin_precmd { @@ -86,7 +86,7 @@ function prompt_sorin_precmd { fi # Compute slow commands in the background. - trap prompt_sorin_git_info USR1 + trap prompt_sorin_git_info WINCH prompt_sorin_precmd_async &! _prompt_sorin_precmd_async_pid=$! } From ef634f38a43ba08477eb4a520525171d742ffa74 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 31 May 2015 16:47:16 -0400 Subject: [PATCH 023/182] Replace signal TERM with KILL --- 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 a3e6745039..c8fc68b332 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -82,7 +82,7 @@ function prompt_sorin_precmd { # Kill the old process of slow commands if it is still running. if (( _prompt_sorin_precmd_async_pid > 0 )); then - kill -TERM "$_prompt_sorin_precmd_async_pid" &>/dev/null + kill -KILL "$_prompt_sorin_precmd_async_pid" &>/dev/null fi # Compute slow commands in the background. From bdec6c4e2032c4fe35c396a033c681c79473b86f Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 31 May 2015 16:50:03 -0400 Subject: [PATCH 024/182] Redraw only when called from subprocess --- modules/prompt/functions/prompt_sorin_setup | 26 +++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index c8fc68b332..c072a4e56a 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -44,19 +44,21 @@ function prompt_sorin_pwd { } function prompt_sorin_git_info { - # 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 + if (( _prompt_sorin_precmd_async_pid > 0 )); then + # Append Git status. + if [[ -s "$_prompt_sorin_precmd_async_data" ]]; then + alias typeset='typeset -g' + source "$_prompt_sorin_precmd_async_data" + RPROMPT+='${git_info:+${(e)git_info[status]}}' + unalias typeset + fi + + # Reset PID. + _prompt_sorin_precmd_async_pid=0 + + # Redisplay prompt. + zle && zle reset-prompt fi - - # Reset PID. - _prompt_sorin_precmd_async_pid=0 - - # Redisplay prompt. - zle && zle reset-prompt } function prompt_sorin_precmd_async { From f2a826e963f06a204dc0e09c05fc3e5419799f52 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 31 May 2015 16:51:29 -0400 Subject: [PATCH 025/182] Add preview function to sorin theme --- modules/prompt/functions/prompt_sorin_setup | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/prompt/functions/prompt_sorin_setup b/modules/prompt/functions/prompt_sorin_setup index c072a4e56a..e339dffea7 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -136,4 +136,13 @@ function prompt_sorin_setup { SPROMPT='zsh: correct %F{1}%R%f to %F{2}%r%f [nyae]? ' } +function prompt_sorin_preview { + local +h PROMPT='' + local +h RPROMPT='' + local +h SPROMPT='' + + editor-info 2>/dev/null + prompt_preview_theme 'sorin' +} + prompt_sorin_setup "$@" From e137068cacfc42eb96c8e0e58855d7d1c5c06c05 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Mon, 9 Nov 2015 02:08:40 -0500 Subject: [PATCH 026/182] Update external completions --- modules/completion/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/external b/modules/completion/external index 68c949470e..c2dde89fb3 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit 68c949470eaa87c5d67080d32fb2b69c8b837eb4 +Subproject commit c2dde89fb34e2734106e50689bf4127f6b0a288d From c05fbedd8d6eeb998af58fd947c5424caf797ebd Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Mon, 9 Nov 2015 02:08:59 -0500 Subject: [PATCH 027/182] Update external history-substring-search --- 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 c4a83561a1..2c29543217 160000 --- a/modules/history-substring-search/external +++ b/modules/history-substring-search/external @@ -1 +1 @@ -Subproject commit c4a83561a12b898ff7145856d0e6ae50757e28ba +Subproject commit 2c295432175990c1bb4e90bc13f609daa67a25d6 From de9ed0610b1cc2c5aadc0eac8c59add0b2f6d118 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Mon, 9 Nov 2015 02:09:30 -0500 Subject: [PATCH 028/182] Update external syntax-highlighting --- 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 3dc5741900..44e5323b53 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit 3dc574190071ef59054f6d693132410b37aa3ae4 +Subproject commit 44e5323b53edd221a79a585869cf4833d555ba58 From 165879d4b30dbf90d436b02a73786a28519d9e93 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Mon, 9 Nov 2015 02:09:48 -0500 Subject: [PATCH 029/182] Update pure theme --- 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 04212522f3..95e7fd7de7 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit 04212522f39f43998d001b4a94b05856f010a54b +Subproject commit 95e7fd7de7af9cf68678c31cac22b79816b44c90 From e641c2111a40e8f8e4ca581eba240b8457c2e7bb Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Wed, 11 Nov 2015 22:56:39 -0500 Subject: [PATCH 030/182] [Fix #940] Update agnoster theme remote URL --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index cb8f419e2a..a8a9e57add 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,7 +12,7 @@ url = https://github.com/davidjrice/prezto_powerline.git [submodule "modules/prompt/external/agnoster"] path = modules/prompt/external/agnoster - url = https://gist.github.com/3712874.git + url = https://github.com/agnoster/agnoster-zsh-theme.git [submodule "modules/prompt/functions/pure"] path = modules/prompt/external/pure url = https://github.com/sindresorhus/pure.git From 02b3d329acdef10c145a1068e9f2a419d8104444 Mon Sep 17 00:00:00 2001 From: Ryan Brown Date: Thu, 9 Jul 2015 18:46:09 -0400 Subject: [PATCH 031/182] Fix typo in dnf module README --- modules/dnf/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/dnf/README.md b/modules/dnf/README.md index 06439544d0..bbf1c923b6 100644 --- a/modules/dnf/README.md +++ b/modules/dnf/README.md @@ -15,7 +15,7 @@ Aliases - `dnfr` removes package(s). - `dnfs` searches for a package. - `dnfu` updates packages. - - `dnfU` upgrates packages. + - `dnfU` upgrades packages. Authors ------- From a7e4b447b3f5d3b31996d02c390745cf0f10cda1 Mon Sep 17 00:00:00 2001 From: "Ryan S. Brown" Date: Sat, 11 Jul 2015 15:53:23 -0400 Subject: [PATCH 032/182] Fix typo in yum module README --- modules/yum/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/yum/README.md b/modules/yum/README.md index 10383c56b4..fa944da8d8 100644 --- a/modules/yum/README.md +++ b/modules/yum/README.md @@ -15,7 +15,7 @@ Aliases - `yumr` removes package(s). - `yums` searches for a package. - `yumu` updates packages. - - `yumU` upgrates packages. + - `yumU` upgrades packages. Authors ------- From 2ad1b2f5b1f5997f9473b1f8705ab8d000d51600 Mon Sep 17 00:00:00 2001 From: Andrew Schwartzmeyer Date: Tue, 21 Jul 2015 15:01:31 -0700 Subject: [PATCH 033/182] Load add-zsh-hook in GPG module Fixes this error: ~/.zprezto/modules/gpg/init.zsh:43: command not found: add-zsh-hook --- modules/gpg/init.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/gpg/init.zsh b/modules/gpg/init.zsh index a7c6cf769c..b969c7a553 100644 --- a/modules/gpg/init.zsh +++ b/modules/gpg/init.zsh @@ -30,6 +30,9 @@ export GPG_TTY="$(tty)" # Integrate with the SSH module. if grep 'enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then + # Load required functions. + autoload -Uz add-zsh-hook + # Override the ssh-agent environment file default path. _ssh_agent_env="$_gpg_agent_env" From 7227c4f0bef5f8ae787c65150d7a7403394fff48 Mon Sep 17 00:00:00 2001 From: Zach Riggle Date: Fri, 31 Jul 2015 16:00:17 -0400 Subject: [PATCH 034/182] Fix unarchive for .deb which uses xz, and absolute paths --- modules/archive/functions/unarchive | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/archive/functions/unarchive b/modules/archive/functions/unarchive index f1b4224aa6..72dfbd1f75 100644 --- a/modules/archive/functions/unarchive +++ b/modules/archive/functions/unarchive @@ -8,6 +8,7 @@ local remove_archive local success local file_name +local file_path local extract_dir if (( $# == 0 )); then @@ -36,6 +37,7 @@ while (( $# > 0 )); do success=0 file_name="${1:t}" + file_path="${1:A}" extract_dir="${file_name:r}" case "$1:l" in (*.tar.gz|*.tgz) tar xvzf "$1" ;; @@ -60,10 +62,10 @@ while (( $# > 0 )); do (*.deb) mkdir -p "$extract_dir/control" mkdir -p "$extract_dir/data" - cd "$extract_dir"; ar vx "../${1}" > /dev/null - cd control; tar xzvf ../control.tar.gz - cd ../data; tar xzvf ../data.tar.gz - cd ..; rm *.tar.gz debian-binary + cd "$extract_dir"; ar vx "${file_path}" > /dev/null + cd control; tar xvf ../control.tar.* + cd ../data; tar xvf ../data.tar.* + cd ..; rm control.tar.* data.tar.* debian-binary cd .. ;; (*) From 64aa907087e0f7aff5f499d8ccebc6526f8870f0 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 28 Feb 2016 22:31:21 -0500 Subject: [PATCH 035/182] Update external completions --- modules/completion/external | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/completion/external b/modules/completion/external index c2dde89fb3..3a2bb8781d 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit c2dde89fb34e2734106e50689bf4127f6b0a288d +Subproject commit 3a2bb8781d32d05d1bf05deeeb476beb651e8272 From e36eed9c8a55d687ccb7b0b91bd9d2bee9854ac2 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 28 Feb 2016 22:31:46 -0500 Subject: [PATCH 036/182] Update external history-substring-search --- 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 2c29543217..7a4b54b708 160000 --- a/modules/history-substring-search/external +++ b/modules/history-substring-search/external @@ -1 +1 @@ -Subproject commit 2c295432175990c1bb4e90bc13f609daa67a25d6 +Subproject commit 7a4b54b708ab88e0421097614f1acaa7a973c795 From 38baf39513ff76379931db5bee0f2db2b8b0e93c Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 28 Feb 2016 22:32:12 -0500 Subject: [PATCH 037/182] Update external syntax-highlighting --- 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 44e5323b53..7044c1986e 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit 44e5323b53edd221a79a585869cf4833d555ba58 +Subproject commit 7044c1986e2f6b15eec27a03651207fccb0a2fbe From 8bd720b0c7076745aaf23d0e4a13b96bf6d44c68 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 28 Feb 2016 22:32:40 -0500 Subject: [PATCH 038/182] Update pure theme --- 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 95e7fd7de7..fb4c37dad3 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit 95e7fd7de7af9cf68678c31cac22b79816b44c90 +Subproject commit fb4c37dad3c5cbdebca61a8ff5545397c11d450f From c8b8397728ee9ed19315f96aa2f149a4a4a183b2 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Wed, 2 Mar 2016 16:31:30 -0500 Subject: [PATCH 039/182] [Fix #532] Integrate autosuggestions --- .gitmodules | 3 ++ modules/README.md | 5 +++ modules/autosuggestions/README.md | 53 +++++++++++++++++++++++++++++++ modules/autosuggestions/external | 1 + modules/autosuggestions/init.zsh | 35 ++++++++++++++++++++ runcoms/zpreztorc | 7 ++++ 6 files changed, 104 insertions(+) create mode 100644 modules/autosuggestions/README.md create mode 160000 modules/autosuggestions/external create mode 100644 modules/autosuggestions/init.zsh diff --git a/.gitmodules b/.gitmodules index a8a9e57add..518a2795f4 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "modules/prompt/functions/pure"] path = modules/prompt/external/pure url = https://github.com/sindresorhus/pure.git +[submodule "modules/autosuggestions/external"] + path = modules/autosuggestions/external + url = https://github.com/tarruda/zsh-autosuggestions diff --git a/modules/README.md b/modules/README.md index 2a49804ca2..db851f3695 100644 --- a/modules/README.md +++ b/modules/README.md @@ -10,6 +10,11 @@ Archive Provides functions to list and extract archives. +Autosuggestions +--------------- + +Integrates zsh-autosuggestions into Prezto. + Command-Not-Found ----------------- diff --git a/modules/autosuggestions/README.md b/modules/autosuggestions/README.md new file mode 100644 index 0000000000..7024379817 --- /dev/null +++ b/modules/autosuggestions/README.md @@ -0,0 +1,53 @@ +Autosuggestions +--------------- + +Integrates zsh-autosuggestions into Prezto. + +Autosuggestions +=============== + +Integrates [zsh-autosuggestions][1] into Prezto, which implements the +[Fish shell][2]'s autosuggestions feature, where the user can type in any part +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 conjuncture with the *history-substring-search* +module, it must be loaded **after** it. + +Contributors +------------ + +New features and bug fixes should be submitted to the [zsh-autosuggestions][1] +project according to its rules and regulations. This module will be synchronized +against it. + +Settings +-------- + +### Highlighting + +If colors are enabled, *autosuggestions* will automatically highlight +positive results. + +To enable highlighting for this module only, add the following line to +*zpreztorc*: + + zstyle ':prezto:module:autosuggestions' color 'yes' + +To set the query found color, add the following line to *zpreztorc*: + + zstyle ':prezto:module:autosuggestions:color' found '' + +Authors +------- + +*The authors of this module should be contacted via the [issue tracker][3].* + + - [Sorin Ionescu](https://github.com/sorin-ionescu) + +[1]: https://github.com/tarruda/zsh-autosuggestions +[2]: http://fishshell.com +[3]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external new file mode 160000 index 0000000000..f0a745576f --- /dev/null +++ b/modules/autosuggestions/external @@ -0,0 +1 @@ +Subproject commit f0a745576ff69fa608421ee7214d4cd77b43e62f diff --git a/modules/autosuggestions/init.zsh b/modules/autosuggestions/init.zsh new file mode 100644 index 0000000000..a3a772e57d --- /dev/null +++ b/modules/autosuggestions/init.zsh @@ -0,0 +1,35 @@ +# +# Integrates zsh-autosuggestions into Prezto. +# +# Authors: +# Sorin Ionescu +# + +# Load dependencies. +pmodload 'editor' + +# Source module files. +source "${0:h}/external/zsh-autosuggestions.zsh" || return 1 + +# +# Highlighting +# + +# Set highlight color, default 'fg=8'. +zstyle -s ':prezto:module:autosuggestions:color' found \ + 'ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE' || ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8' + +# Disable highlighting. +if ! zstyle -t ':prezto:module:autosuggestions' color; then + ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='' +fi + +# +# Key Bindings +# + +if [[ -n "$key_info" ]]; then + # vi + bindkey -M viins "$key_info[Control]F" vi-forward-word + bindkey -M viins "$key_info[Control]E" vi-add-eol +fi diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 4778944c30..1b418df1f5 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -34,6 +34,13 @@ zstyle ':prezto:load' pmodule \ 'completion' \ 'prompt' +# +# Autosuggestions +# + +# Set the query found color. +# zstyle ':prezto:module:autosuggestions:color' found '' + # # Editor # From 4f19700919c8ebbaf75755fc0d03716d13183f49 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Wed, 2 Mar 2016 23:29:51 -0500 Subject: [PATCH 040/182] Add missing syntax highlighter --- runcoms/zpreztorc | 1 + 1 file changed, 1 insertion(+) diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index 1b418df1f5..e93ac6bf74 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -128,6 +128,7 @@ zstyle ':prezto:module:prompt' theme 'sorin' # 'main' \ # 'brackets' \ # 'pattern' \ +# 'line' \ # 'cursor' \ # 'root' # From b38ced856a4ffb3e159d855db701ae379b19dc76 Mon Sep 17 00:00:00 2001 From: "John P. Neumann" Date: Sun, 2 Apr 2017 14:09:58 -0500 Subject: [PATCH 041/182] Adds additional support for PS prompt context expansion --- modules/editor/README.md | 7 +++++++ modules/editor/init.zsh | 21 ++++++++++++++++++--- runcoms/zpreztorc | 3 +++ 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/modules/editor/README.md b/modules/editor/README.md index da0185fd18..44bc829c80 100644 --- a/modules/editor/README.md +++ b/modules/editor/README.md @@ -20,6 +20,13 @@ To enable the auto conversion of .... to ../.., add the following to 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' + Theming ------- diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 9aa64d643c..e23fb0d744 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -103,12 +103,27 @@ function editor-info { fi unset REPLY - - zle reset-prompt - zle -R + zle zle-reset-prompt } zle -N editor-info +# Reset the prompt based on the current context and +# the ps-context option. +function zle-reset-prompt { + if zstyle -t ':prezto:module:editor' ps-context; then + # If we aren't within one of the specified contexts, then we want to reset + # the prompt with the appropriate editor_info[keymap] if there is one. + if [[ $CONTEXT != (select|cont) ]]; then + zle reset-prompt + zle -R + fi + else + zle reset-prompt + zle -R + fi +} +zle -N zle-reset-prompt + # Updates editor information when the keymap changes. function zle-keymap-select { zle editor-info diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index e93ac6bf74..d1d97d2cf6 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -51,6 +51,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 7346efd206015609c64537310cf6e45bb392bc72 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 7 Mar 2017 17:42:41 -0800 Subject: [PATCH 042/182] Allow setting ZPREZTODIR to make prezto easier to integrate with --- init.zsh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/init.zsh b/init.zsh index 6b5254fb4c..b425b62a29 100644 --- a/init.zsh +++ b/init.zsh @@ -31,7 +31,7 @@ function pmodload { pmodules=("$argv[@]") # Add functions to $fpath. - fpath=(${pmodules:+${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions(/FN)} $fpath) + fpath=(${pmodules:+$ZPREZTODIR/modules/${^pmodules}/functions(/FN)} $fpath) function { local pfunction @@ -40,7 +40,7 @@ function pmodload { setopt LOCAL_OPTIONS EXTENDED_GLOB # Load Prezto functions. - for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions/$~pfunction_glob; do + for pfunction in $ZPREZTODIR/modules/${^pmodules}/functions/$~pfunction_glob; do autoload -Uz "$pfunction" done } @@ -49,19 +49,19 @@ function pmodload { for pmodule in "$pmodules[@]"; do if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then continue - elif [[ ! -d "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule" ]]; then + elif [[ ! -d "$ZPREZTODIR/modules/$pmodule" ]]; then print "$0: no such module: $pmodule" >&2 continue else - if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" ]]; then - source "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" + if [[ -s "$ZPREZTODIR/modules/$pmodule/init.zsh" ]]; then + source "$ZPREZTODIR/modules/$pmodule/init.zsh" fi if (( $? == 0 )); then zstyle ":prezto:module:$pmodule" loaded 'yes' else # Remove the $fpath entry. - fpath[(r)${ZDOTDIR:-$HOME}/.zprezto/modules/${pmodule}/functions]=() + fpath[(r)${ZPREZTODIR}/modules/${pmodule}/functions]=() function { local pfunction @@ -71,7 +71,7 @@ function pmodload { setopt LOCAL_OPTIONS EXTENDED_GLOB # Unload Prezto functions. - for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/functions/$~pfunction_glob; do + for pfunction in $ZPREZTODIR/modules/$pmodule/functions/$~pfunction_glob; do unfunction "$pfunction" done } @@ -86,6 +86,9 @@ function pmodload { # Prezto Initialization # +# Find the dir Prezto is installed to +ZPREZTODIR=${ZPREZTODIR:-${ZDOTDIR:-$HOME}/.zprezto} + # Source the Prezto configuration file. if [[ -s "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then source "${ZDOTDIR:-$HOME}/.zpreztorc" From 0be0ff565aeb9d79d85b9db593f5ffef445cef35 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Wed, 8 Mar 2017 11:22:39 -0800 Subject: [PATCH 043/182] Set ZPREZTODIR to ${0:h} --- init.zsh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/init.zsh b/init.zsh index b425b62a29..2ce20890b4 100644 --- a/init.zsh +++ b/init.zsh @@ -86,8 +86,11 @@ function pmodload { # Prezto Initialization # -# Find the dir Prezto is installed to -ZPREZTODIR=${ZPREZTODIR:-${ZDOTDIR:-$HOME}/.zprezto} +# This finds the directory prezto is installed to so plugin managers don't need +# to rely on dirty hacks to force prezto into a directory. Additionally, it +# needs to be done here because inside the pmodload function ${0:h} evaluates to +# the current directory of the shell rather than the prezto dir. +ZPREZTODIR=${0:h} # Source the Prezto configuration file. if [[ -s "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then From 8820b71f3707d6d1fb1fe0a786572bdc80cda94b Mon Sep 17 00:00:00 2001 From: Plastix Date: Sat, 18 Mar 2017 12:36:46 -0400 Subject: [PATCH 044/182] Update pure prompt to v1.5.2 This fixes a security issue with malicious branch names --- 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 fb4c37dad3..04fa7495cf 160000 --- a/modules/prompt/external/pure +++ b/modules/prompt/external/pure @@ -1 +1 @@ -Subproject commit fb4c37dad3c5cbdebca61a8ff5545397c11d450f +Subproject commit 04fa7495cf8fe3aff8ce286d4517df15066b820a From 2ba060a4264d5090c1d5c0618b6e472969d7aeea Mon Sep 17 00:00:00 2001 From: Andreas Grauel Date: Mon, 26 Dec 2016 09:31:17 +0100 Subject: [PATCH 045/182] update brewu method Homebrew decided to not change the behaviour of `brew upgrade` so `brew upgrade --all` is equivalent to `brew upgrade` without any other arguments (so the `--all` is a no-op and can be removed). --- 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 1ebe793d99..1196fa5740 100644 --- a/modules/homebrew/init.zsh +++ b/modules/homebrew/init.zsh @@ -20,7 +20,7 @@ alias brewC='brew cleanup --force' alias brewi='brew install' alias brewl='brew list' alias brews='brew search' -alias brewu='brew update && brew upgrade --all' +alias brewu='brew update && brew upgrade' alias brewx='brew remove' # Homebrew Cask From 8913bcccd217e6935fff9f5ed73f4ea4a082fb05 Mon Sep 17 00:00:00 2001 From: Eduard Zintz Date: Mon, 3 Apr 2017 22:27:06 +0200 Subject: [PATCH 046/182] Use python3 for http-serve alias if available (#1193) --- modules/utility/init.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index fd7aaf6e53..ca547cbfc1 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -158,7 +158,11 @@ fi # Miscellaneous # Serves a directory via HTTP. -alias http-serve='python -m SimpleHTTPServer' +if (( $+commands[python3] )); then + alias http-serve='python3 -m http.server' +else + alias http-serve='python -m SimpleHTTPServer' +fi # # Functions From 5271af8180bf455ff194195c93261a7b877c602c Mon Sep 17 00:00:00 2001 From: Mateusz Lewko Date: Mon, 3 Apr 2017 22:29:58 +0200 Subject: [PATCH 047/182] Ensure code blocks are formatted properly for GitHub (#1271) --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d6b40af0b1..9724d5c563 100644 --- a/README.md +++ b/README.md @@ -13,23 +13,25 @@ version is 4.3.17. 1. Launch Zsh: - zsh + `zsh` 2. Clone the repository: - git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" + `git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"` 3. Create a new Zsh configuration by copying the Zsh configuration files provided: + ``` setopt EXTENDED_GLOB for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" done + ``` 4. Set Zsh as your default shell: - chsh -s /bin/zsh + `chsh -s /bin/zsh` 5. Open a new Zsh terminal window or tab. From a7729561e8f9b2efee6177aca74809b7c8d7e63f Mon Sep 17 00:00:00 2001 From: Calvin Smith Date: Mon, 3 Apr 2017 23:06:02 -0700 Subject: [PATCH 048/182] Add support for skipping VIRTUALENVWRAPPER init in modules/python (#598) * Support skip-virtualenvwrapper-init zstyle in python module to avoid auto-sourcing of virtualenvwrapper.sh * Don't overwrite the WORKON_HOME env var if the user has already set it --- modules/python/init.zsh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/python/init.zsh b/modules/python/init.zsh index da78ea799a..458253b2e7 100644 --- a/modules/python/init.zsh +++ b/modules/python/init.zsh @@ -34,10 +34,11 @@ if (( ! $+commands[python] && ! $+commands[pyenv] )); then return 1 fi -# Load virtualenvwrapper into the shell session. -if (( $+commands[virtualenvwrapper.sh] )); then +# Load virtualenvwrapper into the shell session, unless requested not to +zstyle -t ':prezto:module:python' skip-virtualenvwrapper-init +if (( $? && $+commands[virtualenvwrapper.sh] )); then # Set the directory where virtual environments are stored. - export WORKON_HOME="$HOME/.virtualenvs" + export WORKON_HOME="${WORKON_HOME:-$HOME/.virtualenvs}" # Disable the virtualenv prompt. VIRTUAL_ENV_DISABLE_PROMPT=1 From dcd85961926467647e015ef803df9bdaacbc3509 Mon Sep 17 00:00:00 2001 From: Paul Melnikow Date: Sat, 10 Sep 2016 10:41:37 -0400 Subject: [PATCH 049/182] Don't load pfunctions from vi swap files --- init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.zsh b/init.zsh index 2ce20890b4..665e6c40da 100644 --- a/init.zsh +++ b/init.zsh @@ -25,7 +25,7 @@ unset min_zsh_version function pmodload { local -a pmodules local pmodule - local pfunction_glob='^([_.]*|prompt_*_setup|README*)(-.N:t)' + local pfunction_glob='^([_.]*|prompt_*_setup|README*|*~)(-.N:t)' # $argv is overridden in the anonymous function. pmodules=("$argv[@]") From 3a6ae0fc6c73963e5f6b0b77f32d219677c840b5 Mon Sep 17 00:00:00 2001 From: Jared Scott Date: Wed, 12 Oct 2016 00:54:11 -0400 Subject: [PATCH 050/182] Change $TMPDIR for non-interactive shells This commit changes the way $TMPDIR is set by using `mktemp` rather than a fixed string. --- runcoms/zprofile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runcoms/zprofile b/runcoms/zprofile index d87cb3b058..052d5f9892 100644 --- a/runcoms/zprofile +++ b/runcoms/zprofile @@ -67,8 +67,7 @@ fi # if [[ ! -d "$TMPDIR" ]]; then - export TMPDIR="/tmp/$LOGNAME" - mkdir -p -m 700 "$TMPDIR" + export TMPDIR="$(mktemp -d)" fi TMPPREFIX="${TMPDIR%/}/zsh" From 4e35f701ca30491518a32a42cad9a21a83388db2 Mon Sep 17 00:00:00 2001 From: Kyle Rich Date: Wed, 25 May 2016 17:31:11 -0600 Subject: [PATCH 051/182] Add "sa" alias to make it easy to search aliases --- modules/utility/README.md | 1 + modules/utility/init.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/modules/utility/README.md b/modules/utility/README.md index 5e7919ea1a..16b4317c5d 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -75,6 +75,7 @@ Aliases - `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. ### Files and Directories diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index ca547cbfc1..961d917dc6 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -57,6 +57,7 @@ alias p='${(z)PAGER}' alias po='popd' alias pu='pushd' alias rm="${aliases[rm]:-rm} -i" +alias sa='alias | grep -i' alias type='type -a' # ls From 2c1ad5bed1014884917b0e5642912b5d3a701035 Mon Sep 17 00:00:00 2001 From: Dario Gjorgjevski Date: Wed, 5 Apr 2017 06:24:50 +0200 Subject: [PATCH 052/182] Avoid unsetting nonexistent variables (#1075) --- modules/editor/init.zsh | 2 +- modules/history-substring-search/init.zsh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/editor/init.zsh b/modules/editor/init.zsh index 9aa64d643c..c77e65c9e9 100644 --- a/modules/editor/init.zsh +++ b/modules/editor/init.zsh @@ -326,4 +326,4 @@ else print "prezto: editor: invalid key bindings: $key_bindings" >&2 fi -unset key{,map,bindings} +unset key{,map,_bindings} diff --git a/modules/history-substring-search/init.zsh b/modules/history-substring-search/init.zsh index 67990a3822..d3ee3a1131 100644 --- a/modules/history-substring-search/init.zsh +++ b/modules/history-substring-search/init.zsh @@ -54,4 +54,6 @@ if [[ -n "$key_info" ]]; then bindkey -M "$keymap" "$key_info[Up]" history-substring-search-up bindkey -M "$keymap" "$key_info[Down]" history-substring-search-down done + + unset keymap fi From 483447082b04c3e4830f52a69b23f5a696bf4da5 Mon Sep 17 00:00:00 2001 From: Jamie Rolfs Date: Thu, 16 Mar 2017 03:12:18 -0700 Subject: [PATCH 053/182] Add nodenv support to Node.js module - Implementation from https://github.com/sorin-ionescu/prezto/pull/1001 - Documentation from https://github.com/sorin-ionescu/prezto/pull/1178 --- modules/node/README.md | 9 +++++++++ modules/node/functions/node-info | 2 ++ modules/node/init.zsh | 8 ++++++++ 3 files changed, 19 insertions(+) diff --git a/modules/node/README.md b/modules/node/README.md index 5f0c3caf73..66e9784d99 100644 --- a/modules/node/README.md +++ b/modules/node/README.md @@ -10,6 +10,13 @@ nvm [nvm][5] allows for managing multiple, isolated Node.js installations in the home directory. +nodenv +------ + +[nodenv][6] does one thing well. nodenv is concerned solely with switching +Node versions. It's simple and predictable, Just Works, and is rock solid in +production. nodenv is forked from the popular [rbenv][7]. + Functions --------- @@ -43,3 +50,5 @@ Authors [3]: http://nodejs.org/api [4]: https://github.com/sorin-ionescu/prezto/issues [5]: https://github.com/creationix/nvm +[6]: https://github.com/nodenv/nodenv +[7]: https://github.com/sstephenson/rbenv diff --git a/modules/node/functions/node-info b/modules/node/functions/node-info index 7742f904f2..e4cd52d02c 100644 --- a/modules/node/functions/node-info +++ b/modules/node/functions/node-info @@ -15,6 +15,8 @@ typeset -gA node_info if (( $+functions[nvm_version] )); then version="${$(nvm_version)#v}" +elif (( $+commands[nodenv] )); then + version="${${$(nodenv version)#v}[(w)0]}" fi if [[ "$version" != (none|) ]]; then diff --git a/modules/node/init.zsh b/modules/node/init.zsh index 6d6007896b..2eb297c1f0 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -14,6 +14,14 @@ if [[ -s "$HOME/.nvm/nvm.sh" ]]; 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. +elif [[ -s "$HOME/.nodenv/bin/nodenv" ]]; then + eval "$($HOME/.nodenv/bin/nodenv init -)" + +# Load package manager installed nodenv into the shell session. +elif (( $+commands[brew] )) && [[ -d "$(brew --prefix nodenv 2>/dev/null)" ]]; then + eval "$($(brew --prefix nodenv)/bin/nodenv init -)" + # Return if requirements are not found. elif (( ! $+commands[node] )); then return 1 From fb689449a76328ba23f60a5e07e22fc3bad55467 Mon Sep 17 00:00:00 2001 From: Matt Hamilton Date: Tue, 4 Apr 2017 21:30:48 -0700 Subject: [PATCH 054/182] Prefer $(COMMAND) syntax over backticks (#1012) --- modules/dpkg/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/dpkg/init.zsh b/modules/dpkg/init.zsh index e1f479b090..69d524fc34 100644 --- a/modules/dpkg/init.zsh +++ b/modules/dpkg/init.zsh @@ -54,4 +54,4 @@ fi alias deb-build='time dpkg-buildpackage -rfakeroot -us -uc' # Removes all kernel images and headers, except for the ones in use. -alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))"' +alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n$(uname -r)))"' From 12d48dfcf9f8b082ee462242f0fde99bdde3c06d Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Wed, 5 Apr 2017 00:36:28 -0400 Subject: [PATCH 055/182] Remove extra use of grep in git-hub-shorten-url (#904) --- modules/git/functions/git-hub-shorten-url | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/git/functions/git-hub-shorten-url b/modules/git/functions/git-hub-shorten-url index 77e4b0bacf..d37b04eb85 100644 --- a/modules/git/functions/git-hub-shorten-url +++ b/modules/git/functions/git-hub-shorten-url @@ -16,7 +16,7 @@ if [[ -z "$url" ]]; then fi if (( $+commands[curl] )); then - curl -s -i 'http://git.io' -F "url=$url" | grep 'Location:' | sed 's/Location: //' + curl -s -i 'http://git.io' -F "url=$url" | sed -n 's/^Location: //p' else print "$0: command not found: curl" >&2 fi From 65b05c0220b5b26bc913477a215b60de86d04f8a Mon Sep 17 00:00:00 2001 From: Wojciech Pietrzak Date: Wed, 5 Apr 2017 07:03:47 +0200 Subject: [PATCH 056/182] Add notice about potential shadowing of the gb command (#1124) --- modules/git/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/git/README.md b/modules/git/README.md index c2d0449c74..65de113225 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -214,6 +214,7 @@ The following aliases may shadow system commands: - `gpt` shadows the [GUID partition table maintenance utility][4]. - `gs` shadows the [Ghostscript][5]. + - `gb` shadows the [GB][9]. If you frequently use the above commands, you may wish to remove said aliases from this module or to disable them at the bottom of the zshrc with `unalias`. @@ -332,3 +333,4 @@ Authors [6]: https://github.com/sorin-ionescu/prezto/issues [7]: https://github.com/sorin-ionescu/prezto/issues/219 [8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html +[9]: https://getgb.io/ From ddfc870f9aae4f43da10863a175cee2c91485cde Mon Sep 17 00:00:00 2001 From: Justin Filip Date: Tue, 24 Nov 2015 20:13:31 -0500 Subject: [PATCH 057/182] Use less destructive git push --force-with-lease. --- modules/git/alias.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index ffa854ddb3..d603830849 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -117,7 +117,8 @@ alias gmt='git mergetool' # Push (p) alias gp='git push' -alias gpf='git push --force' +alias gpf='git push --force-with-lease' +alias gpF='git push --force' alias gpa='git push --all' alias gpA='git push --all && git push --tags' alias gpt='git push --tags' From 013668f484d1543cdadafac659a21e940df99957 Mon Sep 17 00:00:00 2001 From: Olaf Conradi Date: Mon, 28 Apr 2014 04:19:52 +0200 Subject: [PATCH 058/182] Improve and simplify titling functions. Multiplexer titles can be set independent of window and tab titles. Add auto-title always option to have dynamic titling inside terminal multiplexers. Setting auto-title to yes continues to ignore dynamic titling inside terminal multiplexers. This patch should not alter behavior under Apple terminals. --- modules/terminal/README.md | 15 ++++++++++---- modules/terminal/init.zsh | 40 +++++++++++++++++++++++--------------- runcoms/zpreztorc | 3 +++ 3 files changed, 38 insertions(+), 20 deletions(-) diff --git a/modules/terminal/README.md b/modules/terminal/README.md index 58f81be1df..5a607880b8 100644 --- a/modules/terminal/README.md +++ b/modules/terminal/README.md @@ -13,14 +13,19 @@ directory, add the following to *zpreztorc*: 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. +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' + +### 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' `%s` will be replaced with the current working directory path or the currently executing program name. @@ -31,7 +36,8 @@ Functions --------- - `set-tab-title` sets the terminal tab title. -- `set-window-title` sets the terminal or terminal multiplexer window title. +- `set-window-title` sets the terminal window title. +- `set-multiplexer-title` sets the terminal multiplexer title. Authors ------- @@ -39,6 +45,7 @@ Authors *The authors of this module should be contacted via the [issue tracker][2].* - [Sorin Ionescu](https://github.com/sorin-ionescu) + - [Olaf Conradi](https://github.com/oohlaf) [1]: http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Expansion-of-Prompt-Sequences [2]: https://github.com/sorin-ionescu/prezto/issues diff --git a/modules/terminal/init.zsh b/modules/terminal/init.zsh index b0be502303..c7b22b7a5d 100644 --- a/modules/terminal/init.zsh +++ b/modules/terminal/init.zsh @@ -3,6 +3,7 @@ # # Authors: # Sorin Ionescu +# Olaf Conradi # # Return if requirements are not found. @@ -10,19 +11,12 @@ if [[ "$TERM" == (dumb|linux|*bsd*|eterm*) ]]; then return 1 fi -# Sets the terminal or terminal multiplexer window title. +# Sets the terminal window title. function set-window-title { local title_format{,ted} zstyle -s ':prezto:module:terminal:window-title' format 'title_format' || title_format="%s" zformat -f title_formatted "$title_format" "s:$argv" - - if [[ "$TERM" == screen* ]]; then - title_format="\ek%s\e\\" - else - title_format="\e]2;%s\a" - fi - - printf "$title_format" "${(V%)title_formatted}" + printf '\e]2;%s\a' "${(V%)title_formatted}" } # Sets the terminal tab title. @@ -30,8 +24,15 @@ function set-tab-title { local title_format{,ted} zstyle -s ':prezto:module:terminal:tab-title' format 'title_format' || title_format="%s" zformat -f title_formatted "$title_format" "s:$argv" + printf '\e]1;%s\a' "${(V%)title_formatted}" +} - printf "\e]1;%s\a" ${(V%)title_formatted} +# Sets the terminal multiplexer tab title. +function set-multiplexer-title { + local title_format{,ted} + zstyle -s ':prezto:module:terminal:multiplexer-title' format 'title_format' || title_format="%s" + zformat -f title_formatted "$title_format" "s:$argv" + printf '\ek%s\e\\' "${(V%)title_formatted}" } # Sets the tab and window titles with a given command. @@ -59,8 +60,11 @@ function _terminal-set-titles-with-command { local truncated_cmd="${cmd/(#m)?(#c15,)/${MATCH[1,12]}...}" unset MATCH - set-window-title "$cmd" + if [[ "$TERM" == screen* ]]; then + set-multiplexer-title "$truncated_cmd" + fi set-tab-title "$truncated_cmd" + set-window-title "$cmd" fi } @@ -74,8 +78,11 @@ function _terminal-set-titles-with-path { local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}" unset MATCH - set-window-title "$abbreviated_path" + if [[ "$TERM" == screen* ]]; then + set-multiplexer-title "$truncated_path" + fi set-tab-title "$truncated_path" + set-window-title "$abbreviated_path" } # Do not override precmd/preexec; append to the hook array. @@ -110,12 +117,13 @@ then fi # Set up non-Apple terminals. -if zstyle -t ':prezto:module:terminal' auto-title \ - && ( ! [[ -n "$STY" || -n "$TMUX" ]] ) +if zstyle -t ':prezto:module:terminal' auto-title 'always' \ + || (zstyle -t ':prezto:module:terminal' auto-title \ + && ( ! [[ -n "$STY" || -n "$TMUX" ]] )) then - # Sets the tab and window titles before the prompt is displayed. + # Sets titles before the prompt is displayed. add-zsh-hook precmd _terminal-set-titles-with-path - # Sets the tab and window titles before command execution. + # Sets titles before command execution. add-zsh-hook preexec _terminal-set-titles-with-command fi diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index e93ac6bf74..ab26ff8b90 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -151,6 +151,9 @@ zstyle ':prezto:module:prompt' theme 'sorin' # Set the tab title format. # zstyle ':prezto:module:terminal:tab-title' format '%m: %s' +# Set the terminal multiplexer title format. +# zstyle ':prezto:module:terminal:multiplexer-title' format '%s' + # # Tmux # From 076e29e97df3b15fd53f12d6d438cdae78f46773 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 4 Apr 2017 22:44:28 -0700 Subject: [PATCH 059/182] Update zsh-autosuggestions submodule location Thanks to @naibaf0. Closes #1096. --- .gitmodules | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index 518a2795f4..6494149210 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ +[submodule "modules/autosuggestions/external"] + path = modules/autosuggestions/external + url = https://github.com/zsh-users/zsh-autosuggestions [submodule "modules/history-substring-search/external"] path = modules/history-substring-search/external url = https://github.com/zsh-users/zsh-history-substring-search.git @@ -16,6 +19,3 @@ [submodule "modules/prompt/functions/pure"] path = modules/prompt/external/pure url = https://github.com/sindresorhus/pure.git -[submodule "modules/autosuggestions/external"] - path = modules/autosuggestions/external - url = https://github.com/tarruda/zsh-autosuggestions From fd0b627a8b19006585b74606306d32ef4168fa72 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 4 Apr 2017 22:49:59 -0700 Subject: [PATCH 060/182] Update zsh-users submodules to latest stable versions --- modules/autosuggestions/external | 2 +- modules/completion/external | 2 +- modules/history-substring-search/external | 2 +- modules/syntax-highlighting/external | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/autosuggestions/external b/modules/autosuggestions/external index f0a745576f..9cfaf5d342 160000 --- a/modules/autosuggestions/external +++ b/modules/autosuggestions/external @@ -1 +1 @@ -Subproject commit f0a745576ff69fa608421ee7214d4cd77b43e62f +Subproject commit 9cfaf5d3424ceb5fedd2c7e3253f823faae74383 diff --git a/modules/completion/external b/modules/completion/external index 3a2bb8781d..72af5d08f1 160000 --- a/modules/completion/external +++ b/modules/completion/external @@ -1 +1 @@ -Subproject commit 3a2bb8781d32d05d1bf05deeeb476beb651e8272 +Subproject commit 72af5d08f1c07507d74103af039e98a2791fccb5 diff --git a/modules/history-substring-search/external b/modules/history-substring-search/external index 7a4b54b708..aae3388491 160000 --- a/modules/history-substring-search/external +++ b/modules/history-substring-search/external @@ -1 +1 @@ -Subproject commit 7a4b54b708ab88e0421097614f1acaa7a973c795 +Subproject commit aae3388491c2312c4efb2e86bcb999927bb2900e diff --git a/modules/syntax-highlighting/external b/modules/syntax-highlighting/external index 7044c1986e..15d4587514 160000 --- a/modules/syntax-highlighting/external +++ b/modules/syntax-highlighting/external @@ -1 +1 @@ -Subproject commit 7044c1986e2f6b15eec27a03651207fccb0a2fbe +Subproject commit 15d4587514a3beaa13972093e335bf685b6726a9 From 27c2ccd8b9d189ca06f47e5618d6fd525dfda9c9 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Tue, 4 Apr 2017 22:51:17 -0700 Subject: [PATCH 061/182] Update external prompt modules --- modules/prompt/external/agnoster | 2 +- modules/prompt/external/powerline | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/prompt/external/agnoster b/modules/prompt/external/agnoster index 43cb371f36..f8ffdbfbe2 160000 --- a/modules/prompt/external/agnoster +++ b/modules/prompt/external/agnoster @@ -1 +1 @@ -Subproject commit 43cb371f361eecf62e9dac7afc73a1c16edf89c7 +Subproject commit f8ffdbfbe2c2d8cd1350eae1b68367802fe6df26 diff --git a/modules/prompt/external/powerline b/modules/prompt/external/powerline index 8e81152340..c48e4c69ef 160000 --- a/modules/prompt/external/powerline +++ b/modules/prompt/external/powerline @@ -1 +1 @@ -Subproject commit 8e81152340c4beb2d941340d1feb2dc29bbcc309 +Subproject commit c48e4c69ef5c368ea7cda961ed9d0e298a5ae1fc From c0049855c51326e9b4eb595a970eb6d4c7ed3f9b Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Sun, 9 Aug 2015 12:40:04 +0200 Subject: [PATCH 062/182] Added option to skip git aliases definition Fixes #947 --- modules/git/README.md | 4 + modules/git/alias.zsh | 310 +++++++++++++++++++++--------------------- 2 files changed, 160 insertions(+), 154 deletions(-) diff --git a/modules/git/README.md b/modules/git/README.md index 65de113225..37194126e2 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -29,6 +29,10 @@ This setting affects all aliases and functions that call `git-status`. Aliases ------- +Aliases are enabled by default. You can disable them with: + + zstyle ':prezto:module:git:alias' skip 'yes' + ### Git - `g` is short for `git`. diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index d603830849..484551477d 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -26,157 +26,159 @@ zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_subm # Aliases # -# Git -alias g='git' - -# Branch (b) -alias gb='git branch' -alias gbc='git checkout -b' -alias gbl='git branch -v' -alias gbL='git branch -av' -alias gbx='git branch -d' -alias gbX='git branch -D' -alias gbm='git branch -m' -alias gbM='git branch -M' -alias gbs='git show-branch' -alias gbS='git show-branch -a' - -# Commit (c) -alias gc='git commit --verbose' -alias gca='git commit --verbose --all' -alias gcm='git commit --message' -alias gco='git checkout' -alias gcO='git checkout --patch' -alias gcf='git commit --amend --reuse-message HEAD' -alias gcF='git commit --verbose --amend' -alias gcp='git cherry-pick --ff' -alias gcP='git cherry-pick --no-commit' -alias gcr='git revert' -alias gcR='git reset "HEAD^"' -alias gcs='git show' -alias gcl='git-commit-lost' - -# Conflict (C) -alias gCl='git status | sed -n "s/^.*both [a-z]*ed: *//p"' -alias gCa='git add $(gCl)' -alias gCe='git mergetool $(gCl)' -alias gCo='git checkout --ours --' -alias gCO='gCo $(gCl)' -alias gCt='git checkout --theirs --' -alias gCT='gCt $(gCl)' - -# Data (d) -alias gd='git ls-files' -alias gdc='git ls-files --cached' -alias gdx='git ls-files --deleted' -alias gdm='git ls-files --modified' -alias gdu='git ls-files --other --exclude-standard' -alias gdk='git ls-files --killed' -alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"' - -# Fetch (f) -alias gf='git fetch' -alias gfc='git clone' -alias gfm='git pull' -alias gfr='git pull --rebase' - -# Grep (g) -alias gg='git grep' -alias ggi='git grep --ignore-case' -alias ggl='git grep --files-with-matches' -alias ggL='git grep --files-without-matches' -alias ggv='git grep --invert-match' -alias ggw='git grep --word-regexp' - -# Index (i) -alias gia='git add' -alias giA='git add --patch' -alias giu='git add --update' -alias gid='git diff --no-ext-diff --cached' -alias giD='git diff --no-ext-diff --cached --word-diff' -alias gir='git reset' -alias giR='git reset --patch' -alias gix='git rm -r --cached' -alias giX='git rm -rf --cached' - -# Log (l) -alias gl='git log --topo-order --pretty=format:"${_git_log_medium_format}"' -alias gls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"' -alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"${_git_log_medium_format}"' -alias glo='git log --topo-order --pretty=format:"${_git_log_oneline_format}"' -alias glg='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_format}"' -alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"' -alias glc='git shortlog --summary --numbered' - -# Merge (m) -alias gm='git merge' -alias gmC='git merge --no-commit' -alias gmF='git merge --no-ff' -alias gma='git merge --abort' -alias gmt='git mergetool' - -# Push (p) -alias gp='git push' -alias gpf='git push --force-with-lease' -alias gpF='git push --force' -alias gpa='git push --all' -alias gpA='git push --all && git push --tags' -alias gpt='git push --tags' -alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"' -alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"' - -# Rebase (r) -alias gr='git rebase' -alias gra='git rebase --abort' -alias grc='git rebase --continue' -alias gri='git rebase --interactive' -alias grs='git rebase --skip' - -# Remote (R) -alias gR='git remote' -alias gRl='git remote --verbose' -alias gRa='git remote add' -alias gRx='git remote rm' -alias gRm='git remote rename' -alias gRu='git remote update' -alias gRp='git remote prune' -alias gRs='git remote show' -alias gRb='git-hub-browse' - -# Stash (s) -alias gs='git stash' -alias gsa='git stash apply' -alias gsx='git stash drop' -alias gsX='git-stash-clear-interactive' -alias gsl='git stash list' -alias gsL='git-stash-dropped' -alias gsd='git stash show --patch --stat' -alias gsp='git stash pop' -alias gsr='git-stash-recover' -alias gss='git stash save --include-untracked' -alias gsS='git stash save --patch --no-keep-index' -alias gsw='git stash save --include-untracked --keep-index' - -# Submodule (S) -alias gS='git submodule' -alias gSa='git submodule add' -alias gSf='git submodule foreach' -alias gSi='git submodule init' -alias gSI='git submodule update --init --recursive' -alias gSl='git submodule status' -alias gSm='git-submodule-move' -alias gSs='git submodule sync' -alias gSu='git submodule foreach git pull origin master' -alias gSx='git-submodule-remove' - -# Working Copy (w) -alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short' -alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}' -alias gwd='git diff --no-ext-diff' -alias gwD='git diff --no-ext-diff --word-diff' -alias gwr='git reset --soft' -alias gwR='git reset --hard' -alias gwc='git clean -n' -alias gwC='git clean -f' -alias gwx='git rm -r' -alias gwX='git rm -rf' +if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then + # Git + alias g='git' + + # Branch (b) + alias gb='git branch' + alias gbc='git checkout -b' + alias gbl='git branch -v' + alias gbL='git branch -av' + alias gbx='git branch -d' + alias gbX='git branch -D' + alias gbm='git branch -m' + alias gbM='git branch -M' + alias gbs='git show-branch' + alias gbS='git show-branch -a' + + # Commit (c) + alias gc='git commit --verbose' + alias gca='git commit --verbose --all' + alias gcm='git commit --message' + alias gco='git checkout' + alias gcO='git checkout --patch' + alias gcf='git commit --amend --reuse-message HEAD' + alias gcF='git commit --verbose --amend' + alias gcp='git cherry-pick --ff' + alias gcP='git cherry-pick --no-commit' + alias gcr='git revert' + alias gcR='git reset "HEAD^"' + alias gcs='git show' + alias gcl='git-commit-lost' + + # Conflict (C) + alias gCl='git status | sed -n "s/^.*both [a-z]*ed: *//p"' + alias gCa='git add $(gCl)' + alias gCe='git mergetool $(gCl)' + alias gCo='git checkout --ours --' + alias gCO='gCo $(gCl)' + alias gCt='git checkout --theirs --' + alias gCT='gCt $(gCl)' + + # Data (d) + alias gd='git ls-files' + alias gdc='git ls-files --cached' + alias gdx='git ls-files --deleted' + alias gdm='git ls-files --modified' + alias gdu='git ls-files --other --exclude-standard' + alias gdk='git ls-files --killed' + alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"' + + # Fetch (f) + alias gf='git fetch' + alias gfc='git clone' + alias gfm='git pull' + alias gfr='git pull --rebase' + + # Grep (g) + alias gg='git grep' + alias ggi='git grep --ignore-case' + alias ggl='git grep --files-with-matches' + alias ggL='git grep --files-without-matches' + alias ggv='git grep --invert-match' + alias ggw='git grep --word-regexp' + + # Index (i) + alias gia='git add' + alias giA='git add --patch' + alias giu='git add --update' + alias gid='git diff --no-ext-diff --cached' + alias giD='git diff --no-ext-diff --cached --word-diff' + alias gir='git reset' + alias giR='git reset --patch' + alias gix='git rm -r --cached' + alias giX='git rm -rf --cached' + + # Log (l) + alias gl='git log --topo-order --pretty=format:"${_git_log_medium_format}"' + alias gls='git log --topo-order --stat --pretty=format:"${_git_log_medium_format}"' + alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"${_git_log_medium_format}"' + alias glo='git log --topo-order --pretty=format:"${_git_log_oneline_format}"' + alias glg='git log --topo-order --all --graph --pretty=format:"${_git_log_oneline_format}"' + alias glb='git log --topo-order --pretty=format:"${_git_log_brief_format}"' + alias glc='git shortlog --summary --numbered' + + # Merge (m) + alias gm='git merge' + alias gmC='git merge --no-commit' + alias gmF='git merge --no-ff' + alias gma='git merge --abort' + alias gmt='git mergetool' + + # Push (p) + alias gp='git push' + alias gpf='git push --force-with-lease' + alias gpF='git push --force' + alias gpa='git push --all' + alias gpA='git push --all && git push --tags' + alias gpt='git push --tags' + alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"' + alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"' + + # Rebase (r) + alias gr='git rebase' + alias gra='git rebase --abort' + alias grc='git rebase --continue' + alias gri='git rebase --interactive' + alias grs='git rebase --skip' + + # Remote (R) + alias gR='git remote' + alias gRl='git remote --verbose' + alias gRa='git remote add' + alias gRx='git remote rm' + alias gRm='git remote rename' + alias gRu='git remote update' + alias gRp='git remote prune' + alias gRs='git remote show' + alias gRb='git-hub-browse' + + # Stash (s) + alias gs='git stash' + alias gsa='git stash apply' + alias gsx='git stash drop' + alias gsX='git-stash-clear-interactive' + alias gsl='git stash list' + alias gsL='git-stash-dropped' + alias gsd='git stash show --patch --stat' + alias gsp='git stash pop' + alias gsr='git-stash-recover' + alias gss='git stash save --include-untracked' + alias gsS='git stash save --patch --no-keep-index' + alias gsw='git stash save --include-untracked --keep-index' + + # Submodule (S) + alias gS='git submodule' + alias gSa='git submodule add' + alias gSf='git submodule foreach' + alias gSi='git submodule init' + alias gSI='git submodule update --init --recursive' + alias gSl='git submodule status' + alias gSm='git-submodule-move' + alias gSs='git submodule sync' + alias gSu='git submodule foreach git pull origin master' + alias gSx='git-submodule-remove' + + # Working Copy (w) + alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short' + alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}' + alias gwd='git diff --no-ext-diff' + alias gwD='git diff --no-ext-diff --word-diff' + alias gwr='git reset --soft' + alias gwR='git reset --hard' + alias gwc='git clean -n' + alias gwC='git clean -f' + alias gwx='git rm -r' + alias gwX='git rm -rf' +fi From 95d19b37c12d0f4f1fb327adf310c1e14eeb8938 Mon Sep 17 00:00:00 2001 From: Kire Ledan Date: Sun, 29 Nov 2015 10:52:04 -0500 Subject: [PATCH 063/182] Added support for python venv display in paradox prompt --- modules/prompt/functions/prompt_paradox_setup | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/prompt/functions/prompt_paradox_setup b/modules/prompt/functions/prompt_paradox_setup index 36ae40ecfc..7e9b9493f2 100644 --- a/modules/prompt/functions/prompt_paradox_setup +++ b/modules/prompt/functions/prompt_paradox_setup @@ -52,6 +52,10 @@ function prompt_paradox_build_prompt { prompt_paradox_start_segment green black '${(e)git_info[ref]}${(e)git_info[status]}' fi + if [[ -n "$python_info" ]]; then + prompt_paradox_start_segment white black '${(e)python_info[virtualenv]}' + fi + prompt_paradox_end_segment } @@ -103,6 +107,7 @@ function prompt_paradox_precmd { function prompt_paradox_preexec { _prompt_paradox_start_time="$SECONDS" + python-info } function prompt_paradox_setup { @@ -143,6 +148,9 @@ function prompt_paradox_setup { 'ref' '$(coalesce "%b" "%p" "%c")' \ 'status' '%s%D%A%B%S%a%d%m%r%U%u' + # %v - virtualenv name. + zstyle ':prezto:module:python:info:virtualenv' format 'virtualenv:%v' + # Define prompts. PROMPT=' ${(e)$(prompt_paradox_build_prompt)} From 464a8d20a1e05b256d2b0a9d05d231c30160835d Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Thu, 9 Jul 2015 17:53:58 -0700 Subject: [PATCH 064/182] utility module: fix/improve colordiff call in diff The new call is compatible with colordiff v1.0.8 - v.1.0.15 (might be compatible with even earlier versions, but not tested), while the original one breaks down under v1.0.14 and v1.0.15. See https://github.com/daveewart/colordiff/issues/22. --- modules/utility/functions/diff | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/utility/functions/diff b/modules/utility/functions/diff index 8347899e2d..d5dd360bbe 100644 --- a/modules/utility/functions/diff +++ b/modules/utility/functions/diff @@ -8,7 +8,7 @@ function diff { if zstyle -t ':prezto:module:utility:diff' color; then if (( $+commands[colordiff] )); then - command diff --unified "$@" | colordiff --difftype diffu + command colordiff --unified "$@" elif (( $+commands[git] )); then git --no-pager diff --color=auto --no-ext-diff --no-index "$@" else From 909006638dbe57517352497806f8094dc52a8c22 Mon Sep 17 00:00:00 2001 From: Paul Melnikow Date: Wed, 5 Apr 2017 12:34:31 -0400 Subject: [PATCH 065/182] Bump license years and tidy up readme (#1273) --- LICENSE | 20 ++++++++++++++++++++ README.md | 24 +----------------------- 2 files changed, 21 insertions(+), 23 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..d4171477f2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2009-2011 Robby Russell and contributors +Copyright (c) 2011-2017 Sorin Ionescu and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE diff --git a/README.md b/README.md index 9724d5c563..05a40cdfb3 100644 --- a/README.md +++ b/README.md @@ -85,29 +85,7 @@ The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable. License ------- -(The MIT License) - -Copyright (c) 2009-2011 Robby Russell and contributors. - -Copyright (c) 2011-2015 Sorin Ionescu and contributors. - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +This project is licensed under the MIT License. [1]: http://www.zsh.org [2]: http://i.imgur.com/nrGV6pg.png "sorin theme" From e413ef5a97c5beff41ca7c2b93ae431ee295790a Mon Sep 17 00:00:00 2001 From: Griffin Yourick Date: Mon, 10 Apr 2017 14:23:49 -0400 Subject: [PATCH 066/182] Add support for iTerm2 v3 in tab function --- modules/osx/functions/tab | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/osx/functions/tab b/modules/osx/functions/tab index e95afbf5be..fb3b2479ce 100644 --- a/modules/osx/functions/tab +++ b/modules/osx/functions/tab @@ -39,3 +39,14 @@ EOF end tell EOF } + +[[ "$the_app" == 'iTerm2']] && { + osascript 2>/dev/null < Date: Mon, 10 Apr 2017 14:15:08 -0400 Subject: [PATCH 067/182] Use patterns from ruby module for initializing nodenv --- modules/node/init.zsh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/node/init.zsh b/modules/node/init.zsh index 2eb297c1f0..643c75217e 100644 --- a/modules/node/init.zsh +++ b/modules/node/init.zsh @@ -16,11 +16,12 @@ 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 - eval "$($HOME/.nodenv/bin/nodenv init -)" + path=("$HOME/.rbenv/bin $path") + eval "$(nodenv init - --no-rehash zsh)" # Load package manager installed nodenv into the shell session. -elif (( $+commands[brew] )) && [[ -d "$(brew --prefix nodenv 2>/dev/null)" ]]; then - eval "$($(brew --prefix nodenv)/bin/nodenv init -)" +elif (( $+commands[nodenv] )); then + eval "$(nodenv init - --no-rehash zsh)" # Return if requirements are not found. elif (( ! $+commands[node] )); then From 94708f6b50ed7bc904e2e28a08cf628b568305bc Mon Sep 17 00:00:00 2001 From: Griffin Yourick Date: Mon, 10 Apr 2017 14:40:43 -0400 Subject: [PATCH 068/182] Fix path in node module --- 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 643c75217e..46ab4411aa 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/.rbenv/bin $path") + path=("$HOME/.nodenv/bin $path") eval "$(nodenv init - --no-rehash zsh)" # Load package manager installed nodenv into the shell session. From ee249e50eedb86be7896b803ceb3156eb30a4856 Mon Sep 17 00:00:00 2001 From: nstCactus Date: Tue, 11 Apr 2017 13:37:12 +0200 Subject: [PATCH 069/182] FIXED: syntax error in osx module tab function --- modules/osx/functions/tab | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/osx/functions/tab b/modules/osx/functions/tab index fb3b2479ce..e0f2dc244f 100644 --- a/modules/osx/functions/tab +++ b/modules/osx/functions/tab @@ -40,7 +40,7 @@ EOF EOF } -[[ "$the_app" == 'iTerm2']] && { +[[ "$the_app" == 'iTerm2' ]] && { osascript 2>/dev/null < Date: Tue, 11 Apr 2017 15:12:09 -0700 Subject: [PATCH 070/182] Only try to run python-info if it exists for the paradox prompt --- modules/prompt/functions/prompt_paradox_setup | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/prompt/functions/prompt_paradox_setup b/modules/prompt/functions/prompt_paradox_setup index 7e9b9493f2..9544415176 100644 --- a/modules/prompt/functions/prompt_paradox_setup +++ b/modules/prompt/functions/prompt_paradox_setup @@ -107,7 +107,9 @@ function prompt_paradox_precmd { function prompt_paradox_preexec { _prompt_paradox_start_time="$SECONDS" - python-info + if (( $+functions[python-info] )); then + python-info + fi } function prompt_paradox_setup { From 60c433d4ce680ddb2ca899b460e3714728cb221c Mon Sep 17 00:00:00 2001 From: Matt Hamilton Date: Tue, 29 Sep 2015 11:42:55 -0400 Subject: [PATCH 071/182] Move common promptpwd code to external function --- modules/prompt/functions/prompt_damoekri_setup | 15 ++------------- modules/prompt/functions/prompt_paradox_setup | 15 ++------------- modules/prompt/functions/prompt_sorin_setup | 15 ++------------- modules/prompt/functions/promptpwd | 14 ++++++++++++++ 4 files changed, 20 insertions(+), 39 deletions(-) create mode 100644 modules/prompt/functions/promptpwd diff --git a/modules/prompt/functions/prompt_damoekri_setup b/modules/prompt/functions/prompt_damoekri_setup index 58c4d352b1..89e4d75836 100644 --- a/modules/prompt/functions/prompt_damoekri_setup +++ b/modules/prompt/functions/prompt_damoekri_setup @@ -11,23 +11,12 @@ # Load dependencies. pmodload 'helper' -function prompt_damoekri_pwd { - local pwd="${PWD/#$HOME/~}" - - if [[ "$pwd" == (#m)[/~] ]]; then - _prompt_damoekri_pwd="$MATCH" - unset MATCH - else - _prompt_damoekri_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}" - fi -} - -function prompt_damoekri_precmd { +prompt_damoekri_precmd() { setopt LOCAL_OPTIONS unsetopt XTRACE KSH_ARRAYS # Format PWD. - prompt_damoekri_pwd + _prompt_damoekri_pwd=$(promptpwd) # 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 9544415176..c1a808d7fa 100644 --- a/modules/prompt/functions/prompt_paradox_setup +++ b/modules/prompt/functions/prompt_paradox_setup @@ -59,18 +59,7 @@ function prompt_paradox_build_prompt { prompt_paradox_end_segment } -function prompt_paradox_pwd { - local pwd="${PWD/#$HOME/~}" - - if [[ "$pwd" == (#m)[/~] ]]; then - _prompt_paradox_pwd="$MATCH" - unset MATCH - else - _prompt_paradox_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}" - fi -} - -function prompt_paradox_print_elapsed_time { +prompt_paradox_print_elapsed_time() { local end_time=$(( SECONDS - _prompt_paradox_start_time )) local hours minutes seconds remainder @@ -94,7 +83,7 @@ function prompt_paradox_precmd { unsetopt XTRACE KSH_ARRAYS # Format PWD. - prompt_paradox_pwd + _prompt_paradox_pwd=$(promptpwd) # 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 e339dffea7..c4d12c343f 100644 --- a/modules/prompt/functions/prompt_sorin_setup +++ b/modules/prompt/functions/prompt_sorin_setup @@ -32,18 +32,7 @@ # Load dependencies. pmodload 'helper' -function prompt_sorin_pwd { - local pwd="${PWD/#$HOME/~}" - - if [[ "$pwd" == (#m)[/~] ]]; then - _prompt_sorin_pwd="$MATCH" - unset MATCH - else - _prompt_sorin_pwd="${${${${(@j:/:M)${(@s:/:)pwd}##.#?}:h}%/}//\%/%%}/${${pwd:t}//\%/%%}" - fi -} - -function prompt_sorin_git_info { +prompt_sorin_git_info() { if (( _prompt_sorin_precmd_async_pid > 0 )); then # Append Git status. if [[ -s "$_prompt_sorin_precmd_async_data" ]]; then @@ -77,7 +66,7 @@ function prompt_sorin_precmd { unsetopt XTRACE KSH_ARRAYS # Format PWD. - prompt_sorin_pwd + _prompt_sorin_pwd=$(promptpwd) # Define prompts. RPROMPT='${editor_info[overwrite]}%(?:: %F{1}⏎%f)${VIM:+" %B%F{6}V%f%b"}' diff --git a/modules/prompt/functions/promptpwd b/modules/prompt/functions/promptpwd new file mode 100644 index 0000000000..8a1b9094ed --- /dev/null +++ b/modules/prompt/functions/promptpwd @@ -0,0 +1,14 @@ +# prompt setup function common to many prompts +# moved to external function to reduce code redundancy + +local current_pwd="${PWD/#$HOME/~}" +local ret_directory + +if [[ "$current_pwd" == (#m)[/~] ]]; then + ret_directory="$MATCH" + unset MATCH +else + ret_directory="${${${${(@j:/:M)${(@s:/:)current_pwd}##.#?}:h}%/}//\%/%%}/${${current_pwd:t}//\%/%%}" +fi + +print "$ret_directory" From 8655cd543b517f66e31f1c37e20f5304d7f0fed7 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 13 Apr 2017 01:16:44 -0700 Subject: [PATCH 072/182] Ensure extendedglob is set in promptpwd --- modules/prompt/functions/promptpwd | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/prompt/functions/promptpwd b/modules/prompt/functions/promptpwd index 8a1b9094ed..b8fcc0cb41 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 +setopt localoptions extendedglob + local current_pwd="${PWD/#$HOME/~}" local ret_directory From 9a70a1675cc4e5e95da046d46095b5bc42ae393a Mon Sep 17 00:00:00 2001 From: Joel Kuzmarski Date: Tue, 9 Aug 2016 13:34:56 -0500 Subject: [PATCH 073/182] Remove manb from completion filename --- modules/osx/functions/{_manb_mand_manp => _mand_manp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename modules/osx/functions/{_manb_mand_manp => _mand_manp} (100%) diff --git a/modules/osx/functions/_manb_mand_manp b/modules/osx/functions/_mand_manp similarity index 100% rename from modules/osx/functions/_manb_mand_manp rename to modules/osx/functions/_mand_manp From 95036c908c414569c59bc9b8a97108fa922ea656 Mon Sep 17 00:00:00 2001 From: Solitude Date: Thu, 13 Apr 2017 01:54:52 -0700 Subject: [PATCH 074/182] Update fasd README with basic installation information --- modules/fasd/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/fasd/README.md b/modules/fasd/README.md index 7d22626cf4..8d3cca147e 100644 --- a/modules/fasd/README.md +++ b/modules/fasd/README.md @@ -12,6 +12,12 @@ module. The Prezto Fasd configuration differs from the default. The default aliases have been disabled. +Installation +------------ + +Since fasd is not an external module it needs to be installed. +`brew install fasd` + Aliases ------- From fb6f3f7ee96788fe19bf0cbf06ce59bcb1c28d40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Vantomme?= Date: Sat, 14 May 2016 18:06:22 +0200 Subject: [PATCH 075/182] Feat (aliases): add aliases for git flow --- modules/git/README.md | 74 +++++++++++++++++++++++++++++++++++++++++++ modules/git/alias.zsh | 63 ++++++++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+) diff --git a/modules/git/README.md b/modules/git/README.md index 37194126e2..81693f2378 100644 --- a/modules/git/README.md +++ b/modules/git/README.md @@ -97,6 +97,80 @@ Aliases are enabled by default. You can disable them with: - `gfm` fetches from and merges with another repository or local branch. - `gfr` fetches from and rebases on another repository or local branch. +### Flow + + - `gFi` is short for `git flow init` + +#### Feature + + - `gFf` is short for `git flow feature` + - `gFfl` is short for `git flow feature list` + - `gFfs` is short for `git flow feature start` + - `gFff` is short for `git flow feature finish` + - `gFfp` is short for `git flow feature publish` + - `gFft` is short for `git flow feature track` + - `gFfd` is short for `git flow feature diff` + - `gFfr` is short for `git flow feature rebase` + - `gFfc` is short for `git flow feature checkout` + - `gFfm` is short for `git flow feature pull` + - `gFfx` is short for `git flow feature delete` + +#### Bugfix + + - `gFb` is short for `git flow bugfix` + - `gFbl` is short for `git flow bugfix list` + - `gFbs` is short for `git flow bugfix start` + - `gFbf` is short for `git flow bugfix finish` + - `gFbp` is short for `git flow bugfix publish` + - `gFbt` is short for `git flow bugfix track` + - `gFbd` is short for `git flow bugfix diff` + - `gFbr` is short for `git flow bugfix rebase` + - `gFbc` is short for `git flow bugfix checkout` + - `gFbm` is short for `git flow bugfix pull` + - `gFbx` is short for `git flow bugfix delete` + +#### Release + + - `gFl` is short for `git flow release` + - `gFll` is short for `git flow release list` + - `gFls` is short for `git flow release start` + - `gFlf` is short for `git flow release finish` + - `gFlp` is short for `git flow release publish` + - `gFlt` is short for `git flow release track` + - `gFld` is short for `git flow release diff` + - `gFlr` is short for `git flow release rebase` + - `gFlc` is short for `git flow release checkout` + - `gFlm` is short for `git flow release pull` + - `gFlx` is short for `git flow release delete` + +#### Hotfix + + - `gFh` is short for `git flow hotfix` + - `gFhl` is short for `git flow hotfix list` + - `gFhs` is short for `git flow hotfix start` + - `gFhf` is short for `git flow hotfix finish` + - `gFhp` is short for `git flow hotfix publish` + - `gFht` is short for `git flow hotfix track` + - `gFhd` is short for `git flow hotfix diff` + - `gFhr` is short for `git flow hotfix rebase` + - `gFhc` is short for `git flow hotfix checkout` + - `gFhm` is short for `git flow hotfix pull` + - `gFhx` is short for `git flow hotfix delete` + +#### Support + + - `gFs` is short for `git flow support` + - `gFsl` is short for `git flow support list` + - `gFss` is short for `git flow support start` + - `gFsf` is short for `git flow support finish` + - `gFsp` is short for `git flow support publish` + - `gFst` is short for `git flow support track` + - `gFsd` is short for `git flow support diff` + - `gFsr` is short for `git flow support rebase` + - `gFsc` is short for `git flow support checkout` + - `gFsm` is short for `git flow support pull` + - `gFsx` is short for `git flow support delete` + ### Grep - `gg` displays lines matching a pattern. diff --git a/modules/git/alias.zsh b/modules/git/alias.zsh index 484551477d..06e47b1665 100644 --- a/modules/git/alias.zsh +++ b/modules/git/alias.zsh @@ -81,6 +81,69 @@ if ! zstyle -t ':prezto:module:git:alias' skip 'yes'; then alias gfm='git pull' alias gfr='git pull --rebase' + # Flow (F) + alias gFi='git flow init' + alias gFf='git flow feature' + alias gFb='git flow bugfix' + alias gFl='git flow release' + alias gFh='git flow hotfix' + alias gFs='git flow support' + + alias gFfl='git flow feature list' + alias gFfs='git flow feature start' + alias gFff='git flow feature finish' + alias gFfp='git flow feature publish' + alias gFft='git flow feature track' + alias gFfd='git flow feature diff' + alias gFfr='git flow feature rebase' + alias gFfc='git flow feature checkout' + alias gFfm='git flow feature pull' + alias gFfx='git flow feature delete' + + alias gFbl='git flow bugfix list' + alias gFbs='git flow bugfix start' + alias gFbf='git flow bugfix finish' + alias gFbp='git flow bugfix publish' + alias gFbt='git flow bugfix track' + alias gFbd='git flow bugfix diff' + alias gFbr='git flow bugfix rebase' + alias gFbc='git flow bugfix checkout' + alias gFbm='git flow bugfix pull' + alias gFbx='git flow bugfix delete' + + alias gFll='git flow release list' + alias gFls='git flow release start' + alias gFlf='git flow release finish' + alias gFlp='git flow release publish' + alias gFlt='git flow release track' + alias gFld='git flow release diff' + alias gFlr='git flow release rebase' + alias gFlc='git flow release checkout' + alias gFlm='git flow release pull' + alias gFlx='git flow release delete' + + alias gFhl='git flow hotfix list' + alias gFhs='git flow hotfix start' + alias gFhf='git flow hotfix finish' + alias gFhp='git flow hotfix publish' + alias gFht='git flow hotfix track' + alias gFhd='git flow hotfix diff' + alias gFhr='git flow hotfix rebase' + alias gFhc='git flow hotfix checkout' + alias gFhm='git flow hotfix pull' + alias gFhx='git flow hotfix delete' + + alias gFsl='git flow support list' + alias gFss='git flow support start' + alias gFsf='git flow support finish' + alias gFsp='git flow support publish' + alias gFst='git flow support track' + alias gFsd='git flow support diff' + alias gFsr='git flow support rebase' + alias gFsc='git flow support checkout' + alias gFsm='git flow support pull' + alias gFsx='git flow support delete' + # Grep (g) alias gg='git grep' alias ggi='git grep --ignore-case' From 1c0f95c08ebcc22231bb849cc6566243a0ad39e9 Mon Sep 17 00:00:00 2001 From: Eduard Zintz Date: Thu, 13 Apr 2017 11:25:45 +0200 Subject: [PATCH 076/182] Allow syntax highlighting pattern styles (#1192) --- modules/syntax-highlighting/init.zsh | 8 ++++++++ runcoms/zpreztorc | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/modules/syntax-highlighting/init.zsh b/modules/syntax-highlighting/init.zsh index 25cd96b674..52cc0c3624 100644 --- a/modules/syntax-highlighting/init.zsh +++ b/modules/syntax-highlighting/init.zsh @@ -26,3 +26,11 @@ for syntax_highlighting_style in "${(k)syntax_highlighting_styles[@]}"; do ZSH_HIGHLIGHT_STYLES[$syntax_highlighting_style]="$syntax_highlighting_styles[$syntax_highlighting_style]" done unset syntax_highlighting_style{s,} + +# Set pattern highlighting styles. +typeset -A syntax_pattern_styles +zstyle -a ':prezto:module:syntax-highlighting' pattern 'syntax_pattern_styles' +for syntax_pattern_style in "${(k)syntax_pattern_styles[@]}"; do + ZSH_HIGHLIGHT_PATTERNS[$syntax_pattern_style]="$syntax_pattern_styles[$syntax_pattern_style]" +done +unset syntax_pattern_style{s,} diff --git a/runcoms/zpreztorc b/runcoms/zpreztorc index cc88454822..8b2af26759 100644 --- a/runcoms/zpreztorc +++ b/runcoms/zpreztorc @@ -140,6 +140,10 @@ zstyle ':prezto:module:prompt' theme 'sorin' # 'builtin' 'bg=blue' \ # 'command' 'bg=blue' \ # 'function' 'bg=blue' +# +# Set syntax pattern styles. +# zstyle ':prezto:module:syntax-highlighting' pattern \ +# 'rm*-rf*' 'fg=white,bold,bg=red' # # Terminal From 5c0e68f75fe9d45ef352b29976265780d11763b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20L=C3=B6fgren?= Date: Thu, 13 Apr 2017 11:47:51 +0200 Subject: [PATCH 077/182] completion: Cap max-errors at 7 to avoid hanging (#953) 7 is pretty arbitrarily chosen, but seems like a reasonable tradeoff, at least the completion no longer shows symptoms of exponential time-growth when trying to complete something completely wrong. This fixes #946. --- modules/completion/init.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/completion/init.zsh b/modules/completion/init.zsh index 023a90e7d6..620a9b38e0 100644 --- a/modules/completion/init.zsh +++ b/modules/completion/init.zsh @@ -66,8 +66,9 @@ zstyle ':completion:*' completer _complete _match _approximate zstyle ':completion:*:match:*' original only zstyle ':completion:*:approximate:*' max-errors 1 numeric -# Increase the number of errors based on the length of the typed word. -zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)' +# Increase the number of errors based on the length of the typed word. But make +# sure to cap (at 7) the max-errors to avoid hanging. +zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3>7?7:($#PREFIX+$#SUFFIX)/3))numeric)' # Don't complete unavailable commands. zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))' From 2e20eb8571dde5bd3209441a69ec1ef589633738 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 13 Apr 2017 02:53:07 -0700 Subject: [PATCH 078/182] Add note about working around preexisting runcoms Closes #955 --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 05a40cdfb3..c7bf480962 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,12 @@ version is 4.3.17. done ``` + Note: If you already have any of the given config files, ln will error. In + simple cases you can add `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to + the bottom of your `.zshrc` to load prezto but keep your config intact. For + more complicated setups, it is recommended that you back up your original + configs and replace them with the provided prezto runcoms. + 4. Set Zsh as your default shell: `chsh -s /bin/zsh` From 7011031a871918aece5670deee32e53671ea66a8 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 13 Apr 2017 03:02:07 -0700 Subject: [PATCH 079/182] Don't use a deprecated argument as a python example Thanks to @jeffwidman for pointing this out Closes #1141 --- modules/python/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/python/README.md b/modules/python/README.md index d9497d6f5d..4047d0ff8e 100644 --- a/modules/python/README.md +++ b/modules/python/README.md @@ -56,10 +56,10 @@ is used. Replace *Developer* with your projects directory. The variable `$VIRTUALENVWRAPPER_VIRTUALENV_ARGS` tells virtualenvwrapper what arguments to pass to `virtualenv`. For example, set the value to -*--no-site-packages* to ensure that all new environments are isolated from the +*--system-site-packages* to ensure that all new environments have access to the system site-packages directory. - export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' + export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--system-site-packages' Aliases ------- From 7c64584629df83046b5489087d4b86f4e0850947 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20VANTOMME?= Date: Tue, 16 Feb 2016 10:47:57 +0100 Subject: [PATCH 080/182] Add bundle clean alias --- modules/ruby/init.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ruby/init.zsh b/modules/ruby/init.zsh index fd707d00f1..3f666c3e0b 100644 --- a/modules/ruby/init.zsh +++ b/modules/ruby/init.zsh @@ -53,6 +53,7 @@ alias rb='ruby' # Bundler if (( $+commands[bundle] )); then alias rbb='bundle' + alias rbbc='bundle clean' alias rbbe='bundle exec' alias rbbi='bundle install --path vendor/bundle' alias rbbl='bundle list' From bb168c588193c7f520405972500af8e69dd464b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20VANTOMME?= Date: Wed, 2 Mar 2016 09:28:47 +0100 Subject: [PATCH 081/182] Doc (ruby): add doc on bundle clean alias --- modules/ruby/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ruby/README.md b/modules/ruby/README.md index 1c955f5e63..372d00f1f5 100644 --- a/modules/ruby/README.md +++ b/modules/ruby/README.md @@ -63,6 +63,7 @@ Aliases ### Bundler - `rbb` manages ruby dependencies (`bundle`). + - `rbbc` cleans up unused gems in your bundler directory. - `rbbe` executes a script in the context of the current bundle. - `rbbi` installs the gems specified in the *Gemfile* in *vendor/bundle*. - `rbbI` installs the following: From 8a4333103dc990400a5d800a49f48418d6a53449 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20VANTOMME?= Date: Thu, 13 Apr 2017 12:14:23 +0200 Subject: [PATCH 082/182] Feat (docker): add docker aliases (#1147) Thanks to @malikoth and @saoula for their input. --- modules/docker/README.md | 190 +++++++++++++++++++++++++++++++++++++++ modules/docker/alias.zsh | 177 ++++++++++++++++++++++++++++++++++++ modules/docker/init.zsh | 57 ++++++++++++ 3 files changed, 424 insertions(+) create mode 100644 modules/docker/README.md create mode 100644 modules/docker/alias.zsh create mode 100644 modules/docker/init.zsh diff --git a/modules/docker/README.md b/modules/docker/README.md new file mode 100644 index 0000000000..335f77ad6a --- /dev/null +++ b/modules/docker/README.md @@ -0,0 +1,190 @@ +# ZSH Docker Aliases + +Defines [Docker][1] aliases and functions. + +## Aliases + +### Docker + +- `dk` is short for `docker` +- `dka` Attach to a running container +- `dkb` Build an image from a Dockerfile +- `dkd` Inspect changes on a container's filesystem +- `dkdf` Show docker filesystem usage +- `dke` Run a command in a running container +- `dkE` Run an interactive command in a running container +- `dkh` Show the history of an image +- `dki` List images +- `dkin` Return low-level information on a container, image or task +- `dkk` Kill a running container +- `dkl` Fetch the logs of a container +- `dkli` Log in to a Docker registry +- `dklo` Log out from a Docker registry +- `dkls` is alias for `dkps` +- `dkp` Pause all processes within one or more containers +- `dkP` Unpause all processes within one or more containers +- `dkpl` Pull an image or a repository from a registry +- `dkph` Push an image or a repository to a registry +- `dkps` List containers +- `dkpsa` List all containers (default lists just running) +- `dkr` Run a command in a new container +- `dkR` Run an interactive command in a new container and automatically remove the container when it exits +- `dkRe` like `dkR` and set entry point to `/bin/bash` +- `dkrm` Remove one or more containers +- `dkrmi` Remove one or more images +- `dkrmC` Clean up exited containers +- `dkrmI` Clean up dangling images +- `dkrmV` Clean up unused volumes ( Docker >= 1.9 ) +- `dkrn` Rename a container +- `dks` Start one or more stopped containers +- `dkS` Restart a container +- `dkss` Display a live stream of container(s) resource usage statistics +- `dksv` Save one or more images to a tar archive (streamed to STDOUT by default) +- `dkt` Tag an image into a repository +- `dktop` Display the running processes of a container +- `dkup` Update configuration of one or more containers +- `dkV` Manage Docker volumes +- `dkv` Show the Docker version information +- `dkw` Block until a container stops, then print its exit code +- `dkx` Stop a running container + +#### container (C) + +- `dkC` Manage containers +- `dkCa` Attach to a running container +- `dkCcp` Copy files/folders between a container and the local filesystem +- `dkCd` Inspect changes on a container's filesystem +- `dkCe` Run a command in a running container +- `dkCin` Display detailed information on one or more containers +- `dkCk` Kill one or more running containers +- `dkCl` Fetch the logs of a container +- `dkCls` List containers +- `dkCp` Pause all processes within one or more containers +- `dkCpr` Remove all stopped containers +- `dkCrn` Rename a container +- `dkCS` Restart one or more containers +- `dkCrm` Remove one or more containers +- `dkCr` Run a command in a new container +- `dkCR` Run an interactive command in a new container and automatically remove the container when it exits +- `dkCRe` like `dkCR` and set entry point to `/bin/bash` +- `dkCs` Start one or more stopped containers +- `dkCss` Display a live stream of container(s) resource usage statistics +- `dkCx` Stop one or more running containers +- `dkCtop` Display the running processes of a container +- `dkCP` Unpause all processes within one or more containers +- `dkCup` Update configuration of one or more containers +- `dkCw` Block until one or more containers stop, then print their exit codes + +#### image (I) + +- `dkI` Manage images +- `dkIb` Build an image from a Dockerfile +- `dkIh` Show the history of an image +- `dkIim` Import the contents from a tarball to create a filesystem image +- `dkIin` Display detailed information on one or more images +- `dkIls` List images +- `dkIpr` Remove unused images +- `dkIpl` Pull an image or a repository from a registry +- `dkIph` Push an image or a repository to a registry +- `dkIrm` Remove one or more images +- `dkIsv` Save one or more images to a tar archive (streamed to STDOUT by default) +- `dkIt` Tag an image into a repository + +#### volume (V) + +- `dkV` Manage volumes +- `dkVin` Display detailed information on one or more volumes +- `dkVls` List volumes +- `dkVpr` Remove all unused volumes +- `dkVrm` Remove one or more volumes + +#### network (N) + +- `dkN` Manage networks +- `dkNs` Connect a container to a network +- `dkNx` Disconnects a container from a network +- `dkNin` Displays detailed information on a network +- `dkNls` Lists all the networks created by the user +- `dkNpr` Remove all unused networks +- `dkNrm` Deletes one or more networks + +#### system (Y) + +- `dkY` Manage Docker +- `dkYdf` Show docker filesystem usage +- `dkYpr` Remove unused data + +#### stack (K) + +- `dkK` Manage Docker stacks +- `dkKls` List stacks +- `dkKps` List the tasks in the stack +- `dkKrm` Remove the stack + +#### swarm (W) + +- `dkW` Manage Docker Swarm + +### Docker Machine + +- `dkm` is short for `docker-machine` +- `dkma` Get or set the active machine +- `dkmcp` Copy files between machines +- `dkmd` Set up the default machine ; alowing you to use `dkme` without arguments +- `dkme` Set up the environment for the Docker client (eg: `dkme staging` to toggle to staging) +- `dkmin` Inspect information about a machine +- `dkmip` Get the IP address of a machine +- `dkmk` Kill a machine +- `dkmls` List machines +- `dkmpr` Re-provision existing machines +- `dkmps` is alias for `dkmls` +- `dkmrg` Regenerate TLS Certificates for a machine +- `dkmrm` Remove a machine +- `dkms` Start a machine +- `dkmsh` Log into or run a command on a machine with SSH +- `dkmst` Get the status of a machine +- `dkmS` Restart a machine +- `dkmu` Get the URL of a machine +- `dkmup` Upgrade a machine to the latest version of Docker +- `dkmV` Show the Docker Machine version or a machine docker version +- `dkmx` Stop a machine + +### Docker Compose + +- `dkc` is short for `docker-compose` +- `dkcb` Build or rebuild services +- `dkcB` Build or rebuild services and do not use cache when building the image +- `dkcd` Stop and remove containers, networks, images, and volumes +- `dkce` Execute a command in a running container +- `dkck` Kill containers +- `dkcl` View output from containers +- `dkcls` is alias for `dkcps` +- `dkcp` Pause services +- `dkcP` Unpause services +- `dkcpl` Pull service images +- `dkcph` Push service images +- `dkcps` List containers +- `dkcr` Run a one-off command +- `dkcR` Run a one-off command and remove container after run. +- `dkcrm` Remove stopped containers +- `dkcs` Start services +- `dkcsc` Set number of containers for a service +- `dkcS` Restart services +- `dkcu` Create and start containers +- `dkcU` Create and start containers in detached mode: + Run containers in the background, print new container names +- `dkcV` Show the Docker-Compose version information +- `dkcx` Stop services + +## Support + +If you're having problems, use the [Prezto issue tracker][2]. + +## Acknowledgements + +This module is a copy of [akarzim/zsh-docker-aliases][3] by [François Vantomme][4] (MIT License). + +[1]: https://www.docker.com/ +[2]: https://github.com/zsh-users/prezto/issues +[3]: https://github.com/akarzim/zsh-docker-aliases +[4]: https://github.com/akarzim diff --git a/modules/docker/alias.zsh b/modules/docker/alias.zsh new file mode 100644 index 0000000000..cdd9f7c825 --- /dev/null +++ b/modules/docker/alias.zsh @@ -0,0 +1,177 @@ +# +# Defines Docker aliases. +# +# Author: +# François Vantomme +# + +# +# Aliases +# + +# Docker +alias dk='docker' +alias dka='docker attach' +alias dkb='docker build' +alias dkd='docker diff' +alias dkdf='docker system df' +alias dke='docker exec' +alias dkE='docker exec -it' +alias dkh='docker history' +alias dki='docker images' +alias dkin='docker inspect' +alias dkim='docker import' +alias dkk='docker kill' +alias dkl='docker logs' +alias dkli='docker login' +alias dklo='docker logout' +alias dkls='docker ps' +alias dkp='docker pause' +alias dkP='docker unpause' +alias dkpl='docker pull' +alias dkph='docker push' +alias dkps='docker ps' +alias dkpsa='docker ps -a' +alias dkr='docker run' +alias dkR='docker run -it --rm' +alias dkRe='docker run -it --rm --entrypoint /bin/bash' +alias dkRM='docker system prune' +alias dkrm='docker rm' +alias dkrmi='docker rmi' +alias dkrn='docker rename' +alias dks='docker start' +alias dkS='docker restart' +alias dkss='docker stats' +alias dksv='docker save' +alias dkt='docker tag' +alias dktop='docker top' +alias dkup='docker update' +alias dkV='docker volume' +alias dkv='docker version' +alias dkw='docker wait' +alias dkx='docker stop' + +## Container (C) +alias dkC='docker container' +alias dkCa='docker container attach' +alias dkCcp='docker container cp' +alias dkCd='docker container diff' +alias dkCe='docker container exec' +alias dkCin='docker container inspect' +alias dkCk='docker container kill' +alias dkCl='docker container logs' +alias dkCls='docker container ls' +alias dkCp='docker container pause' +alias dkCpr='docker container prune' +alias dkCrn='docker container rename' +alias dkCS='docker container restart' +alias dkCrm='docker container rm' +alias dkCr='docker container run' +alias dkCR='docker container run -it --rm' +alias dkCRe='docker container run -it --rm --entrypoint /bin/bash' +alias dkCs='docker container start' +alias dkCss='docker container stats' +alias dkCx='docker container stop' +alias dkCtop='docker container top' +alias dkCP='docker container unpause' +alias dkCup='docker container update' +alias dkCw='docker container wait' + +## Image (I) +alias dkI='docker image' +alias dkIb='docker image build' +alias dkIh='docker image history' +alias dkIim='docker image import' +alias dkIin='docker image inspect' +alias dkIls='docker image ls' +alias dkIpr='docker image prune' +alias dkIpl='docker image pull' +alias dkIph='docker image push' +alias dkIrm='docker image rm' +alias dkIsv='docker image save' +alias dkIt='docker image tag' + +## Volume (V) +alias dkV='docker volume' +alias dkVin='docker volume inspect' +alias dkVls='docker volume ls' +alias dkVpr='docker volume prune' +alias dkVrm='docker volume rm' + +## Network (N) +alias dkN='docker network' +alias dkNs='docker network connect' +alias dkNx='docker network disconnect' +alias dkNin='docker network inspect' +alias dkNls='docker network ls' +alias dkNpr='docker network prune' +alias dkNrm='docker network rm' + +## System (Y) +alias dkY='docker system' +alias dkYdf='docker system df' +alias dkYpr='docker system prune' + +## Stack (K) +alias dkK='docker stack' +alias dkKls='docker stack ls' +alias dkKps='docker stack ps' +alias dkKrm='docker stack rm' + +## Swarm (W) +alias dkW='docker swarm' + +## CleanUp (rm) +# Clean up exited containers (docker < 1.13) +alias dkrmC='docker rm $(docker ps -qaf status=exited)' +# Clean up dangling images (docker < 1.13) +alias dkrmI='docker rmi $(docker images -qf dangling=true)' +# Clean up dangling volumes (docker < 1.13) +alias dkrmV='docker volume rm $(docker volume ls -qf dangling=true)' + + +# Docker Machine (m) +alias dkm='docker-machine' +alias dkma='docker-machine active' +alias dkmcp='docker-machine scp' +alias dkmin='docker-machine inspect' +alias dkmip='docker-machine ip' +alias dkmk='docker-machine kill' +alias dkmls='docker-machine ls' +alias dkmpr='docker-machine provision' +alias dkmps='docker-machine ps' +alias dkmrg='docker-machine regenerate-certs' +alias dkmrm='docker-machine rm' +alias dkms='docker-machine start' +alias dkmsh='docker-machine ssh' +alias dkmst='docker-machine status' +alias dkmS='docker-machine restart' +alias dkmu='docker-machine url' +alias dkmup='docker-machine upgrade' +alias dkmv='docker-machine version' +alias dkmx='docker-machine stop' + +# Docker Compose (c) +alias dkc='docker-compose' +alias dkcb='docker-compose build' +alias dkcB='docker-compose build --no-cache' +alias dkcd='docker-compose down' +alias dkce='docker-compose exec' +alias dkck='docker-compose kill' +alias dkcl='docker-compose logs' +alias dkcls='docker-compose ps' +alias dkcp='docker-compose pause' +alias dkcP='docker-compose unpause' +alias dkcpl='docker-compose pull' +alias dkcph='docker-compose push' +alias dkcps='docker-compose ps' +alias dkcr='docker-compose run' +alias dkcR='docker-compose run --rm' +alias dkcrm='docker-compose rm' +alias dkcs='docker-compose start' +alias dkcsc='docker-compose scale' +alias dkcS='docker-compose restart' +alias dkcu='docker-compose up' +alias dkcU='docker-compose up -d' +alias dkcv='docker-compose version' +alias dkcx='docker-compose stop' diff --git a/modules/docker/init.zsh b/modules/docker/init.zsh new file mode 100644 index 0000000000..8ad6bfddf9 --- /dev/null +++ b/modules/docker/init.zsh @@ -0,0 +1,57 @@ +# +# Defines Docker aliases. +# +# Author: +# François Vantomme +# + +# Return if requirements are not found. +if (( ! $+commands[docker] )); then + return 1 +fi + +# +# Functions +# + +# Set Docker Machine environment +function dkme { + if (( ! $+commands[docker-machine] )); then + return 1 + fi + + eval $(docker-machine env $1) +} + +# Set Docker Machine default machine +function dkmd { + if (( ! $+commands[docker-machine] )); then + return 1 + fi + + pushd ~/.docker/machine/machines + + if [[ ! -d $1 ]]; then + echo "Docker machine '$1' does not exists. Abort." + popd + return 1 + fi + + if [[ -L default ]]; then + eval $(rm -f default) + elif [[ -d default ]]; then + echo "A default machine already exists. Abort." + popd + return 1 + elif [[ -e default ]]; then + echo "A file named 'default' already exists. Abort." + popd + return 1 + fi + + eval $(ln -s $1 default) + popd +} + +# Source module files. +source "${0:h}/alias.zsh" From d035e4cf1efe1d66d73c5eab54016bcf507eb4c9 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 13 Apr 2017 03:27:59 -0700 Subject: [PATCH 083/182] Fix indentation in README --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c7bf480962..fee70a492b 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,11 @@ version is 4.3.17. done ``` - Note: If you already have any of the given config files, ln will error. In - simple cases you can add `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to - the bottom of your `.zshrc` to load prezto but keep your config intact. For - more complicated setups, it is recommended that you back up your original - configs and replace them with the provided prezto runcoms. + Note: If you already have any of the given config files, ln will error. In + simple cases you can add `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to + the bottom of your `.zshrc` to load prezto but keep your config intact. For + more complicated setups, it is recommended that you back up your original + configs and replace them with the provided prezto runcoms. 4. Set Zsh as your default shell: From e606b09c9ee9c798a721d7e52fc10bf15514efca Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Thu, 13 Apr 2017 04:05:16 -0700 Subject: [PATCH 084/182] Update is-callable to also check builtins Fixes #1037 --- modules/helper/init.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/helper/init.zsh b/modules/helper/init.zsh index 9d792186d4..328bed4f71 100644 --- a/modules/helper/init.zsh +++ b/modules/helper/init.zsh @@ -12,7 +12,7 @@ function is-autoloadable { # Checks if a name is a command, function, or alias. function is-callable { - (( $+commands[$1] )) || (( $+functions[$1] )) || (( $+aliases[$1] )) + (( $+commands[$1] || $+functions[$1] || $+aliases[$1] || $+builtins[$1] )) } # Checks a boolean variable for "true". From 19d11ab1d057544d67a0c12172cbf28291bcc62d Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sat, 15 Apr 2017 01:14:09 -0700 Subject: [PATCH 085/182] Add code style to CONTRIBUTING.md Closes #1296 --- CONTRIBUTING.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index eec4c165b7..79d23f15fa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,6 +23,17 @@ improve its performance, do not hesitate to fork and send pull requests. - Open a [pull request][4] that relates to but one subject with a clear title and description in grammatically correct, complete sentences. +#### Code Style + + - Indent using 2 spaces. No tabs. + - Put `; do` and `; then` on the same line as the `while`, `for` or `if`. + - 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. + #### Modules - A *README.md* must be present. From a8ce3da782903528d3bbd94b7525464c74109992 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sat, 15 Apr 2017 01:36:15 -0700 Subject: [PATCH 086/182] Add note to CONTRIBUTING.md about zstyle --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 79d23f15fa..5079e6419e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,6 +33,7 @@ improve its performance, do not hesitate to fork and send pull requests. - Global variables should be upper cased. - Use `$(command)` instead of backticks. - Avoid `eval` if possible. + - Prefer `zstyle` over environment variables for configuration. #### Modules From a622652f7327b2d97ba09344404f0a9052f60692 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sat, 15 Apr 2017 01:45:46 -0700 Subject: [PATCH 087/182] Add initial issue and pull request templates --- .github/ISSUE_TEMPLATE.md | 26 ++++++++++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 11 +++++++++++ 2 files changed, 37 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000..5a65a918e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,26 @@ +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 + +1. [First Step] +2. [Second Step] +3. [and so on...] + +### Versions + + - Prezto commit: + - ZSH version: + - OS information: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..10326d6213 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,11 @@ +Please be sure to check out our [contributing +guidelines](https://github.com/sorin-ionescu/prezto/blob/master/CONTRIBUTING.md) +before submitting your pull request. + +Fixes # + +## Proposed Changes + + - + - + - From 40853f23c2658f63105e3d8c72e510f95ef98fbe Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sat, 15 Apr 2017 01:47:58 -0700 Subject: [PATCH 088/182] Remove additional newlines in issue and pull request templates --- .github/ISSUE_TEMPLATE.md | 3 +-- .github/PULL_REQUEST_TEMPLATE.md | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 5a65a918e0..444379c1a9 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,5 +1,4 @@ -Please check if a similar issue already exists or has been closed before before -opening your issue. +Please check if a similar issue already exists or has been closed before before opening your issue. ### Description diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 10326d6213..2b2f70bfb9 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,6 +1,4 @@ -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 38f0d2f34e84ec3d02c589573a8e097d1807e762 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sat, 15 Apr 2017 14:06:05 -0700 Subject: [PATCH 089/182] Rework diff function This removes --unified from the default options to make it possible to pass -y without worrying about conflicting output formats. diffu has also been added as an alias to make it easier to get output as a unified diff. Fixes #1231 --- modules/utility/functions/diff | 8 +++----- modules/utility/init.zsh | 1 + 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/utility/functions/diff b/modules/utility/functions/diff index d5dd360bbe..51806e81b7 100644 --- a/modules/utility/functions/diff +++ b/modules/utility/functions/diff @@ -8,14 +8,12 @@ function diff { if zstyle -t ':prezto:module:utility:diff' color; then if (( $+commands[colordiff] )); then - command colordiff --unified "$@" - elif (( $+commands[git] )); then - git --no-pager diff --color=auto --no-ext-diff --no-index "$@" + command colordiff "$@" else - command diff --unified "$@" + command diff "$@" fi else - command diff --unified "$@" + command diff "$@" fi } diff --git a/modules/utility/init.zsh b/modules/utility/init.zsh index 961d917dc6..34ff578d4f 100644 --- a/modules/utility/init.zsh +++ b/modules/utility/init.zsh @@ -49,6 +49,7 @@ alias sftp='noglob sftp' 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" From 600b4cc9e6246724ac6c8965296b638a78962ad3 Mon Sep 17 00:00:00 2001 From: Kaleb Elwert Date: Sat, 15 Apr 2017 14:16:15 -0700 Subject: [PATCH 090/182] Add missing alias to utility README --- modules/utility/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/utility/README.md b/modules/utility/README.md index 16b4317c5d..2d276d6e30 100644 --- a/modules/utility/README.md +++ b/modules/utility/README.md @@ -66,6 +66,7 @@ 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. From c38c2dd90910e808bbad02dfff269a790e5111f9 Mon Sep 17 00:00:00 2001 From: Patrick Bos Date: Sat, 15 Apr 2017 16:44:05 -0700 Subject: [PATCH 091/182] Move python-info call in paradox from preexec to precmd --- modules/prompt/functions/prompt_paradox_setup | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/prompt/functions/prompt_paradox_setup b/modules/prompt/functions/prompt_paradox_setup index c1a808d7fa..c5a8751568 100644 --- a/modules/prompt/functions/prompt_paradox_setup +++ b/modules/prompt/functions/prompt_paradox_setup @@ -8,6 +8,7 @@ # Isaac Wolkerstorfer # Jeff Sandberg # Sorin Ionescu +# Patrick Bos # # Screenshots: # http://i.imgur.com/0XIWX.png @@ -90,15 +91,17 @@ function prompt_paradox_precmd { git-info fi + # Get Python environment information. + if (( $+functions[python-info] )); then + python-info + fi + # Calculate and print the elapsed time. prompt_paradox_print_elapsed_time } function prompt_paradox_preexec { _prompt_paradox_start_time="$SECONDS" - if (( $+functions[python-info] )); then - python-info - fi } function prompt_paradox_setup { From 7242b4ed49f83d0ad905a1a72d405d895ad56215 Mon Sep 17 00:00:00 2001 From: Khai Do Date: Mon, 17 Apr 2017 22:04:28 -0700 Subject: [PATCH 092/182] 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 093/182] 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 094/182] 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 095/182] 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 096/182] 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 097/182] 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 098/182] 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 099/182] 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 100/182] 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 101/182] 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 102/182] 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 103/182] 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 104/182] 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 105/182] 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 106/182] 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 107/182] 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 108/182] 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 109/182] 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 110/182] 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 111/182] 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 112/182] 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 113/182] 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 114/182] 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 115/182] 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 116/182] 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 117/182] 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 118/182] 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 119/182] 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 120/182] 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 121/182] 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 122/182] [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 123/182] [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 124/182] [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 125/182] [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 126/182] 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 127/182] [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 128/182] [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 129/182] [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 130/182] 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 131/182] [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 132/182] [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 133/182] 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 134/182] 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 135/182] [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 136/182] [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 137/182] 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 138/182] 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 139/182] [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 140/182] 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 141/182] [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 142/182] 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 143/182] 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 144/182] [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 145/182] [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 146/182] [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 147/182] [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 148/182] 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 149/182] 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 150/182] 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 151/182] 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 152/182] 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 153/182] 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 154/182] 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 155/182] 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 156/182] 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 157/182] [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 158/182] 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 159/182] 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 160/182] [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 161/182] [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 162/182] 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 163/182] [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 164/182] [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 165/182] [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 166/182] [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 167/182] [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 168/182] [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 169/182] [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 170/182] 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 171/182] [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 172/182] [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 173/182] 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 174/182] 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 175/182] 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 176/182] 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 177/182] 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 178/182] [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 179/182] [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 180/182] [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 181/182] 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 182/182] 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