From 0744acd663216b8e1c0c75878c166d53684d75bc Mon Sep 17 00:00:00 2001 From: Jim Hester Date: Thu, 28 Feb 2013 10:28:08 -0500 Subject: [PATCH 01/12] Update to latest per-directory-history See [https://github.com/jimhester/per-directory-history] --- plugins/per-directory-history/README.md | 56 +++++++ .../per-directory-history.plugin.zsh | 150 +----------------- .../per-directory-history.zsh | 149 +++++++++++++++++ 3 files changed, 206 insertions(+), 149 deletions(-) create mode 100644 plugins/per-directory-history/README.md mode change 100644 => 120000 plugins/per-directory-history/per-directory-history.plugin.zsh create mode 100644 plugins/per-directory-history/per-directory-history.zsh diff --git a/plugins/per-directory-history/README.md b/plugins/per-directory-history/README.md new file mode 100644 index 000000000..d8ff93dc0 --- /dev/null +++ b/plugins/per-directory-history/README.md @@ -0,0 +1,56 @@ +[Per-Directory-History][6] +========================= + +Per directory history for zsh, as well as global history, and the +ability to toggle between them with ^G. + +This is a implementation of per directory history for zsh, some +implementations of which exist in bash[1][],[2][]. It also implements +a per-directory-history-toggle-history function to change from using the +directory history to using the global history. In both cases the history is +always saved to both the global history and the directory history, so the +toggle state will not effect the saved histories. Being able to switch +between global and directory histories on the fly is a novel feature as far +as I am aware. + +This is a standalone repository for the script, however it is also included in +[oh-my-zsh][4] as a plugin. + +---------------------------------------------------------------------------- +Usage +---------------------------------------------------------------------------- + +1. Load this script into your interactive ZSH session: + + % source zsh-per-directory-history.zsh + +2. The default mode if per directory history, interact with your history as normal. + +3. Press ^G (the Control and G keys simultaneously) to toggle between local + and global histories. + + + +------------------------------------------------------------------------------- +Configuration +------------------------------------------------------------------------------- + +* HISTORY_BASE a global variable that defines the base directory in which the + directory histories are stored +* per-directory-history-toggle-history is the function to toggle the history + +------------------------------------------------------------------------------- +History +------------------------------------------------------------------------------- + +The idea/inspiration for a per directory history is from [Stewart MacArthur][1] +and [Dieter][2], the implementation idea is from [Bart Schaefer][3]. The +implementation is by [Jim Hester][5] in September 2012. + +[1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html +[2]: http://dieter.plaetinck.be/per_directory_bash +[3]: http://www.zsh.org/mla/users/1997/msg00226.html +[4]: https://github.com/robbyrussell/oh-my-zsh +[5]: http://jimhester.com +[6]: http://github.com/jimhester/per-directory-history + diff --git a/plugins/per-directory-history/per-directory-history.plugin.zsh b/plugins/per-directory-history/per-directory-history.plugin.zsh deleted file mode 100644 index 61e8b5a62..000000000 --- a/plugins/per-directory-history/per-directory-history.plugin.zsh +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env zsh -# -# This is a implementation of per directory history for zsh, some -# implementations of which exist in bash[1,2]. It also implements -# a per-directory-history-toggle-history function to change from using the -# directory history to using the global history. In both cases the history is -# always saved to both the global history and the directory history, so the -# toggle state will not effect the saved histories. Being able to switch -# between global and directory histories on the fly is a novel feature as far -# as I am aware. -# -#------------------------------------------------------------------------------- -# Configuration -#------------------------------------------------------------------------------- -# -# HISTORY_BASE a global variable that defines the base directory in which the -# directory histories are stored -# -#------------------------------------------------------------------------------- -# History -#------------------------------------------------------------------------------- -# -# The idea/inspiration for a per directory history is from Stewart MacArthur[1] -# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh -# mailing list[3]. The implementation is by Jim Hester in September 2012. -# -# [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html -# [2]: http://dieter.plaetinck.be/per_directory_bash -# [3]: http://www.zsh.org/mla/users/1997/msg00226.html -# -################################################################################ -# -# Copyright (c) 2012 Jim Hester -# -# This software is provided 'as-is', without any express or implied warranty. -# In no event will the authors be held liable for any damages arising from the -# use of this software. -# -# Permission is granted to anyone to use this software for any purpose, -# including commercial applications, and to alter it and redistribute it -# freely, subject to the following restrictions: -# -# 1. The origin of this software must not be misrepresented; you must not claim -# that you wrote the original software. If you use this software in a product, -# an acknowledgment in the product documentation would be appreciated but is -# not required. -# -# 2. Altered source versions must be plainly marked as such, and must not be -# misrepresented as being the original software. -# -# 3. This notice may not be removed or altered from any source distribution.. -# -################################################################################ - -#------------------------------------------------------------------------------- -# configuration, the base under which the directory histories are stored -#------------------------------------------------------------------------------- - -[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history" - -#------------------------------------------------------------------------------- -# toggle global/directory history used for searching - ctrl-G by default -#------------------------------------------------------------------------------- - -function per-directory-history-toggle-history() { - if [[ $_per_directory_history_is_global == true ]]; then - _per-directory-history-set-directory-history - print "\nusing local history\n" - else - _per-directory-history-set-global-history - print "\nusing global history\n" - fi - zle .push-line - zle .accept-line -} - -autoload per-directory-history-toggle-history -zle -N per-directory-history-toggle-history -bindkey '^G' per-directory-history-toggle-history - -#------------------------------------------------------------------------------- -# implementation details -#------------------------------------------------------------------------------- - -_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history" - -function _per-directory-history-change-directory() { - _per_directory_history_directory="$HISTORY_BASE${PWD:A}/history" - mkdir -p ${_per_directory_history_directory:h} - if [[ $_per_directory_history_is_global == false ]]; then - #save to the global history - fc -AI $HISTFILE - #save history to previous file - local prev="$HISTORY_BASE${OLDPWD:A}/history" - mkdir -p ${prev:h} - fc -AI $prev - - #discard previous directory's history - local original_histsize=$HISTSIZE - HISTSIZE=0 - HISTSIZE=$original_histsize - - #read history in new file - if [[ -e $_per_directory_history_directory ]]; then - fc -R $_per_directory_history_directory - fi - fi -} - -function _per-directory-history-addhistory() { - print -sr -- ${1%%$'\n'} - fc -p $_per_directory_history_directory -} - - -function _per-directory-history-set-directory-history() { - if [[ $_per_directory_history_is_global == true ]]; then - fc -AI $HISTFILE - local original_histsize=$HISTSIZE - HISTSIZE=0 - HISTSIZE=$original_histsize - if [[ -e "$_per_directory_history_directory" ]]; then - fc -R "$_per_directory_history_directory" - fi - fi - _per_directory_history_is_global=false -} -function _per-directory-history-set-global-history() { - if [[ $_per_directory_history_is_global == false ]]; then - fc -AI $_per_directory_history_directory - local original_histsize=$HISTSIZE - HISTSIZE=0 - HISTSIZE=$original_histsize - if [[ -e "$HISTFILE" ]]; then - fc -R "$HISTFILE" - fi - fi - _per_directory_history_is_global=true -} - - -#add functions to the exec list for chpwd and zshaddhistory -chpwd_functions=(${chpwd_functions[@]} "_per-directory-history-change-directory") -zshaddhistory_functions=(${zshaddhistory_functions[@]} "_per-directory-history-addhistory") - -#start in directory mode -mkdir -p ${_per_directory_history_directory:h} -_per_directory_history_is_global=true -_per-directory-history-set-directory-history diff --git a/plugins/per-directory-history/per-directory-history.plugin.zsh b/plugins/per-directory-history/per-directory-history.plugin.zsh new file mode 120000 index 000000000..142d9541d --- /dev/null +++ b/plugins/per-directory-history/per-directory-history.plugin.zsh @@ -0,0 +1 @@ +per-directory-history.zsh \ No newline at end of file diff --git a/plugins/per-directory-history/per-directory-history.zsh b/plugins/per-directory-history/per-directory-history.zsh new file mode 100644 index 000000000..d50009080 --- /dev/null +++ b/plugins/per-directory-history/per-directory-history.zsh @@ -0,0 +1,149 @@ +#!/usr/bin/env zsh +# +# This is a implementation of per directory history for zsh, some +# implementations of which exist in bash[1,2]. It also implements +# a per-directory-history-toggle-history function to change from using the +# directory history to using the global history. In both cases the history is +# always saved to both the global history and the directory history, so the +# toggle state will not effect the saved histories. Being able to switch +# between global and directory histories on the fly is a novel feature as far +# as I am aware. +# +#------------------------------------------------------------------------------- +# Configuration +#------------------------------------------------------------------------------- +# +# HISTORY_BASE a global variable that defines the base directory in which the +# directory histories are stored +# +#------------------------------------------------------------------------------- +# History +#------------------------------------------------------------------------------- +# +# The idea/inspiration for a per directory history is from Stewart MacArthur[1] +# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh +# mailing list[3]. The implementation is by Jim Hester in September 2012. +# +# [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html +# [2]: http://dieter.plaetinck.be/per_directory_bash +# [3]: http://www.zsh.org/mla/users/1997/msg00226.html +# +################################################################################ +# +# Copyright (c) 2012 Jim Hester +# +# This software is provided 'as-is', without any express or implied warranty. +# In no event will the authors be held liable for any damages arising from the +# use of this software. +# +# Permission is granted to anyone to use this software for any purpose, +# including commercial applications, and to alter it and redistribute it +# freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not claim +# that you wrote the original software. If you use this software in a product, +# an acknowledgment in the product documentation would be appreciated but is +# not required. +# +# 2. Altered source versions must be plainly marked as such, and must not be +# misrepresented as being the original software. +# +# 3. This notice may not be removed or altered from any source distribution.. +# +################################################################################ + +#------------------------------------------------------------------------------- +# configuration, the base under which the directory histories are stored +#------------------------------------------------------------------------------- + +[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history" + +#------------------------------------------------------------------------------- +# toggle global/directory history used for searching - ctrl-G by default +#------------------------------------------------------------------------------- + +function per-directory-history-toggle-history() { + if [[ $_per_directory_history_is_global == true ]]; then + _per-directory-history-set-directory-history + print -n "\nusing local history" + else + _per-directory-history-set-global-history + print -n "\nusing global history" + fi + zle .push-line + zle .accept-line +} + +autoload per-directory-history-toggle-history +zle -N per-directory-history-toggle-history +bindkey '^G' per-directory-history-toggle-history + +#------------------------------------------------------------------------------- +# implementation details +#------------------------------------------------------------------------------- + +_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history" + +function _per-directory-history-change-directory() { + _per_directory_history_directory="$HISTORY_BASE${PWD:A}/history" + mkdir -p ${_per_directory_history_directory:h} + if [[ $_per_directory_history_is_global == false ]]; then + #save to the global history + fc -AI $HISTFILE + #save history to previous file + local prev="$HISTORY_BASE${OLDPWD:A}/history" + mkdir -p ${prev:h} + fc -AI $prev + + #discard previous directory's history + local original_histsize=$HISTSIZE + HISTSIZE=0 + HISTSIZE=$original_histsize + + #read history in new file + if [[ -e $_per_directory_history_directory ]]; then + fc -R $_per_directory_history_directory + fi + fi +} + +function _per-directory-history-addhistory() { + print -sr -- ${1%%$'\n'} + fc -a -p $_per_directory_history_directory +} + + +function _per-directory-history-set-directory-history() { + if [[ $_per_directory_history_is_global == true ]]; then + fc -AI $HISTFILE + local original_histsize=$HISTSIZE + HISTSIZE=0 + HISTSIZE=$original_histsize + if [[ -e "$_per_directory_history_directory" ]]; then + fc -R "$_per_directory_history_directory" + fi + fi + _per_directory_history_is_global=false +} +function _per-directory-history-set-global-history() { + if [[ $_per_directory_history_is_global == false ]]; then + fc -AI $_per_directory_history_directory + local original_histsize=$HISTSIZE + HISTSIZE=0 + HISTSIZE=$original_histsize + if [[ -e "$HISTFILE" ]]; then + fc -R "$HISTFILE" + fi + fi + _per_directory_history_is_global=true +} + + +#add functions to the exec list for chpwd and zshaddhistory +chpwd_functions=(${chpwd_functions[@]} "_per-directory-history-change-directory") +zshaddhistory_functions=(${zshaddhistory_functions[@]} "_per-directory-history-addhistory") + +#start in directory mode +mkdir -p ${_per_directory_history_directory:h} +_per_directory_history_is_global=true +_per-directory-history-set-directory-history From ac6f1a045c5511cda60167ab978cf127c370d955 Mon Sep 17 00:00:00 2001 From: Jim Hester Date: Wed, 13 Mar 2013 13:07:32 -0400 Subject: [PATCH 02/12] Update to latest per-directory-history --- .../per-directory-history.zsh | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/plugins/per-directory-history/per-directory-history.zsh b/plugins/per-directory-history/per-directory-history.zsh index d50009080..bdee341bd 100644 --- a/plugins/per-directory-history/per-directory-history.zsh +++ b/plugins/per-directory-history/per-directory-history.zsh @@ -1,27 +1,27 @@ #!/usr/bin/env zsh # -# This is a implementation of per directory history for zsh, some -# implementations of which exist in bash[1,2]. It also implements -# a per-directory-history-toggle-history function to change from using the -# directory history to using the global history. In both cases the history is -# always saved to both the global history and the directory history, so the -# toggle state will not effect the saved histories. Being able to switch -# between global and directory histories on the fly is a novel feature as far +# This is a implementation of per directory history for zsh, some +# implementations of which exist in bash[1,2]. It also implements +# a per-directory-history-toggle-history function to change from using the +# directory history to using the global history. In both cases the history is +# always saved to both the global history and the directory history, so the +# toggle state will not effect the saved histories. Being able to switch +# between global and directory histories on the fly is a novel feature as far # as I am aware. # #------------------------------------------------------------------------------- # Configuration #------------------------------------------------------------------------------- # -# HISTORY_BASE a global variable that defines the base directory in which the +# HISTORY_BASE a global variable that defines the base directory in which the # directory histories are stored # #------------------------------------------------------------------------------- # History #------------------------------------------------------------------------------- # -# The idea/inspiration for a per directory history is from Stewart MacArthur[1] -# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh +# The idea/inspiration for a per directory history is from Stewart MacArthur[1] +# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh # mailing list[3]. The implementation is by Jim Hester in September 2012. # # [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html @@ -32,20 +32,20 @@ # # Copyright (c) 2012 Jim Hester # -# This software is provided 'as-is', without any express or implied warranty. -# In no event will the authors be held liable for any damages arising from the +# This software is provided 'as-is', without any express or implied warranty. +# In no event will the authors be held liable for any damages arising from the # use of this software. # -# Permission is granted to anyone to use this software for any purpose, -# including commercial applications, and to alter it and redistribute it +# Permission is granted to anyone to use this software for any purpose, +# including commercial applications, and to alter it and redistribute it # freely, subject to the following restrictions: # -# 1. The origin of this software must not be misrepresented; you must not claim -# that you wrote the original software. If you use this software in a product, -# an acknowledgment in the product documentation would be appreciated but is +# 1. The origin of this software must not be misrepresented; you must not claim +# that you wrote the original software. If you use this software in a product, +# an acknowledgment in the product documentation would be appreciated but is # not required. # -# 2. Altered source versions must be plainly marked as such, and must not be +# 2. Altered source versions must be plainly marked as such, and must not be # misrepresented as being the original software. # # 3. This notice may not be removed or altered from any source distribution.. @@ -99,7 +99,7 @@ function _per-directory-history-change-directory() { local original_histsize=$HISTSIZE HISTSIZE=0 HISTSIZE=$original_histsize - + #read history in new file if [[ -e $_per_directory_history_directory ]]; then fc -R $_per_directory_history_directory @@ -108,8 +108,8 @@ function _per-directory-history-change-directory() { } function _per-directory-history-addhistory() { - print -sr -- ${1%%$'\n'} - fc -a -p $_per_directory_history_directory + print -Sr -- ${1%%$'\n'} + fc -p $_per_directory_history_directory } From 217d8f0540a41b2927caf986561e45634fa1952a Mon Sep 17 00:00:00 2001 From: "Huang, Tao" Date: Thu, 6 Feb 2014 17:29:33 +0800 Subject: [PATCH 03/12] `fc -l 1` instead of `history` in zsh_stats #2501 $HIST_STAMP breaks zsh_stats. see #2501 --- lib/functions.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/functions.zsh b/lib/functions.zsh index aaf8a03e3..fda84a953 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -1,5 +1,5 @@ function zsh_stats() { - history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20 + fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20 } function uninstall_oh_my_zsh() { From c563fe95fbf58721caa7de0ffe5d8117a6ada51a Mon Sep 17 00:00:00 2001 From: Florian Franzen Date: Sun, 9 Feb 2014 14:06:58 +0100 Subject: [PATCH 04/12] Makes history-substring-search use term specific up and down buttons. Fixes #2089. --- .../history-substring-search/history-substring-search.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/history-substring-search/history-substring-search.zsh b/plugins/history-substring-search/history-substring-search.zsh index 53f707c79..405eeaade 100644 --- a/plugins/history-substring-search/history-substring-search.zsh +++ b/plugins/history-substring-search/history-substring-search.zsh @@ -163,8 +163,9 @@ function history-substring-search-down() { zle -N history-substring-search-up zle -N history-substring-search-down -bindkey '\e[A' history-substring-search-up -bindkey '\e[B' history-substring-search-down +zmodload zsh/terminfo +bindkey "$terminfo[kcuu1]" history-substring-search-up +bindkey "$terminfo[kcud1]" history-substring-search-down #----------------------------------------------------------------------------- # implementation details From 5303793ef13b5dd3e7f52ac40f17fd37f015af44 Mon Sep 17 00:00:00 2001 From: Florian Franzen Date: Mon, 24 Mar 2014 22:32:56 +0100 Subject: [PATCH 05/12] history-substring-search: bindkey now checks if terminfo is available first. --- .../history-substring-search/history-substring-search.zsh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/history-substring-search/history-substring-search.zsh b/plugins/history-substring-search/history-substring-search.zsh index 405eeaade..22f03dd6d 100644 --- a/plugins/history-substring-search/history-substring-search.zsh +++ b/plugins/history-substring-search/history-substring-search.zsh @@ -164,8 +164,12 @@ zle -N history-substring-search-up zle -N history-substring-search-down zmodload zsh/terminfo -bindkey "$terminfo[kcuu1]" history-substring-search-up -bindkey "$terminfo[kcud1]" history-substring-search-down +if [[ -n "$terminfo[kcuu1]" ]]; then + bindkey "$terminfo[kcuu1]" history-substring-search-up +fi +if [[ -n "$terminfo[kcud1]" ]]; then + bindkey "$terminfo[kcud1]" history-substring-search-down +fi #----------------------------------------------------------------------------- # implementation details From 53323abdb1a18c7756ace473390ac6ca51660839 Mon Sep 17 00:00:00 2001 From: tcasparro Date: Thu, 20 Mar 2014 16:09:45 -0700 Subject: [PATCH 06/12] Added git mode support for merging, rebasing, and bisecting Designates Bisecting >M< Designates Merging >R> Designates Rebasing --- themes/agnoster.zsh-theme | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 85b846cb5..2b33c48bc 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -69,7 +69,9 @@ prompt_context() { # Git: branch/detached head, dirty status prompt_git() { - local ref dirty + local ref dirty mode repo_path + repo_path=$(git rev-parse --git-dir 2>/dev/null) + if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then dirty=$(parse_git_dirty) ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)" @@ -79,6 +81,14 @@ prompt_git() { prompt_segment green black fi + if [[ -e "${repo_path}/BISECT_LOG" ]]; then + mode=" " + elif [[ -e "${repo_path}/MERGE_HEAD" ]]; then + mode=" >M<" + elif [[ -e "${repo_path}/rebase" || -e "${repo_path}/rebase-apply" || -e "${repo_path}/rebase-merge" || -e "${repo_path}/../.dotest" ]]; then + mode=" >R>" + fi + setopt promptsubst autoload -Uz vcs_info @@ -90,7 +100,7 @@ prompt_git() { zstyle ':vcs_info:*' formats ' %u%c' zstyle ':vcs_info:*' actionformats ' %u%c' vcs_info - echo -n "${ref/refs\/heads\// }${vcs_info_msg_0_%% }" + echo -n "${ref/refs\/heads\// }${vcs_info_msg_0_%% }${mode}" fi } From f46d06dae19f691e6666d4836766e9eb69d2e51b Mon Sep 17 00:00:00 2001 From: Henrik Holm Date: Sat, 29 Mar 2014 10:14:37 -0400 Subject: [PATCH 07/12] Correct redirection of output from 'hash' The intention of the redirection to /dev/null is to hide the output 'hash: no such command: git' since we rely on the exit status. However, the output goes to stderr, so it's stderr that needs to be redirected. For completeness, we redirect both stderr and stdout using '2>&1'. Example: [~]$ hash git > /dev/null [~]$ PATH='' [~]$ hash git > /dev/null hash: no such command: git [~]$ hash git > /dev/null 2>&1 [~]$ --- tools/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/install.sh b/tools/install.sh index 71e19a389..fc7ad70cf 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -10,7 +10,7 @@ if [ -d "$ZSH" ]; then fi echo "\033[0;34mCloning Oh My Zsh...\033[0m" -hash git >/dev/null && /usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git $ZSH || { +hash git >/dev/null 2>&1 && /usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git $ZSH || { echo "git not installed" exit } From 6f3cf195c67bec936b6b0799051859e1f0ddb9dc Mon Sep 17 00:00:00 2001 From: Benjamin Wong Date: Fri, 18 Apr 2014 22:43:23 +1000 Subject: [PATCH 08/12] Spelling correction in itunes control function. Spelling correction in itunes control function. --- plugins/osx/osx.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index 608ec3789..63760b5ff 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -184,7 +184,7 @@ function itunes() { return 0 ;; *) - print "Unkonwn option: $opt" + print "Unknown option: $opt" return 1 ;; esac From fcfa323974985cd202c95379f893a86d6cf975fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 25 Mar 2014 22:16:36 +0100 Subject: [PATCH 09/12] Use cache folder inside $ZSH, delete with unaliased rm --- plugins/zsh_reload/zsh_reload.plugin.zsh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/plugins/zsh_reload/zsh_reload.plugin.zsh b/plugins/zsh_reload/zsh_reload.plugin.zsh index a435dbc8d..94945bd48 100644 --- a/plugins/zsh_reload/zsh_reload.plugin.zsh +++ b/plugins/zsh_reload/zsh_reload.plugin.zsh @@ -1,13 +1,12 @@ -zsh_cache=$HOME/.zsh_cache -mkdir -p $zsh_cache - # reload zshrc function src() { autoload -U compinit zrecompile - compinit -d $zsh_cache/zcomp-$HOST - for f in $HOME/.zshrc $zsh_cache/zcomp-$HOST; do - zrecompile -p $f && rm -f $f.zwc.old + compinit -d "$ZSH/cache/zcomp-$HOST" + + for f in ~/.zshrc "$ZSH/cache/zcomp-$HOST"; do + zrecompile -p $f && command rm -f $f.zwc.old done + source ~/.zshrc -} \ No newline at end of file +} From 9385b3ee0a8425ae8a2b5c16084d4fab1ebc3764 Mon Sep 17 00:00:00 2001 From: Dmitriy Date: Mon, 24 Mar 2014 10:17:19 +0300 Subject: [PATCH 10/12] set exclude-dir or exclude grep flags only if available --- lib/grep.zsh | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/lib/grep.zsh b/lib/grep.zsh index 977435ee4..276fec382 100644 --- a/lib/grep.zsh +++ b/lib/grep.zsh @@ -3,11 +3,22 @@ # Examples: http://rubyurl.com/ZXv # -# avoid VCS folders -GREP_OPTIONS= -for PATTERN in .cvs .git .hg .svn; do - GREP_OPTIONS+="--exclude-dir=$PATTERN " -done -GREP_OPTIONS+="--color=auto" +GREP_OPTIONS="--color=auto" + +# avoid VCS folders (if the necessary grep flags are available) +grep-flag-available() { + echo | grep $1 "" >/dev/null 2>&1 +} +if grep-flag-available --exclude-dir=.cvs; then + for PATTERN in .cvs .git .hg .svn; do + GREP_OPTIONS+=" --exclude-dir=$PATTERN" + done +elif grep-flag-available --exclude=.cvs; then + for PATTERN in .cvs .git .hg .svn; do + GREP_OPTIONS+=" --exclude=$PATTERN" + done +fi +unfunction grep-flag-available + export GREP_OPTIONS="$GREP_OPTIONS" export GREP_COLOR='1;32' From cee52283d8f5e18ba962cdb7b0acec2627e647e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Tomak?= Date: Fri, 18 Apr 2014 23:09:38 +0200 Subject: [PATCH 11/12] Fix for Python3 In Python3 without universal_newlines set to True output from Popen was byte-encoded. --- plugins/git-prompt/gitstatus.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-prompt/gitstatus.py b/plugins/git-prompt/gitstatus.py index ef894bff2..256841432 100644 --- a/plugins/git-prompt/gitstatus.py +++ b/plugins/git-prompt/gitstatus.py @@ -16,7 +16,7 @@ symbols = { } output, error = Popen( - ['git', 'status'], stdout=PIPE, stderr=PIPE).communicate() + ['git', 'status'], stdout=PIPE, stderr=PIPE, universal_newlines=True).communicate() if error: import sys From 7949a1cd8d69e7a79cbf20294cf41662aff15058 Mon Sep 17 00:00:00 2001 From: Javier Tejero Date: Sun, 6 Apr 2014 13:51:18 +0200 Subject: [PATCH 12/12] Fix `docker rmi` tab completion This is exactly what happens on tab completion for docker rmi. This commit fixes that. ```sh $ docker rmi _arguments:comparguments:312: invalid argument: __docker_images _arguments:comparguments:312: invalid argument: __docker_images _arguments:comparguments:312: invalid argument: __docker_images ``` --- plugins/docker/_docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/docker/_docker b/plugins/docker/_docker index 5acd19edf..c291037a3 100644 --- a/plugins/docker/_docker +++ b/plugins/docker/_docker @@ -166,7 +166,7 @@ __rm() { __rmi() { _arguments \ - '(-f,--force=)'{-f,--force=}'[Force]' \ + '(-f,--force=)'{-f,--force=}'[Force]' __docker_images }