From 8aec32b48bb88e980150a43586e7e02b9156e165 Mon Sep 17 00:00:00 2001 From: Allan Caffee Date: Mon, 7 Feb 2011 15:09:06 -0500 Subject: [PATCH 01/94] Add vagrant completion for individual VMs For multi-VM setups some commands take the name of a virtual machine. Read the Vagrantfile and offer suggestions. --- plugins/vagrant/_vagrant | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant index 483b29c53..9bed1e3c6 100644 --- a/plugins/vagrant/_vagrant +++ b/plugins/vagrant/_vagrant @@ -46,6 +46,11 @@ __box_list () _wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g') } +__vm_list () +{ + _wanted application expl 'command' compadd $(command grep Vagrantfile -oe '^[^#]*\.vm\.define *:\([a-zA-Z0-9]\+\)' 2>/dev/null | cut -d: -f2) +} + __vagrant-box () { local curcontext="$curcontext" state line @@ -99,6 +104,8 @@ case $state in (box) __vagrant-box ;; + (up|provision|package|destroy|reload|ssh|halt|resume|status) + _arguments ':feature:__vm_list' esac ;; esac From 2d5412e99be6d9fab50169ad0cf290e022fc6e9b Mon Sep 17 00:00:00 2001 From: James Smith Date: Sat, 19 Mar 2011 17:50:24 -0700 Subject: [PATCH 02/94] Added new function git_remote_status to check if we are ahead, behind or diverged from the remote branch --- lib/git.zsh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/git.zsh b/lib/git.zsh index 8512de8a4..75367f877 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -4,6 +4,7 @@ function git_prompt_info() { echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" } +# get dirty status of the current working tree parse_git_dirty () { if [[ -n $(git status -s 2> /dev/null) ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" @@ -12,6 +13,26 @@ parse_git_dirty () { fi } +# get the difference between the local and remote branches +git_remote_status() { + remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} + if [[ -n ${remote} ]] ; then + ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) + behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) + + if [ $ahead -eq 0 ] && [ $behind -gt 0 ] + then + echo "$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE" + elif [ $ahead -gt 0 ] && [ $behind -eq 0 ] + then + echo "$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" + elif [ $ahead -gt 0 ] && [ $behind -gt 0 ] + then + echo "$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE" + fi + fi +} + # get the status of the working tree git_prompt_status() { INDEX=$(git status --porcelain 2> /dev/null) From a15a8c4a98bc1aff024c3ef44dec48309ff4f90b Mon Sep 17 00:00:00 2001 From: James Smith Date: Sat, 19 Mar 2011 17:51:22 -0700 Subject: [PATCH 03/94] New theme 'intheloop' which demonstrates the git_remote_status function --- themes/intheloop.zsh-theme | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 themes/intheloop.zsh-theme diff --git a/themes/intheloop.zsh-theme b/themes/intheloop.zsh-theme new file mode 100644 index 000000000..c4736422d --- /dev/null +++ b/themes/intheloop.zsh-theme @@ -0,0 +1,18 @@ +# ZSH theme by James Smith (http://loopj.com) +# A multiline prompt with username, hostname, full path, return status, git branch, git dirty status, git remote status + +local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}" + +PROMPT=' +%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[green]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status) +%{$fg_bold[cyan]%}❯%{$reset_color%} ' + +RPROMPT='${return_status}%{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[grey]%}(%{$fg[red]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[grey]%}) %{$fg[yellow]%}⚡%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[grey]%})" +ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE="%{$fg_bold[magenta]%}↓%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE="%{$fg_bold[magenta]%}↑%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE="%{$fg_bold[magenta]%}↕%{$reset_color%}" \ No newline at end of file From e8a7a31ef66093f1b1ab034e84e01a147fa8b28a Mon Sep 17 00:00:00 2001 From: Lorrin Nelson Date: Mon, 7 Feb 2011 23:21:46 -0800 Subject: [PATCH 04/94] Make command-not-found no-op when support not available (e.g. not on Ubuntu) --- plugins/command-not-found/command-not-found.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/command-not-found/command-not-found.plugin.zsh b/plugins/command-not-found/command-not-found.plugin.zsh index 5ab03d5a9..567da1b45 100644 --- a/plugins/command-not-found/command-not-found.plugin.zsh +++ b/plugins/command-not-found/command-not-found.plugin.zsh @@ -2,4 +2,4 @@ # as seen in http://www.porcheron.info/command-not-found-for-zsh/ # this is installed in Ubuntu -source /etc/zsh_command_not_found +[[ -e /etc/zsh_command_not_found ]] && source /etc/zsh_command_not_found From 3b8f65477e989d534d2ce19aaec65ab2c1179aa3 Mon Sep 17 00:00:00 2001 From: Reza Date: Sat, 13 Nov 2010 09:08:24 -0800 Subject: [PATCH 05/94] Fixed cap plugin --- plugins/cap/cap.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/cap/cap.plugin.zsh b/plugins/cap/cap.plugin.zsh index a0fa21d00..a9db4381b 100644 --- a/plugins/cap/cap.plugin.zsh +++ b/plugins/cap/cap.plugin.zsh @@ -11,11 +11,10 @@ function _cap () { if [ -f config/deploy.rb ]; then if _cap_does_task_list_need_generating; then echo "\nGenerating .cap_tasks~..." > /dev/stderr - cap show_tasks -q | cut -d " " -f 1 | sed -e '/^ *$/D' -e '1,2D' -> .cap_tasks~ + cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ fi compadd `cat .cap_tasks~` fi } -compctl -K _cap cap \ No newline at end of file +compdef _cap cap From 25adbe81a55664335e0166c202b8d8424a67c8aa Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sun, 29 May 2011 09:32:44 -0400 Subject: [PATCH 06/94] Aliases Modify directory listing aliases to make more sense. Remove conflicting helper function (mcd conflicts with mtools). --- lib/aliases.zsh | 3 ++- lib/directories.zsh | 5 ----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/aliases.zsh b/lib/aliases.zsh index b47de5bde..8c510e0ef 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -16,8 +16,9 @@ alias history='fc -l 1' # List direcory contents alias lsa='ls -lah' -alias l='ls -la' +alias l='ls -lA1' alias ll='ls -l' +alias la='ls -lA' alias sl=ls # often screw this up alias afind='ack-grep -il' diff --git a/lib/directories.zsh b/lib/directories.zsh index bb114f615..7f74d924f 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -37,8 +37,3 @@ cd () { alias md='mkdir -p' alias rd=rmdir alias d='dirs -v' - -# mkdir & cd to it -function mcd() { - mkdir -p "$1" && cd "$1"; -} \ No newline at end of file From f0451195f63b3607461bda1570c5fb2a4e429b3e Mon Sep 17 00:00:00 2001 From: Maxim Filatov Date: Sun, 5 Jun 2011 16:57:21 -0700 Subject: [PATCH 07/94] Dollar sign instead of percent in unprivileged user prompt (as in real gentoo) --- themes/gentoo.zsh-theme | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/themes/gentoo.zsh-theme b/themes/gentoo.zsh-theme index cba143d42..ee205d248 100644 --- a/themes/gentoo.zsh-theme +++ b/themes/gentoo.zsh-theme @@ -1,4 +1,8 @@ -PROMPT='%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) $(git_prompt_info)%#%{$reset_color%} ' +function prompt_char { + if [ $UID -eq 0 ]; then echo "#"; else echo $; fi +} + +PROMPT='%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) $(git_prompt_info)%_$(prompt_char)%{$reset_color%} ' ZSH_THEME_GIT_PROMPT_PREFIX="(" ZSH_THEME_GIT_PROMPT_SUFFIX=") " From b02094e50fe3cd2e3f8ba911d19257dda047bf48 Mon Sep 17 00:00:00 2001 From: Reza Date: Tue, 7 Jun 2011 14:06:24 -0700 Subject: [PATCH 08/94] Change plugin name from cap to capistrano --- plugins/{cap/cap.plugin.zsh => capistrano/capistrano.plugin.zsh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/{cap/cap.plugin.zsh => capistrano/capistrano.plugin.zsh} (100%) diff --git a/plugins/cap/cap.plugin.zsh b/plugins/capistrano/capistrano.plugin.zsh similarity index 100% rename from plugins/cap/cap.plugin.zsh rename to plugins/capistrano/capistrano.plugin.zsh From c5a01fe422c0b511be5972735b1dd9ac22a82dff Mon Sep 17 00:00:00 2001 From: meh Date: Wed, 15 Jun 2011 16:15:52 +0200 Subject: [PATCH 09/94] rsync: add plugin --- plugins/rsync/rsync.plugin.zsh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 plugins/rsync/rsync.plugin.zsh diff --git a/plugins/rsync/rsync.plugin.zsh b/plugins/rsync/rsync.plugin.zsh new file mode 100644 index 000000000..5e28f346c --- /dev/null +++ b/plugins/rsync/rsync.plugin.zsh @@ -0,0 +1,15 @@ +function copy { + rsync -av --progress -h "$1" "$2" +} + +function move { + rsync -av --progress -h --remove-source-files "$1" "$2" +} + +function update { + rsync -avu --progress -h "$1" "$2" +} + +function synchronize { + rsync -avu --delete --progress -h "$1" "$2" +} From 1d17502aed5fc04cd1ca3eb35757b5ba2822414a Mon Sep 17 00:00:00 2001 From: meh Date: Sat, 16 Jul 2011 07:18:14 +0200 Subject: [PATCH 10/94] rsync: add rsync- prefixes and use aliases --- plugins/rsync/rsync.plugin.zsh | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/plugins/rsync/rsync.plugin.zsh b/plugins/rsync/rsync.plugin.zsh index 5e28f346c..33a31a5c1 100644 --- a/plugins/rsync/rsync.plugin.zsh +++ b/plugins/rsync/rsync.plugin.zsh @@ -1,15 +1,4 @@ -function copy { - rsync -av --progress -h "$1" "$2" -} - -function move { - rsync -av --progress -h --remove-source-files "$1" "$2" -} - -function update { - rsync -avu --progress -h "$1" "$2" -} - -function synchronize { - rsync -avu --delete --progress -h "$1" "$2" -} +alias rsync-copy="rsync -av --progress -h" +alias rsync-move="rsync -av --progress -h --remove-source-files" +alias rsync-update="rsync -avu --progress -h" +alias rsync-synchronize="rsync -avu --delete --progress -h" From efa5593f88e552fbd3fde850b283fa43d36f481c Mon Sep 17 00:00:00 2001 From: Reza Date: Tue, 16 Aug 2011 13:54:47 -0700 Subject: [PATCH 11/94] Rename to _capistrano (completion only) --- plugins/capistrano/_capistrano | 19 +++++++++++++++++++ plugins/capistrano/capistrano.plugin.zsh | 20 -------------------- 2 files changed, 19 insertions(+), 20 deletions(-) create mode 100644 plugins/capistrano/_capistrano delete mode 100644 plugins/capistrano/capistrano.plugin.zsh diff --git a/plugins/capistrano/_capistrano b/plugins/capistrano/_capistrano new file mode 100644 index 000000000..2ae977fcd --- /dev/null +++ b/plugins/capistrano/_capistrano @@ -0,0 +1,19 @@ +#compdef cap +#autoload + +_cap_does_task_list_need_generating () { + if [ ! -f .cap_tasks~ ]; then return 0; + else + accurate=$(stat -f%m .cap_tasks~) + changed=$(stat -f%m config/deploy.rb) + return $(expr $accurate '>=' $changed) + fi +} + +if [ -f config/deploy.rb ]; then + if _cap_does_task_list_need_generating; then + echo "\nGenerating .cap_tasks~..." > /dev/stderr + cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ + fi + compadd `cat .cap_tasks~` +fi diff --git a/plugins/capistrano/capistrano.plugin.zsh b/plugins/capistrano/capistrano.plugin.zsh deleted file mode 100644 index a9db4381b..000000000 --- a/plugins/capistrano/capistrano.plugin.zsh +++ /dev/null @@ -1,20 +0,0 @@ -function _cap_does_task_list_need_generating () { - if [ ! -f .cap_tasks~ ]; then return 0; - else - accurate=$(stat -f%m .cap_tasks~) - changed=$(stat -f%m config/deploy.rb) - return $(expr $accurate '>=' $changed) - fi -} - -function _cap () { - if [ -f config/deploy.rb ]; then - if _cap_does_task_list_need_generating; then - echo "\nGenerating .cap_tasks~..." > /dev/stderr - cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ - fi - compadd `cat .cap_tasks~` - fi -} - -compdef _cap cap From 4a813cf1a2ccddc58059271065a8abc8f9079019 Mon Sep 17 00:00:00 2001 From: Ryan Schmukler Date: Tue, 27 Dec 2011 21:02:31 -0600 Subject: [PATCH 12/94] Added vsplit_tab and split_tab for iTerm. Create new session within a vertical/horizontal split of the tab respectively. --- plugins/osx/osx.plugin.zsh | 63 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index 682bb2667..f278d4f8d 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -2,10 +2,9 @@ # FILE: osx.plugin.zsh # DESCRIPTION: oh-my-zsh plugin file. # AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) -# VERSION: 1.0.1 +# VERSION: 1.1.0 # ------------------------------------------------------------------------------ - function tab() { local command="cd \\\"$PWD\\\"" (( $# > 0 )) && command="${command}; $*" @@ -35,7 +34,7 @@ EOF launch session "Default Session" set current_session to current session tell current_session - write text "${command}" + write text "${command}; clear;" end tell end tell end tell @@ -43,6 +42,64 @@ EOF } } +function vsplit_tab() { + local command="cd \\\"$PWD\\\"" + (( $# > 0 )) && command="${command}; $*" + + the_app=$( + osascript 2>/dev/null </dev/null < 0 )) && command="${command}; $*" + + the_app=$( + osascript 2>/dev/null </dev/null </dev/null < Date: Sat, 31 Dec 2011 12:13:31 -0500 Subject: [PATCH 13/94] add ability to set custom prefix for cloud theme --- themes/cloud.zsh-theme | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/themes/cloud.zsh-theme b/themes/cloud.zsh-theme index ad5e2834b..4efbf9776 100644 --- a/themes/cloud.zsh-theme +++ b/themes/cloud.zsh-theme @@ -1,4 +1,8 @@ -PROMPT='%{$fg_bold[cyan]%}☁ %{$fg_bold[green]%}%p %{$fg[green]%}%c %{$fg_bold[cyan]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +if [[ -z $ZSH_THEME_CLOUD_PREFIX ]]; then + ZSH_THEME_CLOUD_PREFIX='☁' +fi + +PROMPT='%{$fg_bold[cyan]%}$ZSH_THEME_CLOUD_PREFIX %{$fg_bold[green]%}%p %{$fg[green]%}%c %{$fg_bold[cyan]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[%{$fg[cyan]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From 52733cb3bb0b1c85230c5c69e6c7231fb41c67fe Mon Sep 17 00:00:00 2001 From: Tadaya Tsuyukubo Date: Thu, 26 Jan 2012 15:20:08 -0800 Subject: [PATCH 14/94] prompt git-remove as deleted --- lib/git.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/git.zsh b/lib/git.zsh index defa062c6..9c89c3664 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -54,6 +54,8 @@ git_prompt_status() { fi if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" + elif $(echo "$INDEX" | grep '^D ' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" fi From 8f89d4d5a5d584bae288d8111d83a6489a1369dc Mon Sep 17 00:00:00 2001 From: Darren Clark Date: Fri, 27 Jan 2012 01:20:06 -0700 Subject: [PATCH 15/94] Fixed Mac OS X Terminal.app related issue with extra newlines being printed out sometimes --- lib/termsupport.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 221989502..6601cbcb8 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -6,6 +6,8 @@ function title { [ "$DISABLE_AUTO_TITLE" != "true" ] || return if [[ "$TERM" == screen* ]]; then print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars + elif [[ "$TERM_PROGRAM" == "Apple_Terminal" ]]; then + print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal) elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then print -Pn "\e]2;$2:q\a" #set window name print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal) From 09c5996cd0528eb03a93dd464f3cbd755eafd624 Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Mon, 5 Mar 2012 21:36:50 +0800 Subject: [PATCH 16/94] Added kafeitu theme it modified by robbyrussell --- kafeitu.zsh-theme | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 kafeitu.zsh-theme diff --git a/kafeitu.zsh-theme b/kafeitu.zsh-theme new file mode 100644 index 000000000..60c0303b9 --- /dev/null +++ b/kafeitu.zsh-theme @@ -0,0 +1,6 @@ +PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})" From c1e9d9226c106aaf973712b1a700dd045aeff9bc Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Mon, 5 Mar 2012 21:39:09 +0800 Subject: [PATCH 17/94] move kafeitu.zsh-theme to themes folder --- kafeitu.zsh-theme => themes/kafeitu.zsh-theme | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename kafeitu.zsh-theme => themes/kafeitu.zsh-theme (100%) diff --git a/kafeitu.zsh-theme b/themes/kafeitu.zsh-theme similarity index 100% rename from kafeitu.zsh-theme rename to themes/kafeitu.zsh-theme From bd4f1eeca2d1430029153f7be0aa432ef5d2fce9 Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Tue, 6 Mar 2012 14:09:11 +0800 Subject: [PATCH 18/94] =?UTF-8?q?add=20hostname=20behind=20username,=20exa?= =?UTF-8?q?mple:=20henryyan=20[02:07:20]=20=20~/.oh-my-zsh=20git:(master)?= =?UTF-8?q?=20=E2=9C=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- themes/kafeitu.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/kafeitu.zsh-theme b/themes/kafeitu.zsh-theme index 60c0303b9..18e941601 100644 --- a/themes/kafeitu.zsh-theme +++ b/themes/kafeitu.zsh-theme @@ -1,4 +1,4 @@ -PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n%{$fg[blue]%}@%{$fg_bold[green]%}%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From 7ffc3e745fa7ab020ec45e4ffe7a069c823e386a Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Tue, 6 Mar 2012 14:14:17 +0800 Subject: [PATCH 19/94] change color of @ to cyan --- themes/kafeitu.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/kafeitu.zsh-theme b/themes/kafeitu.zsh-theme index 18e941601..a89a899aa 100644 --- a/themes/kafeitu.zsh-theme +++ b/themes/kafeitu.zsh-theme @@ -1,4 +1,4 @@ -PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n%{$fg[blue]%}@%{$fg_bold[green]%}%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n%{$fg[cyan]%}@%{$fg_bold[green]%}%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From 814ecfc60daffc1eac250d41643d05fb1f43bd4c Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Wed, 7 Mar 2012 23:52:51 +0800 Subject: [PATCH 20/94] delete time filed --- themes/kafeitu.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/kafeitu.zsh-theme b/themes/kafeitu.zsh-theme index a89a899aa..c4720b24d 100644 --- a/themes/kafeitu.zsh-theme +++ b/themes/kafeitu.zsh-theme @@ -1,4 +1,4 @@ -PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n%{$fg[cyan]%}@%{$fg_bold[green]%}%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n%{$fg[cyan]%}@%{$fg_bold[green]%}%m %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From e9feccf6a94f9f5238ff0b3501f62575d14ae148 Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Thu, 22 Mar 2012 09:33:55 +0800 Subject: [PATCH 21/94] add maven plugin --- plugins/mvn/mvn.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/mvn/mvn.plugin.zsh diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh new file mode 100644 index 000000000..8c87d3afe --- /dev/null +++ b/plugins/mvn/mvn.plugin.zsh @@ -0,0 +1,6 @@ +function listMavenCompletions { +reply=( +cli:execute cli:execute-phase archetype:generate generate-sources compile clean install test test-compile deploy package cobertura:cobertura jetty:run gwt:run gwt:debug -DskipTests -Dmaven.test.skip=true -Dtest= `if [ -d ./src ] ; then find ./src -type f | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`); +} + +compctl -K listMavenCompletions mvn From 8088e8ac7935e9289d049278e117befd87f48809 Mon Sep 17 00:00:00 2001 From: Paul McKellar Date: Mon, 18 Jun 2012 01:01:05 -0700 Subject: [PATCH 22/94] add git remote branch autocomplete --- .../git-remote-branch.plugin.zsh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 plugins/git-remote-branch/git-remote-branch.plugin.zsh diff --git a/plugins/git-remote-branch/git-remote-branch.plugin.zsh b/plugins/git-remote-branch/git-remote-branch.plugin.zsh new file mode 100644 index 000000000..ff98cbf87 --- /dev/null +++ b/plugins/git-remote-branch/git-remote-branch.plugin.zsh @@ -0,0 +1,18 @@ +_git_remote_branch() { + ref=$(git symbolic-ref HEAD 2> /dev/null) + if [[ -n $ref ]]; then + if (( CURRENT == 2 )); then + # first arg: operation + compadd create publish rename delete track + elif (( CURRENT == 3 )); then + # second arg: remote branch name + compadd `git branch -r | grep -v HEAD | sed "s/.*\///" | sed "s/ //g"` + elif (( CURRENT == 4 )); then + # third arg: remote name + compadd `git remote` + fi + else; + _files + fi +} +compdef _git_remote_branch grb From 8ba97c36443d8551a28de194a3da4b7c4d6c7949 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 22 Jun 2012 15:30:51 +0300 Subject: [PATCH 23/94] Added history plugin --- plugins/history/history.plugin.zsh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 plugins/history/history.plugin.zsh diff --git a/plugins/history/history.plugin.zsh b/plugins/history/history.plugin.zsh new file mode 100644 index 000000000..0f4aa4b10 --- /dev/null +++ b/plugins/history/history.plugin.zsh @@ -0,0 +1,8 @@ +alias h='history' + +function hs +{ + history | grep $* +} + +alias hsi='hs -i' From 62a436bb95144b00f0ef8ba8906a4044b4be4d9c Mon Sep 17 00:00:00 2001 From: Peter Mounce Date: Fri, 22 Jun 2012 17:12:44 +0100 Subject: [PATCH 24/94] Fix mismatched quote in yum plugin --- plugins/yum/yum.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/yum/yum.plugin.zsh b/plugins/yum/yum.plugin.zsh index c9966f1b1..69abfc4ce 100644 --- a/plugins/yum/yum.plugin.zsh +++ b/plugins/yum/yum.plugin.zsh @@ -5,7 +5,7 @@ alias yp="yum info" # show package info alias yl="yum list" # list packages alias ygl="yum grouplist" # list package groups alias yli="yum list installed" # print all installed packages -alias ymc="yum makecache # rebuilds the yum package list +alias ymc="yum makecache" # rebuilds the yum package list alias yu="sudo yum update" # upgrate packages alias yi="sudo yum install" # install package From 5e9a16b88a5cffe015101f992e29fa0d50027f5d Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 22 Jun 2012 20:25:44 +0300 Subject: [PATCH 25/94] Added themes plugin --- plugins/themes/themes.plugin.zsh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 plugins/themes/themes.plugin.zsh diff --git a/plugins/themes/themes.plugin.zsh b/plugins/themes/themes.plugin.zsh new file mode 100644 index 000000000..8bab257ea --- /dev/null +++ b/plugins/themes/themes.plugin.zsh @@ -0,0 +1,24 @@ +function theme +{ + if [ "$1" = "random" ]; then + themes=($ZSH/themes/*zsh-theme) + N=${#themes[@]} + ((N=(RANDOM%N)+1)) + RANDOM_THEME=${themes[$N]} + source "$RANDOM_THEME" + echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..." + else + if [ -f "$ZSH_CUSTOM/$1.zsh-theme" ] + then + source "$ZSH_CUSTOM/$1.zsh-theme" + else + source "$ZSH/themes/$1.zsh-theme" + fi + fi +} + +function lstheme +{ + cd $ZSH/themes + ls *zsh-theme | sed 's,\.zsh-theme$,,' +} From f7b1615b7cd6cd2088050a29f43650098eaba514 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 22 Jun 2012 20:42:59 +0300 Subject: [PATCH 26/94] Added completion to the theme selection plugin --- plugins/themes/_theme | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 plugins/themes/_theme diff --git a/plugins/themes/_theme b/plugins/themes/_theme new file mode 100644 index 000000000..8214ddb0d --- /dev/null +++ b/plugins/themes/_theme @@ -0,0 +1,3 @@ +#compdef theme + +_arguments "1: :($(lstheme | tr "\n" " "))" From 3fe1e5c78760b81335eef501ef7f89875ae7753a Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Wed, 18 Jul 2012 23:37:21 +0800 Subject: [PATCH 27/94] add maven zsh autocomplete plugin, copy from juvenxu's bash maven autocomplete plugin --- plugins/mvn/mvn.plugin.zsh | 117 +++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 plugins/mvn/mvn.plugin.zsh diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh new file mode 100644 index 000000000..7131893c9 --- /dev/null +++ b/plugins/mvn/mvn.plugin.zsh @@ -0,0 +1,117 @@ +function listMavenCompletions { + reply=( + # common lifecycle + clean process-resources compile process-test-resources test-compile test package verify install deploy site + + # common plugins + deploy failsafe install site surefire checkstyle javadoc jxr pmd ant antrun archetype assembly dependency enforcer gpg help release repository source eclipse idea jetty cargo jboss tomcat tomcat6 tomcat7 exec versions war ear ejb android scm buildnumber nexus repository sonar license hibernate3 liquibase flyway gwt + + # deploy + deploy:deploy-file + # failsafe + failsafe:integration-test failsafe:verify + # install + install:install-file + # site + site:site site:deploy site:run site:stage site:stage-deploy + # surefire + surefire:test + + # checkstyle + checkstyle:checkstyle checkstyle:check + # javadoc + javadoc:javadoc javadoc:jar javadoc:aggregate + # jxr + jxr:jxr + # pmd + pmd:pmd pmd:cpd pmd:check pmd:cpd-check + + # ant + ant:ant ant:clean + # antrun + antrun:run + # archetype + archetype:generate archetype:create-from-project archetype:crawl + # assembly + assembly:single assembly:assembly + # dependency + dependency:analyze dependency:analyze-dep-mgt dependency:analyze-only dependency:analyze-report dependency:build-classpath dependency:copy dependency:copy-dependencies dependency:get dependency:go-offline dependency:list dependency:purge-local-repository dependency:resolve dependency:resolve-plugins dependency:sources dependency:tree dependency:unpack dependency:unpack-dependencies + # enforcer + enforcer:enforce + # gpg + gpg:sign gpg:sign-and-deploy-file + # help + help:active-profiles help:all-profiles help:describe help:effective-pom help:effective-settings help:evaluate help:expressions help:system + # release + release:clean release:prepare release:rollback release:perform release:stage release:branch release:update-versions + # repository + repository:bundle-create repository:bundle-pack + # source + source:aggregate source:jar source:jar-no-fork + + # eclipse + eclipse:clean eclipse:eclipse + # idea + idea:clean idea:idea + + # jetty + jetty:run jetty:run-exploded + # cargo + cargo:start cargo:run cargo:stop cargo:deploy cargo:undeploy cargo:help + # jboss + jboss:start jboss:stop jboss:deploy jboss:undeploy jboss:redeploy + # tomcat + tomcat:start tomcat:stop tomcat:deploy tomcat:undeploy tomcat:undeploy + # tomcat6 + tomcat6:run tomcat6:run-war tomcat6:run-war-only tomcat6:stop tomcat6:deploy tomcat6:undeploy + # tomcat7 + tomcat7:run tomcat7:run-war tomcat7:run-war-only tomcat7:deploy + # exec + exec:exec exec:java + # versions + versions:display-dependency-updates versions:display-plugin-updates versions:display-property-updates versions:update-parent versions:update-properties versions:update-child-modules versions:lock-snapshots versions:unlock-snapshots versions:resolve-ranges versions:set versions:use-releases versions:use-next-releases versions:use-latest-releases versions:use-next-snapshots versions:use-latest-snapshots versions:use-next-versions versions:use-latest-versions versions:commit versions:revert + # scm + scm:add scm:checkin scm:checkout scm:update scm:status + # buildnumber + buildnumber:create buildnumber:create-timestamp buildnumber:help buildnumber:hgchangeset + + # war + war:war war:exploded war:inplace war:manifest + # ear + ear:ear ear:generate-application-xml + # ejb + ejb:ejb + # android + android:apk android:apklib android:deploy android:deploy-dependencies android:dex android:emulator-start android:emulator-stop android:emulator-stop-all android:generate-sources android:help android:instrument android:manifest-update android:pull android:push android:redeploy android:run android:undeploy android:unpack android:version-update android:zipalign android:devices + # nexus + nexus:staging-list nexus:staging-close nexus:staging-drop nexus:staging-release nexus:staging-build-promotion nexus:staging-profiles-list nexus:settings-download + # repository + repository:bundle-create repository:bundle-pack repository:help + + # sonar + sonar:sonar + # license + license:format license:check + # hibernate3 + hibernate3:hbm2ddl hibernate3:help + # liquibase + liquibase:changelogSync liquibase:changelogSyncSQL liquibase:clearCheckSums liquibase:dbDoc liquibase:diff liquibase:dropAll liquibase:help liquibase:migrate liquibase:listLocks liquibase:migrateSQL liquibase:releaseLocks liquibase:rollback liquibase:rollbackSQL liquibase:status liquibase:tag liquibase:update liquibase:updateSQL liquibase:updateTestingRollback + # flyway + flyway:clean flyway:history flyway:init flyway:migrate flyway:status flyway:validate + # gwt + gwt:browser gwt:clean gwt:compile gwt:compile-report gwt:css gwt:debug gwt:eclipse gwt:eclipseTest gwt:generateAsync gwt:help gwt:i18n gwt:mergewebxml gwt:resources gwt:run gwt:sdkInstall gwt:source-jar gwt:soyc gwt:test + + # options + -Dmaven.test.skip=true -DskipTests -Dmaven.surefire.debug -DenableCiProfile -Dpmd.skip=true -Dcheckstyle.skip=true -Dtycho.mode=maven + + # arguments + -am -amd -B -C -c -cpu -D -e -emp -ep -f -fae -ff -fn -gs -h -l -N -npr -npu -nsu -o -P -pl -q -rf -s -T -t -U -up -V -v -X + + cli:execute cli:execute-phase + archetype:generate generate-sources + cobertura:cobertura + -Dtest= `if [ -d ./src ] ; then find ./src/test/java -type f -name '*.java' | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi` + ); +} + +compctl -K listMavenCompletions mvn From 0b757825a2c23af6fcf17f540cbfacd390321fa8 Mon Sep 17 00:00:00 2001 From: Alexis GRIMALDI Date: Thu, 19 Jul 2012 12:50:53 +0200 Subject: [PATCH 28/94] Added git-extras completion --- plugins/git-extras/git-extras.plugin.zsh | 265 +++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 plugins/git-extras/git-extras.plugin.zsh diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh new file mode 100644 index 000000000..6adad124e --- /dev/null +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -0,0 +1,265 @@ +#compdef git + + +__git_command_successful () { + if (( ${#pipestatus:#0} > 0 )); then + _message 'not a git repository' + return 1 + fi + return 0 +} + + +__git_tag_names() { + local expl + declare -a tag_names + tag_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/tags 2>/dev/null)"}#refs/tags/}) + __git_command_successful || return + _wanted tag-names expl tag-name compadd $* - $tag_names +} + + +__git_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_feature_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/feature 2>/dev/null)"}#refs/heads/feature/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_refactor_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/refactor 2>/dev/null)"}#refs/heads/refactor/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_bug_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/bug 2>/dev/null)"}#refs/heads/bug/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_submodule_names() { + local expl + declare -a submodule_names + submodule_names=(${(f)"$(_call_program branchrefs git submodule status | awk '{print $2}')"}) + __git_command_successful || return + _wanted submodule-names expl submodule-name compadd $* - $submodule_names +} + + +__git_author_names() { + local expl + declare -a author_names + author_names=(${(f)"$(_call_program branchrefs git log --format='%aN' | sort -u)"}) + __git_command_successful || return + _wanted author-names expl author-name compadd $* - $author_names +} + + +_git-changelog() { + _arguments \ + '(-l --list)'{-l, --list}'[list commits]' \ +} + + +_git-effort() { + _arguments \ + '--above[ignore file with less than x commits]' \ +} + + +_git-contrib() { + _arguments \ + ':author:__git_author_names' +} + + +_git-count() { + _arguments \ + '--all[detailed commit count]' +} + + +_git-delete-branch() { + _arguments \ + ':branch-name:__git_branch_names' +} + + +_git-delete-submodule() { + _arguments \ + ':submodule-name:__git_submodule_names' +} + + +_git-delete-tag() { + _arguments \ + ':tag-name:__git_tag_names' +} + + +_git-extras() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'update:update git-extras' + ) + _describe -t commands command commands && ret=0 + ;; + esac + + _arguments \ + '(-v --version)'{-v,--version}'[show current version]' \ +} + + +_git-graft() { + _arguments \ + ':src-branch-name:__git_branch_names' \ + ':dest-branch-name:__git_branch_names' +} + + +_git-squash() { + _arguments \ + ':branch-name:__git_branch_names' +} + + +_git-feature() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge feature into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_feature_branch_names' + ;; + esac + esac +} + + +_git-refactor() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge refactor into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_refactor_branch_names' + ;; + esac + esac +} + + +_git-bug() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge bug into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_bug_branch_names' + ;; + esac + esac +} + + +zstyle ':completion:*:*:git:*' user-commands \ + changelog:'populate changelog file with commits since the previous tag' \ + contrib:'display author contributions' \ + count:'count commits' \ + delete-branch:'delete local and remote branch' \ + delete-submodule:'delete submodule' \ + delete-tag:'delete local and remote tag' \ + extras:'git-extras' \ + graft:'merge commits from source branch to destination branch' \ + squash:'merge commits from source branch into the current one as a single commit' \ + feature:'create a feature branch' \ + refactor:'create a refactor branch' \ + bug:'create a bug branch' \ + summary:'repository summary' \ + effort:'display effort statistics' \ + repl:'read-eval-print-loop' \ + commits-since:'list commits since a given date' \ + release:'release commit with the given tag' \ + alias:'define, search and show aliases' \ + ignore:'add patterns to .gitignore' \ + info:'show info about the repository' \ + create-branch:'create local and remote branch' \ + fresh-branch:'create empty local branch' \ + undo:'remove the latest commit' \ + setup:'setup a git repository' \ + touch:'one step creation of new files' \ + obliterate:'Completely remove a file from the repository, including past commits and tags' \ + local-commits:'list unpushed commits on the local branch' \ From 46b88b6a5a48f555c89a02d30e039758f4e3bfe7 Mon Sep 17 00:00:00 2001 From: Alexis GRIMALDI Date: Thu, 19 Jul 2012 13:01:32 +0200 Subject: [PATCH 29/94] Added credits --- plugins/git-extras/git-extras.plugin.zsh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh index 6adad124e..0d7c2db7d 100644 --- a/plugins/git-extras/git-extras.plugin.zsh +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -1,4 +1,24 @@ #compdef git +# ------------------------------------------------------------------------------ +# Description +# ----------- +# +# Completion script for git-extras (http://github.com/visionmedia/git-extras). +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Alexis GRIMALDI (https://github.com/agrimaldi) +# +# ------------------------------------------------------------------------------ +# Inspirations +# ----------- +# +# * git-extras (http://github.com/visionmedia/git-extras) +# * git-flow-completion (http://github.com/bobthecow/git-flow-completion) +# +# ------------------------------------------------------------------------------ __git_command_successful () { From 1e1e0fa44d8e97567f7a3ecd7f922c7ecca6e76f Mon Sep 17 00:00:00 2001 From: Alexis GRIMALDI Date: Fri, 20 Jul 2012 16:46:30 +0200 Subject: [PATCH 30/94] Fix changelog --list completion bug --- plugins/git-extras/git-extras.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh index 0d7c2db7d..8419166ab 100644 --- a/plugins/git-extras/git-extras.plugin.zsh +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -95,7 +95,7 @@ __git_author_names() { _git-changelog() { _arguments \ - '(-l --list)'{-l, --list}'[list commits]' \ + '(-l --list)'{-l,--list}'[list commits]' \ } From 73df0c8e93399c8281076d660aa48b1fc5203ce1 Mon Sep 17 00:00:00 2001 From: Dr Nic Williams Date: Wed, 2 May 2012 10:32:30 -0700 Subject: [PATCH 31/94] added 'gcl'for 'git config --list'; and gd for 'git diff' --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..c970b4cfd 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -9,6 +9,7 @@ alias gup='git fetch && git rebase' compdef _git gup=git-fetch alias gp='git push' compdef _git gp=git-push +alias gd='git diff' gdv() { git diff -w "$@" | view - } compdef _git gdv=git-diff alias gc='git commit -v' @@ -24,6 +25,7 @@ alias gba='git branch -a' compdef _git gba=git-branch alias gcount='git shortlog -sn' compdef gcount=git +alias gcl='git config --list' alias gcp='git cherry-pick' compdef _git gcp=git-cherry-pick alias glg='git log --stat --max-count=5' From 61e708f91f36420e1c5ebe68c23d94738989c9d1 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Mon, 23 Jul 2012 23:33:14 -0400 Subject: [PATCH 32/94] Adding a symfony plugin, for symfony 1 --- plugins/symfony/symfony.plugin.zsh | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 plugins/symfony/symfony.plugin.zsh diff --git a/plugins/symfony/symfony.plugin.zsh b/plugins/symfony/symfony.plugin.zsh new file mode 100644 index 000000000..9de767548 --- /dev/null +++ b/plugins/symfony/symfony.plugin.zsh @@ -0,0 +1,13 @@ +# symfony basic command completion + +_symfony_get_command_list () { + ./symfony | sed "1,/Available tasks/d" | awk 'BEGIN { cat=null; } /^[A-Za-z]+$/ { cat = $1; } /^ :[a-z]+/ { print cat $1; }' +} + +_symfony () { + if [ -f symfony ]; then + compadd `_symfony_get_command_list` + fi +} + +compdef _symfony symfony From a8d795872989ddce5bbda0926f5ebca1d769ff6b Mon Sep 17 00:00:00 2001 From: apm Date: Wed, 25 Jul 2012 10:55:28 +0600 Subject: [PATCH 33/94] alias at=aptitude broke /usr/bin/at scheduler. Just an idea: change it to ap --- plugins/debian/debian.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 39d3ef36a..67e38bdf9 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -21,7 +21,7 @@ fi # These are for more obscure uses of apt-get and aptitude that aren't covered # below. alias ag='apt-get' -alias at='aptitude' +alias ap='aptitude' # Some self-explanatory aliases alias acs="apt-cache search" @@ -35,7 +35,7 @@ alias afs='apt-file search --regexp' # These are apt-get only alias asrc='apt-get source' -alias ap='apt-cache policy' +alias app='apt-cache policy' # superuser operations ###################################################### if [[ $use_sudo -eq 1 ]]; then From e709642f6f9e9e89cd95177b2867794b3183a43b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjarki=20=C3=81g=C3=BAst=20Gu=C3=B0mundsson?= Date: Thu, 26 Jul 2012 17:50:56 +0000 Subject: [PATCH 34/94] Merge branch 'master', remote-tracking branch 'rr/master' From 75029cda2a52b656543ae5477328150654de8ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjarki=20=C3=81g=C3=BAst=20Gu=C3=B0mundsson?= Date: Thu, 26 Jul 2012 17:54:15 +0000 Subject: [PATCH 35/94] Added a "please" alias for sudo --- lib/aliases.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/aliases.zsh b/lib/aliases.zsh index 0555be264..2eae3835a 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -8,6 +8,7 @@ alias -- -='cd -' # Super user alias _='sudo' +alias please='sudo' #alias g='grep -in' From aaf705c5faf3ebe27604277809ca1260705430c9 Mon Sep 17 00:00:00 2001 From: bwl Date: Sun, 29 Jul 2012 00:53:20 -0400 Subject: [PATCH 36/94] Adding logic for ~/Applications folder installs of Sublime Text 2 --- plugins/sublime/sublime.plugin.zsh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 91b0279c5..e43bf76f5 100755 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -1,9 +1,16 @@ # Sublime Text 2 Aliases #unamestr = 'uname' +local _sublime_darwin_subl=/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl + if [[ $('uname') == 'Linux' ]]; then alias st='/usr/bin/sublime_text&' elif [[ $('uname') == 'Darwin' ]]; then - alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl' + # Check if Sublime is installed in user's home application directory + if [[ -a $HOME/${_sublime_darwin_subl} ]]; then + alias st='$HOME/${_sublime_darwin_subl}' + else + alias st='${_sublime_darwin_subl}' + fi fi alias stt='st .' From a3c2a2f6e8ff9db508070a905de056346386ef4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caio=20Rom=C3=A3o?= Date: Sun, 29 Jul 2012 20:18:26 +0200 Subject: [PATCH 37/94] Add branch status support to git_prompt_status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch makes git_prompt_status support three new status variables: - ZSH_THEME_GIT_PROMPT_AHEAD - ZSH_THEME_GIT_PROMPT_BEHIND - ZSH_THEME_GIT_PROMPT_DIVERGED With these extra variables it's easy to see (1) if you have commits in your local branch that weren't pushed to the remote (AHEAD), (2) if there are commits in the remote that you haven't merged/rebased yet (BEHIND) or (3) if you have local unpushed commits AND the remote has some commits you haven't merged yet (DIVERGED). Refer to the first line displayed on `git status -b --porcelain`. An example setup in a .zsh-theme file would be: ZSH_THEME_GIT_PROMPT_AHEAD="↑" ZSH_THEME_GIT_PROMPT_BEHIND="↓" ZSH_THEME_GIT_PROMPT_DIVERGED="↕" --- lib/git.zsh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index fb4ad8ca6..bca8bdc96 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -38,7 +38,7 @@ function git_prompt_long_sha() { # Get the status of the working tree git_prompt_status() { - INDEX=$(git status --porcelain 2> /dev/null) + INDEX=$(git status --porcelain -b 2> /dev/null) STATUS="" if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS" @@ -66,6 +66,15 @@ git_prompt_status() { if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS" fi + if $(echo "$INDEX" | grep '^## .*ahead' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS" + fi + if $(echo "$INDEX" | grep '^## .*behind' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS" + fi + if $(echo "$INDEX" | grep '^## .*diverged' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS" + fi echo $STATUS } From 027fcccc9256aaf63e0d1b812069a1a0880f46fa Mon Sep 17 00:00:00 2001 From: Ted Vessenes Date: Tue, 31 Jul 2012 13:27:40 -0400 Subject: [PATCH 38/94] Make git use sha when branch name is missing. --- lib/git.zsh | 3 ++- plugins/git/git.plugin.zsh | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index fb4ad8ca6..af8b153d9 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -1,6 +1,7 @@ # get the name of the branch we are on function git_prompt_info() { - ref=$(git symbolic-ref HEAD 2> /dev/null) || return + ref=$(git symbolic-ref HEAD 2> /dev/null) || \ + ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" } diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..14237cebe 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -50,13 +50,14 @@ alias gsd='git svn dcommit' # Usage example: git pull origin $(current_branch) # function current_branch() { - ref=$(git symbolic-ref HEAD 2> /dev/null) || return + ref=$(git symbolic-ref HEAD 2> /dev/null) || \ + ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo ${ref#refs/heads/} } function current_repository() { - - ref=$(git symbolic-ref HEAD 2> /dev/null) || return + ref=$(git symbolic-ref HEAD 2> /dev/null) || \ + ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo $(git remote -v | cut -d':' -f 2) } From 9af7f862999c458525d1a5c0f2470757ffe2f1dc Mon Sep 17 00:00:00 2001 From: Alexis Letessier Date: Wed, 1 Aug 2012 23:58:09 +0200 Subject: [PATCH 39/94] Correct variable used for global ssh known host completion --- lib/completion.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index f31e101d5..ba839a067 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -32,7 +32,7 @@ zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-dir cdpath=(.) # use /etc/hosts and known_hosts for hostname completion -[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$( Date: Sun, 5 Aug 2012 22:51:11 +0300 Subject: [PATCH 40/94] fix typo in cd-wrapper --- lib/directories.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index a787db9eb..1b92df6b3 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -26,9 +26,9 @@ cd () { elif [[ "x$*" == "x...." ]]; then cd ../../.. elif [[ "x$*" == "x....." ]]; then - cd ../../.. - elif [[ "x$*" == "x......" ]]; then cd ../../../.. + elif [[ "x$*" == "x......" ]]; then + cd ../../../../.. else builtin cd "$@" fi From 74faabbcabf6dc9a60737bfd54ba1b3a341c547d Mon Sep 17 00:00:00 2001 From: "Sean M. Collins" Date: Tue, 7 Aug 2012 14:38:48 -0400 Subject: [PATCH 41/94] Add shortcut for showing log of all branches --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..23c598169 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -30,6 +30,8 @@ alias glg='git log --stat --max-count=5' compdef _git glg=git-log alias glgg='git log --graph --max-count=5' compdef _git glgg=git-log +alias glgga='git log --graph --decorate --all' +compdef _git glgga=git-log alias gss='git status -s' compdef _git gss=git-status alias ga='git add' From 36b42017aeda6629d487c080ff6b5c7d3650687d Mon Sep 17 00:00:00 2001 From: Bodo Tasche Date: Sun, 12 Aug 2012 09:13:02 +0200 Subject: [PATCH 42/94] new forklift plugin --- plugins/forklift/forklift.plugin.zsh | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 plugins/forklift/forklift.plugin.zsh diff --git a/plugins/forklift/forklift.plugin.zsh b/plugins/forklift/forklift.plugin.zsh new file mode 100644 index 000000000..056069d36 --- /dev/null +++ b/plugins/forklift/forklift.plugin.zsh @@ -0,0 +1,44 @@ +# Open folder in ForkLift.app from console +# Author: Adam Strzelecki nanoant.com, modified by Bodo Tasche bitboxer.de +# +# Usage: +# fl [] +# +# Opens specified directory or current working directory in ForkLift.app +# +# Notes: +# It assumes Shift+Cmd+G launches go to folder panel and Cmd+N opens new +# app window. +# +# https://gist.github.com/3313481 +function fl { + if [ ! -z "$1" ]; then + DIR=$1 + if [ ! -d "$DIR" ]; then + DIR=$(dirname $DIR) + fi + if [ "$DIR" != "." ]; then + PWD=`cd "$DIR";pwd` + fi + fi + osascript 2>&1 1>/dev/null < Date: Fri, 17 Aug 2012 16:58:35 +0100 Subject: [PATCH 43/94] Debian plugin now pipes which stderr to stdout The debian plugin calls which to determine whether aptitude & sudo are installed. However, if these are not installed then the error output from which will be output. Since this isn't really an error condition, this commit updates the which calls to pipe stderr to stdout, thus hiding the error messages. --- plugins/debian/debian.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 39d3ef36a..da86b1711 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -6,14 +6,14 @@ # Use aptitude if installed, or apt-get if not. # You can just set apt_pref='apt-get' to override it. -if [[ -e $( which aptitude ) ]]; then +if [[ -e $( which aptitude 2>&1 ) ]]; then apt_pref='aptitude' else apt_pref='apt-get' fi # Use sudo by default if it's installed -if [[ -e $( which sudo ) ]]; then +if [[ -e $( which sudo 2>&1 ) ]]; then use_sudo=1 fi From f995218d081ac66b86d40a0141db5d445147b50d Mon Sep 17 00:00:00 2001 From: "jamie sa (jsa)" Date: Fri, 10 Aug 2012 23:01:55 +0800 Subject: [PATCH 44/94] Add keep branch option. --- plugins/git-flow/git-flow.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh index 71b343884..d9d288b8e 100644 --- a/plugins/git-flow/git-flow.plugin.zsh +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -221,6 +221,7 @@ __git-flow-feature () _arguments \ -F'[Fetch from origin before performing finish]' \ -r'[Rebase instead of merge]'\ + -k'[Keep branch after performing finish]'\ ':feature:__git_flow_feature_list' ;; From 6f92745761afc000b54bd782c7f3bcc0733302f7 Mon Sep 17 00:00:00 2001 From: Cenk Alti Date: Sat, 25 Aug 2012 09:51:58 +0300 Subject: [PATCH 45/94] Added another path for virtualenvwrapper plugin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When you install python via brew on OSX, pip is installed into /usr/local/share/python/ and all packages installed with this pip are installed here. --- plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 5d0860400..8506624b5 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,5 +1,5 @@ WRAPPER_FOUND=0 -for wrapsource in "/usr/bin/virtualenvwrapper.sh" "/usr/local/bin/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do +for wrapsource in "/usr/bin/virtualenvwrapper.sh" "/usr/local/bin/virtualenvwrapper.sh" "/usr/local/share/python/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do if [[ -e $wrapsource ]] ; then WRAPPER_FOUND=1 source $wrapsource From d5e5b7ee5adaf74afa96cae00260c50581d8f46f Mon Sep 17 00:00:00 2001 From: Cenk Alti Date: Sat, 25 Aug 2012 10:26:00 +0300 Subject: [PATCH 46/94] search virtualenvwrapper.sh in PATH --- .../virtualenvwrapper.plugin.zsh | 76 +++++++++---------- 1 file changed, 35 insertions(+), 41 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 8506624b5..a5abb77c3 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,46 +1,40 @@ -WRAPPER_FOUND=0 -for wrapsource in "/usr/bin/virtualenvwrapper.sh" "/usr/local/bin/virtualenvwrapper.sh" "/usr/local/share/python/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do - if [[ -e $wrapsource ]] ; then - WRAPPER_FOUND=1 - source $wrapsource +wrapsource=`which virtualenvwrapper.sh` - if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then - # Automatically activate Git projects' virtual environments based on the - # directory name of the project. Virtual environment name can be overridden - # by placing a .venv file in the project root with a virtualenv name in it - function workon_cwd { - # Check that this is a Git repo - PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` - if (( $? == 0 )); then - # Check for virtualenv name override - ENV_NAME=`basename "$PROJECT_ROOT"` - if [[ -f "$PROJECT_ROOT/.venv" ]]; then - ENV_NAME=`cat "$PROJECT_ROOT/.venv"` - fi - # 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" - fi - fi - elif [ $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 - unset PROJECT_ROOT - } +if [[ -f "$wrapsource" ]]; then + source $wrapsource - # New cd function that does the virtualenv magic - function cd { - builtin cd "$@" && workon_cwd - } - fi + if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then + # Automatically activate Git projects' virtual environments based on the + # directory name of the project. Virtual environment name can be overridden + # by placing a .venv file in the project root with a virtualenv name in it + function workon_cwd { + # Check that this is a Git repo + PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` + if (( $? == 0 )); then + # Check for virtualenv name override + ENV_NAME=`basename "$PROJECT_ROOT"` + if [[ -f "$PROJECT_ROOT/.venv" ]]; then + ENV_NAME=`cat "$PROJECT_ROOT/.venv"` + fi + # 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" + fi + fi + elif [ $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 + unset PROJECT_ROOT + } - break + # New cd function that does the virtualenv magic + function cd { + builtin cd "$@" && workon_cwd + } fi -done - -if [ $WRAPPER_FOUND -eq 0 ] ; then - print "zsh virtualenvwrapper plugin: Couldn't activate virtualenvwrapper. Please run \`pip install virtualenvwrapper\`." +else + print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper.sh. Please install with \`pip install virtualenvwrapper\`." fi From 28d3b80db1d5d976a809bc01da191be5b1768fcb Mon Sep 17 00:00:00 2001 From: Xavier Lacoste Date: Thu, 30 Aug 2012 16:25:36 +0200 Subject: [PATCH 47/94] Add empty function rbenv_prompt_info() if doesn't exists --- themes/jonathan.zsh-theme | 2 ++ 1 file changed, 2 insertions(+) diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme index 2f0c4b917..9f0f30271 100644 --- a/themes/jonathan.zsh-theme +++ b/themes/jonathan.zsh-theme @@ -1,3 +1,5 @@ +functions rbenv_prompt_info >& /dev/null || rbenv_prompt_info(){} + function theme_precmd { local TERMWIDTH (( TERMWIDTH = ${COLUMNS} - 1 )) From 2643ac975bff9513753b6e3d99a34164e48955f7 Mon Sep 17 00:00:00 2001 From: Nicholas Hutchinson Date: Sun, 2 Sep 2012 10:38:08 +1200 Subject: [PATCH 48/94] Update fishy theme to collapse working directory in PROMPT. For non-trailing path components, we show only the first character. So, as in Fish proper, we convert ~/some/really/really/really/long/path/name to ~/s/r/r/r/l/p/name. --- themes/fishy.zsh-theme | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/themes/fishy.zsh-theme b/themes/fishy.zsh-theme index f9e506cae..e9f78a54e 100644 --- a/themes/fishy.zsh-theme +++ b/themes/fishy.zsh-theme @@ -1,7 +1,11 @@ # ZSH Theme emulating the Fish shell's default prompt. +_fishy_collapsed_wd() { + echo $(pwd | perl -pe "s|^$HOME|~|g; s|/([^/])[^/]*(?=/)|/\$1|g") +} + local user_color='green'; [ $UID -eq 0 ] && user_color='red' -PROMPT='%n@%m %{$fg[$user_color]%}%~%{$reset_color%}%(!.#.>) ' +PROMPT='%n@%m %{$fg[$user_color]%}$(_fishy_collapsed_wd)%{$reset_color%}%(!.#.>) ' PROMPT2='%{$fg[red]%}\ %{$reset_color%}' local return_status="%{$fg_bold[red]%}%(?..%?)%{$reset_color%}" From fa859f90d2ba91be36c77520b1a23442c55d9cfe Mon Sep 17 00:00:00 2001 From: Ben Cao Date: Mon, 3 Sep 2012 11:51:28 +0800 Subject: [PATCH 49/94] fix rvm auto complete, pointing to $rvm_path --- plugins/rvm/_rvm | 147 ------------------------------------- plugins/rvm/rvm.plugin.zsh | 7 +- 2 files changed, 6 insertions(+), 148 deletions(-) delete mode 100644 plugins/rvm/_rvm diff --git a/plugins/rvm/_rvm b/plugins/rvm/_rvm deleted file mode 100644 index bba5304a0..000000000 --- a/plugins/rvm/_rvm +++ /dev/null @@ -1,147 +0,0 @@ -#compdef rvm - -local curcontext="$curcontext" state line cmds ret=1 - -_arguments -C \ - '(- 1 *)'{-v,--version}'[display version information]' \ - '(-l|--level)'{-l,--level}'+[patch level to use with rvm use / install]:number' \ - '(--prefix)--prefix[path for all rvm files (~/.rvm/), with trailing slash!]:path:_files' \ - '(--bin)--bin[path for binaries to be placed (~/.rvm/bin/)]:path:_files' \ - '(--source)--source[src directory to use (~/.rvm/src/)]:path:_files' \ - '(--archives)--archives[directory for downladed files (~/.rvm/archives/)]:path:_files' \ - '-S[Specify a script file to attempt to load and run (rubydo)]:file:_files' \ - '-e[Execute code from the command line]:code' \ - '(-G)-G[root gem path to use]:path:_files' \ - '(--gems)--gems[Used to set the gems_flag, use with remove to remove gems]' \ - '(--archive)--archive[Used to set the archive_flag, use with remove to remove archive]' \ - '(--patch)--patch[With MRI Rubies you may specify one or more full paths to patches]' \ - '(-C|--configure)'{-C,--configure}'=[custom configure options]' \ - '(--nice)--nice[process niceness (for slow computers, default 0)]:number' \ - '(--ree)--ree-options[Options passed directly to ree ./installer on the command line]:options' \ - '(--head)--head[with update, updates rvm to git head version]' \ - '(--rubygems)--rubygems[with update, updates rubygems for selected ruby]' \ - '(--default)--default[with ruby select, sets a default ruby for new shells]' \ - '(--debug)--debug[Toggle debug mode on for very verbose output]' \ - '(--trace)--trace[Toggle trace mode on to see EVERYTHING rvm is doing]' \ - '(--force)--force[Force install, removes old install & source before install]' \ - '(--summary)--summary[Used with rubydo to print out a summary of the commands run]' \ - '(--latest)--latest[with gemset --dump skips version strings for latest gem]' \ - '(--gems)--gems[with uninstall/remove removes gems with the interpreter]' \ - '(--docs)--docs[with install, attempt to generate ri after installation]' \ - '(--reconfigure)--reconfigure[Force ./configure on install even if Makefile already exists]' \ - '1: :->cmds' \ - '*: :->args' && ret=0 - -case $state in - cmds) - cmds=( - "version:show the rvm version installed in rvm_path" - "use:setup current shell to use a specific ruby version" - "reload:reload rvm source itself (useful after changing rvm source)" - "implode:(seppuku) removes the rvm installation completely. This means everything in $rvm_path (~/.rvm)." - "update:upgrades rvm to the latest version." - "reset:remove current and stored default & system settings." - "info :show the *current* environment information for current ruby" - "current:print the *current* ruby version and the name of any gemset being used." - "debug:show info plus additional information for common issues" - "install:install one or many ruby versions" - "uninstall:uninstall one or many ruby versions, leaves their sources" - "remove:uninstall one or many ruby versions and remove their sources" - "migrate:Lets you migrate all gemsets from one ruby to another." - "upgrade:Lets you upgrade from one version of a ruby to another, including migrating your gemsets semi-automatically." - "wrapper:generates a set of wrapper executables for a given ruby with the specified ruby and gemset combination. Used under the hood for passenger support and the like." - "cleanup:Lets you remove stale source folders / archives and other miscellaneous data associated with rvm." - "repair:Lets you repair parts of your environment e.g. wrappers, env files and and similar files (e.g. general maintenance)." - "snapshot:Lets your backup / restore an rvm installation in a lightweight manner." - "disk-usage:Tells you how much disk space rvm install is using." - "tools:Provides general information about the ruby environment, primarily useful when scripting rvm." - "docs:Tools to make installing ri and rdoc documentation easier." - "rvmrc:Tools related to managing rvmrc trust and loading." - "exec:runs an arbitrary command as a set operation." - "ruby:runs a named ruby file against specified and/or all rubies" - "gem:runs a gem command using selected ruby's 'gem'" - "rake:runs a rake task against specified and/or all rubies" - "tests:runs 'rake test' across selected ruby versions" - "specs:runs 'rake spec' across selected ruby versions" - "monitor:Monitor cwd for testing, run rake {spec,test} on changes." - "gemset:gemsets: http://rvm.beginrescueend.com/gemsets/" - "rubygems:Switches the installed version of rubygems for the current ruby." - "gemdir:display the path to the current gem directory (GEM_HOME)." - "srcdir:display the path to rvm source directory (may be yanked)" - "fetch:Performs an archive / src fetch only of the selected ruby." - "list:show currently installed rubies, interactive output." - "package:Install a dependency package {readline,iconv,zlib,openssl}" - "notes:Display notes, with operating system specifics." - "export:Temporarily set an environment variable in the current shell." - "unexport:Undo changes made to the environment by 'rvm export'." - ) - _describe -t commands 'rvm command' cmds && ret=0 - ;; - args) - case $line[1] in - (use|uninstall|remove|list) - _values -S , 'rubies' $(rvm list strings | sed -e 's/ruby-\([^) ]*\)-\([^) ]*\)/ruby-\1-\2 \1-\2 \1/g') default system && ret=0 - ;; - (install|fetch) - _values -S , 'rubies' $(rvm list known_strings) && ret=0 - ;; - gemset) - if (( CURRENT == 3 )); then - _values 'gemset_commands' \ - 'import' \ - 'export' \ - 'create' \ - 'copy' \ - 'rename' \ - 'empty' \ - 'delete' \ - 'name' \ - 'dir' \ - 'list' \ - 'list_all' \ - 'gemdir' \ - 'install' \ - 'pristine' \ - 'clear' \ - 'use' \ - 'update' \ - 'unpack' \ - 'globalcache' - else - _values -S , 'gemsets' $(rvm gemset list | grep -v gemset 2>/dev/null) - fi - ret=0 - ;; - package) - if (( CURRENT == 3 )); then - _values 'package_commands' \ - 'install' \ - 'uninstall' - else - _values 'packages' \ - 'readline' \ - 'iconv' \ - 'curl' \ - 'openssl' \ - 'zlib' \ - 'autoconf' \ - 'ncurses' \ - 'pkgconfig' \ - 'gettext' \ - 'glib' \ - 'mono' \ - 'llvm' \ - 'libxml2' \ - 'libxslt' \ - 'libyaml' - fi - ret=0 - ;; - *) - (( ret )) && _message 'no more arguments' - ;; - esac - ;; -esac - -return ret diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index 604c00713..e0c58ebda 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -2,7 +2,7 @@ alias rubies='rvm list rubies' alias gemsets='rvm gemset list' local ruby18='ruby-1.8.7-p334' -local ruby19='ruby-1.9.2-p180' +local ruby19='ruby-1.9.3-p194' function rb18 { if [ -z "$1" ]; then @@ -42,3 +42,8 @@ function gems { -Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ -Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" } + +function _rvm_completion { + source $rvm_path"/scripts/zsh/Completion/_rvm" +} +compdef _rvm_completion rvm From cfeb57024d78d84521ea6676a49182dee9a98b52 Mon Sep 17 00:00:00 2001 From: Reza Date: Mon, 3 Sep 2012 21:20:45 +0430 Subject: [PATCH 50/94] Nuke _cap_does_task_list_need_generating Thanks @docwhat --- plugins/capistrano/_capistrano | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/plugins/capistrano/_capistrano b/plugins/capistrano/_capistrano index 2ae977fcd..cf6b50c7f 100644 --- a/plugins/capistrano/_capistrano +++ b/plugins/capistrano/_capistrano @@ -1,17 +1,8 @@ #compdef cap #autoload -_cap_does_task_list_need_generating () { - if [ ! -f .cap_tasks~ ]; then return 0; - else - accurate=$(stat -f%m .cap_tasks~) - changed=$(stat -f%m config/deploy.rb) - return $(expr $accurate '>=' $changed) - fi -} - if [ -f config/deploy.rb ]; then - if _cap_does_task_list_need_generating; then + if [[ ! -f .cap_tasks~ || config/deploy.rb -nt .cap_tasks~ ]]; then echo "\nGenerating .cap_tasks~..." > /dev/stderr cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ fi From 28d28ee6f6128b3194ac6e28839aabb9a9018c4e Mon Sep 17 00:00:00 2001 From: Alexander Surma Date: Fri, 14 Sep 2012 13:57:13 +0200 Subject: [PATCH 51/94] git plugin: Add `gpoat` alias --- plugins/git/git.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..46a1419ba 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -38,6 +38,7 @@ alias gm='git merge' compdef _git gm=git-merge alias grh='git reset HEAD' alias grhh='git reset HEAD --hard' +alias gpoat='git push origin --all && git push origin --tags' # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' From 11a4c67f340b400a3d9cc9913b4f49d708e01a57 Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Mon, 17 Sep 2012 10:19:37 -0600 Subject: [PATCH 52/94] Added junkfood theme --- themes/junkfood.zsh-theme | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 themes/junkfood.zsh-theme diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme new file mode 100644 index 000000000..a265f29f1 --- /dev/null +++ b/themes/junkfood.zsh-theme @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------ +# Tyler Cipriani +# oh-my-zsh theme +# Totally ripped off Dallas theme +# ------------------------------------------------------------------------ + +# Grab the current date (%W) and time (%t): +JUNKFOOD_TIME_="%{$fg_bold[white]%}#%t%{$fg_bold[white]%} – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" + +# Grab the current machine name +JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" + +# Grab the current username +JUNKFOOD_CURRENT_USER_="%{$fg_bold[green]%}%n%{$reset_color%}" + +# Grab the current filepath, use shortcuts: ~/Desktop +# Append the current git branch, if in a git repository: ~aw@master +JUNKFOOD_LOCA_="%{$fg[cyan]%}%~\$(git_prompt_info)%{$reset_color%}" + +# For the git prompt, use a white @ and blue text for the branch name +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}@%{$fg_bold[white]%}" + +# Close it all off by resetting the color and styles. +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" + +# Do nothing if the branch is clean (no changes). +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}✔" + +# Add 3 cyan ✗s if this branch is diiirrrty! Dirty branch! +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✗✗✗" + +# Put it all together! +PROMPT="$JUNKFOOD_TIME_$JUNKFOOD_CURRENT_USER_@$JUNKFOOD_MACHINE_$JUNKFOOD_LOCA_ + " From 00e11991e0fec9e4db783550a1c849c48920f02a Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Mon, 17 Sep 2012 10:25:19 -0600 Subject: [PATCH 53/94] Added space to prompt --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index a265f29f1..bfe3913de 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[white]%}#%t%{$fg_bold[white]%} – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[white]%}# %t%{$fg_bold[white]%} – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" From b534b3806357492a19b25841c7c0ad6a416f33aa Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Mon, 17 Sep 2012 12:16:06 -0600 Subject: [PATCH 54/94] Added fat arrow the theme --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index bfe3913de..a3631a2b0 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[white]%}# %t%{$fg_bold[white]%} – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" From a8d426087bf5f79ee4c8c05e8debca01b4af5fd5 Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Mon, 17 Sep 2012 14:12:09 -0600 Subject: [PATCH 55/94] modified spacing on junkfood theme --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index a3631a2b0..bb250e19b 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -31,4 +31,4 @@ ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✗✗✗" # Put it all together! PROMPT="$JUNKFOOD_TIME_$JUNKFOOD_CURRENT_USER_@$JUNKFOOD_MACHINE_$JUNKFOOD_LOCA_ - " + " From 55c69017c501e30c8aa5a89104575f2863a26663 Mon Sep 17 00:00:00 2001 From: SK Date: Tue, 18 Sep 2012 22:10:11 +0700 Subject: [PATCH 56/94] Replace cp verbose with rsync Rsync can help track progress while file is copying --- plugins/cp/cp.plugin.zsh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 plugins/cp/cp.plugin.zsh diff --git a/plugins/cp/cp.plugin.zsh b/plugins/cp/cp.plugin.zsh new file mode 100644 index 000000000..7355a9990 --- /dev/null +++ b/plugins/cp/cp.plugin.zsh @@ -0,0 +1,14 @@ +#Show progress while file is copying + +# Rsync options are: +# -p - preserve permissions +# -o - preserve owner +# -g - preserve group +# -h - output in human-readable format +# --progress - display progress +# -b - instead of just overwriting an existing file, save the original +# --backup-dir=/tmp/rsync - move backup copies to "/tmp/rsync" +# -e /dev/null - only work on local files +# -- - everything after this is an argument, even if it looks like an option + +alias cpv="rsync -poghb --backup-dir=/tmp/rsync -e /dev/null --progress --" From 9510eb0e5a2ae7526ac66bec8e01c39322a8b254 Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Tue, 18 Sep 2012 11:13:36 -0600 Subject: [PATCH 57/94] Modified spacing one last time --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index bb250e19b..5022a8d98 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜ %{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" From 8ecc252f0cfd21281be4e4549a8c86248e85a700 Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Wed, 19 Sep 2012 09:34:45 -0600 Subject: [PATCH 58/94] Last spacing adjustment...I swear --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index 5022a8d98..bb250e19b 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜ %{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" From 00bff0a9963d4b36e6afc968449781c727bfef3b Mon Sep 17 00:00:00 2001 From: James Smith Date: Thu, 20 Sep 2012 19:35:09 -0700 Subject: [PATCH 59/94] Red prompt for remote hosts --- themes/intheloop.zsh-theme | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/themes/intheloop.zsh-theme b/themes/intheloop.zsh-theme index c4736422d..85b4a4d95 100644 --- a/themes/intheloop.zsh-theme +++ b/themes/intheloop.zsh-theme @@ -3,10 +3,16 @@ local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}" +local host_color="green" +if [ -n "$SSH_CLIENT" ]; then + local host_color="red" +fi + PROMPT=' -%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[green]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status) +%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[${host_color}]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status) %{$fg_bold[cyan]%}❯%{$reset_color%} ' + RPROMPT='${return_status}%{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[grey]%}(%{$fg[red]%}" From 5e0fd9bb9f8f11da1d7562f5e867a28706accb57 Mon Sep 17 00:00:00 2001 From: Martin Foot Date: Wed, 26 Sep 2012 14:16:15 +0100 Subject: [PATCH 60/94] Add user-local installation autojump zsh plugin source If you manually install autojump as advised by the autojump README by running the install.sh script, it will install by default to $HOME/.autojump. Add an extra case in the zsh autojump plugin to find the new file and stop a syntax error in the else clause every time a new zsh starts (running brew when brew does not exist). --- plugins/autojump/autojump.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index d367863b8..ca0090560 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -3,6 +3,8 @@ if [ $commands[autojump] ]; then # check if autojump is installed . /usr/share/autojump/autojump.zsh elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation . /etc/profile.d/autojump.zsh + elif [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation + . $HOME/.autojump/etc/profile.d/autojump.zsh elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports . /opt/local/etc/profile.d/autojump.zsh elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump ]; then # mac os x with brew From 58d904a28960f6962eb27a6105e83d57cb553aba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Augusto=20Rocha=20Elesb=C3=A3o?= Date: Mon, 1 Oct 2012 11:29:06 -0300 Subject: [PATCH 61/94] Added systemd plugin with aliases for systemctl commands. --- plugins/systemd/systemd.plugin.zsh | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 plugins/systemd/systemd.plugin.zsh diff --git a/plugins/systemd/systemd.plugin.zsh b/plugins/systemd/systemd.plugin.zsh new file mode 100644 index 000000000..7d3db0f8e --- /dev/null +++ b/plugins/systemd/systemd.plugin.zsh @@ -0,0 +1,11 @@ +user_commands=( + list-units is-active status show help list-unit-files + is-enabled list-jobs show-environment) + +sudo_commands=( + start stop reload restart try-restart isolate kill + reset-failed enable disable reenable preset mask unmask + link load cancel set-environment unset-environment) + +for c in $user_commands; do; alias sc-$c="systemctl $c"; done +for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done From 43bd46b780cdf60b318f452e40b893ae18e77c41 Mon Sep 17 00:00:00 2001 From: Markus Scherer Date: Wed, 3 Oct 2012 17:18:14 +0200 Subject: [PATCH 62/94] fix title setting bug in xterm and urxvt Before this patch, commands containing %-signs set the title wrong (urxvt and xterm) [1] and produce strange output in urxvt [2]. test for bug 1: > sleep 10 && echo % sets title to "sleep 10 && echo %<<" > sleep 10 && echo %f doesn't change the title at all test for bug 2 (only urxvt): > echo %f 39m%f ^^^^^----- output --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index e26fef6d3..4701e46c5 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -27,7 +27,7 @@ function omz_termsupport_preexec { emulate -L zsh setopt extended_glob local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd - title "$CMD" "%100>...>$2%<<" + title "$CMD" "%100>...>${2:gs/%/%%}%<<" } autoload -U add-zsh-hook From 8d86bb298d51d619c88d2aad400007b67c4d438b Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Thu, 11 Oct 2012 09:26:39 -0600 Subject: [PATCH 63/94] moved spacing --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index bb250e19b..1d574664d 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t–%{$fg_bold[yellow]%}%W%{$fg_bold[white]%}–%{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" From bb5db62314b0fb31b21326d8483c5e97405c07bb Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Thu, 11 Oct 2012 13:48:38 -0600 Subject: [PATCH 64/94] removed weird characters --- themes/junkfood.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index 1d574664d..f9bb28fad 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,10 +5,10 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t–%{$fg_bold[yellow]%}%W%{$fg_bold[white]%}–%{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#(%{$fg_bold[white]%}%t on %{$fg_bold[yellow]%}%W%{$fg_bold[white]%})%{$reset_color%}" # Grab the current machine name -JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" +JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}):%{$reset_color%}" # Grab the current username JUNKFOOD_CURRENT_USER_="%{$fg_bold[green]%}%n%{$reset_color%}" From 2ba668b91ccfdf6dd273d5b1358ee9cafa302534 Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Thu, 11 Oct 2012 13:57:21 -0600 Subject: [PATCH 65/94] parens tweak --- themes/junkfood.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index f9bb28fad..835103532 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,10 +5,10 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#(%{$fg_bold[white]%}%t on %{$fg_bold[yellow]%}%W%{$fg_bold[white]%})%{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#%{$fg_bold[white]%}( %t on %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} )( %{$reset_color%}" # Grab the current machine name -JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}):%{$reset_color%}" +JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%} ):%{$reset_color%}" # Grab the current username JUNKFOOD_CURRENT_USER_="%{$fg_bold[green]%}%n%{$reset_color%}" From 5872daea49104607efd64208a314aba10823af0b Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Thu, 11 Oct 2012 13:59:08 -0600 Subject: [PATCH 66/94] spacing makes me something --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index 835103532..c2a96ed7b 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -31,4 +31,4 @@ ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✗✗✗" # Put it all together! PROMPT="$JUNKFOOD_TIME_$JUNKFOOD_CURRENT_USER_@$JUNKFOOD_MACHINE_$JUNKFOOD_LOCA_ - " + " From 53412de75c982a07fac902e8deec929c4fe32abc Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Thu, 11 Oct 2012 14:02:55 -0600 Subject: [PATCH 67/94] Something to be said for symmetry --- themes/junkfood.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index c2a96ed7b..57b4070dc 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#%{$fg_bold[white]%}( %t on %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} )( %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#%{$fg_bold[white]%}( %{$fg_bold[yellow]%}%W%{$reset_color%}@%{$fg_bold[white]%}%t )( %{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%} ):%{$reset_color%}" @@ -31,4 +31,4 @@ ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✗✗✗" # Put it all together! PROMPT="$JUNKFOOD_TIME_$JUNKFOOD_CURRENT_USER_@$JUNKFOOD_MACHINE_$JUNKFOOD_LOCA_ - " + " From 8f7b126d2f7369dde512f61f9351809ebf27649e Mon Sep 17 00:00:00 2001 From: Alexander Berezovsky Date: Sat, 13 Oct 2012 13:33:28 -0700 Subject: [PATCH 68/94] updated symbol --- themes/fino-time.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/fino-time.zsh-theme b/themes/fino-time.zsh-theme index 22c7a0981..7154e09f1 100644 --- a/themes/fino-time.zsh-theme +++ b/themes/fino-time.zsh-theme @@ -16,7 +16,7 @@ function virtualenv_info { } function prompt_char { - git branch >/dev/null 2>/dev/null && echo '±' && return + git branch >/dev/null 2>/dev/null && echo '⠠⠵' && return echo '○' } From daa6ecebc1034dab162c90b4fd7f4cb605d969d4 Mon Sep 17 00:00:00 2001 From: Felix Dreissig Date: Sat, 13 Oct 2012 22:53:34 +0200 Subject: [PATCH 69/94] Set the '-R' option for less not in $PAGER, but as $LESS. --- lib/misc.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/misc.zsh b/lib/misc.zsh index 0f7e7e925..a8678b8ec 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -9,5 +9,7 @@ bindkey "^[m" copy-prev-shell-word setopt long_list_jobs ## pager -export PAGER="less -R" +export PAGER="less" +export LESS="-R" + export LC_CTYPE=$LANG From 2fa02621b27fbb3b788ee8576717fa64b2cb0065 Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Sun, 14 Oct 2012 22:07:38 +0800 Subject: [PATCH 70/94] add git-extras plugin --- plugins/git-extras/git-extras.plugin.zsh | 285 +++++++++++++++++++++++ 1 file changed, 285 insertions(+) create mode 100644 plugins/git-extras/git-extras.plugin.zsh diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh new file mode 100644 index 000000000..8419166ab --- /dev/null +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -0,0 +1,285 @@ +#compdef git +# ------------------------------------------------------------------------------ +# Description +# ----------- +# +# Completion script for git-extras (http://github.com/visionmedia/git-extras). +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Alexis GRIMALDI (https://github.com/agrimaldi) +# +# ------------------------------------------------------------------------------ +# Inspirations +# ----------- +# +# * git-extras (http://github.com/visionmedia/git-extras) +# * git-flow-completion (http://github.com/bobthecow/git-flow-completion) +# +# ------------------------------------------------------------------------------ + + +__git_command_successful () { + if (( ${#pipestatus:#0} > 0 )); then + _message 'not a git repository' + return 1 + fi + return 0 +} + + +__git_tag_names() { + local expl + declare -a tag_names + tag_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/tags 2>/dev/null)"}#refs/tags/}) + __git_command_successful || return + _wanted tag-names expl tag-name compadd $* - $tag_names +} + + +__git_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_feature_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/feature 2>/dev/null)"}#refs/heads/feature/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_refactor_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/refactor 2>/dev/null)"}#refs/heads/refactor/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_bug_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/bug 2>/dev/null)"}#refs/heads/bug/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_submodule_names() { + local expl + declare -a submodule_names + submodule_names=(${(f)"$(_call_program branchrefs git submodule status | awk '{print $2}')"}) + __git_command_successful || return + _wanted submodule-names expl submodule-name compadd $* - $submodule_names +} + + +__git_author_names() { + local expl + declare -a author_names + author_names=(${(f)"$(_call_program branchrefs git log --format='%aN' | sort -u)"}) + __git_command_successful || return + _wanted author-names expl author-name compadd $* - $author_names +} + + +_git-changelog() { + _arguments \ + '(-l --list)'{-l,--list}'[list commits]' \ +} + + +_git-effort() { + _arguments \ + '--above[ignore file with less than x commits]' \ +} + + +_git-contrib() { + _arguments \ + ':author:__git_author_names' +} + + +_git-count() { + _arguments \ + '--all[detailed commit count]' +} + + +_git-delete-branch() { + _arguments \ + ':branch-name:__git_branch_names' +} + + +_git-delete-submodule() { + _arguments \ + ':submodule-name:__git_submodule_names' +} + + +_git-delete-tag() { + _arguments \ + ':tag-name:__git_tag_names' +} + + +_git-extras() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'update:update git-extras' + ) + _describe -t commands command commands && ret=0 + ;; + esac + + _arguments \ + '(-v --version)'{-v,--version}'[show current version]' \ +} + + +_git-graft() { + _arguments \ + ':src-branch-name:__git_branch_names' \ + ':dest-branch-name:__git_branch_names' +} + + +_git-squash() { + _arguments \ + ':branch-name:__git_branch_names' +} + + +_git-feature() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge feature into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_feature_branch_names' + ;; + esac + esac +} + + +_git-refactor() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge refactor into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_refactor_branch_names' + ;; + esac + esac +} + + +_git-bug() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge bug into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_bug_branch_names' + ;; + esac + esac +} + + +zstyle ':completion:*:*:git:*' user-commands \ + changelog:'populate changelog file with commits since the previous tag' \ + contrib:'display author contributions' \ + count:'count commits' \ + delete-branch:'delete local and remote branch' \ + delete-submodule:'delete submodule' \ + delete-tag:'delete local and remote tag' \ + extras:'git-extras' \ + graft:'merge commits from source branch to destination branch' \ + squash:'merge commits from source branch into the current one as a single commit' \ + feature:'create a feature branch' \ + refactor:'create a refactor branch' \ + bug:'create a bug branch' \ + summary:'repository summary' \ + effort:'display effort statistics' \ + repl:'read-eval-print-loop' \ + commits-since:'list commits since a given date' \ + release:'release commit with the given tag' \ + alias:'define, search and show aliases' \ + ignore:'add patterns to .gitignore' \ + info:'show info about the repository' \ + create-branch:'create local and remote branch' \ + fresh-branch:'create empty local branch' \ + undo:'remove the latest commit' \ + setup:'setup a git repository' \ + touch:'one step creation of new files' \ + obliterate:'Completely remove a file from the repository, including past commits and tags' \ + local-commits:'list unpushed commits on the local branch' \ From 7e2156a1b17a16243e92569c4df82c562f75ffb2 Mon Sep 17 00:00:00 2001 From: Rainer Dreyer Date: Mon, 22 Oct 2012 00:12:00 +0200 Subject: [PATCH 71/94] Fixed node-docs The `#anchor` tags on [nodejs.org](http://nodejs.org/docs/v0.8.2/api/all.html) changed. This fixes the `node-docs` command. --- plugins/node/node.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/node/node.plugin.zsh b/plugins/node/node.plugin.zsh index 519bc18da..3bbed6f04 100644 --- a/plugins/node/node.plugin.zsh +++ b/plugins/node/node.plugin.zsh @@ -1,5 +1,5 @@ # Open the node api for your current version to the optional section. # TODO: Make the section part easier to use. function node-docs { - open "http://nodejs.org/docs/$(node --version)/api/all.html#$1" + open "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1" } From c592f55af1fbb2050b6060666312149711873133 Mon Sep 17 00:00:00 2001 From: dsx Date: Fri, 26 Oct 2012 12:38:17 -0400 Subject: [PATCH 72/94] Added ability to specify list of directories for pyclean to override default current directory --- plugins/python/python.plugin.zsh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh index 8be3cd863..852c8b919 100644 --- a/plugins/python/python.plugin.zsh +++ b/plugins/python/python.plugin.zsh @@ -1,8 +1,12 @@ # Find python file alias pyfind='find . -name "*.py"' -# Remove python compiled byte-code -alias pyclean='find . -type f -name "*.py[co]" -delete' +# Remove python compiled byte-code in either current directory or in a +# list of specified directories +function pyclean() { + ZSH_PYCLEAN_PLACES=${*:-'.'} + find ${ZSH_PYCLEAN_PLACES} -type f -name "*.py[co]" -delete +} # Grep among .py files alias pygrep='grep --include="*.py"' From 4d8fe543ff8099daad155e2c41974525370dc435 Mon Sep 17 00:00:00 2001 From: Guillermo Castro Date: Fri, 26 Oct 2012 16:51:48 -0700 Subject: [PATCH 73/94] Updated code from answer URL --- plugins/terminalapp/terminalapp.plugin.zsh | 42 ++++++++++++++++++---- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/plugins/terminalapp/terminalapp.plugin.zsh b/plugins/terminalapp/terminalapp.plugin.zsh index 4695ad055..2249b1e2f 100644 --- a/plugins/terminalapp/terminalapp.plugin.zsh +++ b/plugins/terminalapp/terminalapp.plugin.zsh @@ -1,11 +1,39 @@ # Set Apple Terminal.app resume directory # based on this answer: http://superuser.com/a/315029 +# 2012-10-26: (javageek) Changed code using the updated answer -function chpwd { - local SEARCH=' ' - local REPLACE='%20' - local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}" - printf '\e]7;%s\a' "$PWD_URL" -} +# Tell the terminal about the working directory whenever it changes. +if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then + update_terminal_cwd() { + # Identify the directory using a "file:" scheme URL, including + # the host name to disambiguate local vs. remote paths. -chpwd \ No newline at end of file + # Percent-encode the pathname. + local URL_PATH='' + { + # Use LANG=C to process text byte-by-byte. + local i ch hexch LANG=C + for ((i = 1; i <= ${#PWD}; ++i)); do + ch="$PWD[i]" + if [[ "$ch" =~ [/._~A-Za-z0-9-] ]]; then + URL_PATH+="$ch" + else + hexch=$(printf "%02X" "'$ch") + URL_PATH+="%$hexch" + fi + done + } + + local PWD_URL="file://$HOST$URL_PATH" + #echo "$PWD_URL" # testing + printf '\e]7;%s\a' "$PWD_URL" + } + + # Register the function so it is called whenever the working + # directory changes. + autoload add-zsh-hook + add-zsh-hook chpwd update_terminal_cwd + + # Tell the terminal about the initial directory. + update_terminal_cwd +fi From 1c9f2e81066a2e86d001fe14b5be48660273b5e4 Mon Sep 17 00:00:00 2001 From: "hjhart@gmail.com" Date: Mon, 29 Oct 2012 10:26:19 -0700 Subject: [PATCH 74/94] Update plugins/jira/jira.plugin.zsh Updated to allow for usage of the new Rapid Board jira url formats --- plugins/jira/jira.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index 636e4619e..de8d10529 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -14,7 +14,7 @@ open_jira_issue () { `open $jira_url/secure/CreateIssue!default.jspa`; else echo "Opening issue #$1"; - `open $jira_url/issues/$1`; + `open $jira_url/browse/$1`; fi fi } From 263446d7259e22a21fe797284607fd2423fb076b Mon Sep 17 00:00:00 2001 From: Hok Shun Poon Date: Tue, 30 Oct 2012 22:42:52 +0000 Subject: [PATCH 75/94] Expand for-loop so that it works under Snow Leopard Terminal.app. --- oh-my-zsh.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index ddef1ad6c..4a5b175d5 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -11,7 +11,9 @@ fpath=($ZSH/functions $ZSH/completions $fpath) # Load all of the config files in ~/oh-my-zsh that end in .zsh # TIP: Add files you don't want in git to .gitignore -for config_file ($ZSH/lib/*.zsh) source $config_file +for config_file ($ZSH/lib/*.zsh); do + source $config_file +done # Set ZSH_CUSTOM to the path where your custom config files # and plugins exists, or else we will use the default custom/ @@ -51,7 +53,9 @@ for plugin ($plugins); do done # Load all of your custom configurations from custom/ -for config_file ($ZSH_CUSTOM/*.zsh(N)) source $config_file +for config_file ($ZSH_CUSTOM/*.zsh(N)); do + source $config_file +done # Load the theme if [ "$ZSH_THEME" = "random" ] From 4e513d72b9542b7b5079451e3380b4a98b0b7b56 Mon Sep 17 00:00:00 2001 From: Jim Hester Date: Fri, 2 Nov 2012 11:06:32 -0400 Subject: [PATCH 76/94] Fixes for vi-mode terminal overwriting bugs fixes #387 and https://github.com/robbyrussell/oh-my-zsh/pull/1321#issuecomment-9959540 and other problems of prompt overwriting when people did not realize that it was vi mode causing the problem. Hat tip to sorin ionescu, as I took this code from prezto --- plugins/vi-mode/vi-mode.plugin.zsh | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index d29eb1dda..e23bd3c54 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -1,8 +1,26 @@ -function zle-line-init zle-keymap-select { +# Ensures that $terminfo values are valid and updates editor information when +# the keymap changes. +function zle-keymap-select zle-line-init zle-line-finish { + # The terminal must be in application mode when ZLE is active for $terminfo + # values to be valid. + if (( $+terminfo[smkx] && $+terminfo[rmkx] )); then + case "$0" in + (zle-line-init) + # Enable terminal application mode. + echoti smkx + ;; + (zle-line-finish) + # Disable terminal application mode. + echoti rmkx + ;; + esac + fi zle reset-prompt + zle -R } zle -N zle-line-init +zle -N zle-line-finish zle -N zle-keymap-select #changing mode clobbers the keybinds, so store the keybinds before and execute From 6f6a3c84356f19f14d69fdf994497a4ebb3fa8c1 Mon Sep 17 00:00:00 2001 From: Rui Marinho Date: Sun, 29 Jul 2012 02:32:11 +0200 Subject: [PATCH 77/94] Added sf Symfony2 binary alias --- plugins/symfony2/symfony2.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index 223401298..cc9ffebc0 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -11,7 +11,9 @@ _symfony2 () { } compdef _symfony2 app/console +compdef _symfony2 sf #Alias alias sf2='php app/console' -alias sf2clear='php app/console cache:clear' \ No newline at end of file +alias sf2clear='php app/console cache:clear' + From 6c45d217af77552a4f0b09542985520a577af3d5 Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Mon, 27 Aug 2012 17:20:07 +0100 Subject: [PATCH 78/94] Added host to prompt --- themes/norm.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/norm.zsh-theme b/themes/norm.zsh-theme index 5f0ad03ee..13077ccf5 100644 --- a/themes/norm.zsh-theme +++ b/themes/norm.zsh-theme @@ -1,4 +1,4 @@ -PROMPT='%{$fg[yellow]%}λ %{$fg[green]%}%c %{$fg[yellow]%}→ $(git_prompt_info)%{$reset_color%}' +PROMPT='%{$fg[yellow]%}λ %m %{$fg[green]%}%c %{$fg[yellow]%}→ $(git_prompt_info)%{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="λ %{$fg[blue]%}git %{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[yellow]%} → %{$reset_color%}" From ded745bf1471487c7dc537c781685615ff4c2515 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Fri, 30 Nov 2012 05:58:08 -0800 Subject: [PATCH 79/94] Modifying documentation in zshrc template for new config option --- templates/zshrc.zsh-template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index 758fc26b8..2ea9934af 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -14,11 +14,11 @@ ZSH_THEME="robbyrussell" # Set to this to use case-sensitive completion # CASE_SENSITIVE="true" -# Comment this out to disable weekly auto-update checks +# Comment this out to disable bi-weekly auto-update checks # DISABLE_AUTO_UPDATE="true" -# Change this value to set how frequently ZSH updates¬ -export UPDATE_ZSH_DAYS=13 +# Uncomment to change how many often would you like to wait before auto-updates occur? (in days) +# export UPDATE_ZSH_DAYS=13 # Uncomment following line if you want to disable colors in ls # DISABLE_LS_COLORS="true" From f9de64460ce51e105f27d30a9ecb20612ab65d57 Mon Sep 17 00:00:00 2001 From: Alexander Simonov Date: Sun, 22 May 2011 01:29:41 +0200 Subject: [PATCH 80/94] Simonoff theme --- themes/simonoff.zsh-theme | 142 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 themes/simonoff.zsh-theme diff --git a/themes/simonoff.zsh-theme b/themes/simonoff.zsh-theme new file mode 100644 index 000000000..01f381c48 --- /dev/null +++ b/themes/simonoff.zsh-theme @@ -0,0 +1,142 @@ +# Prompt +# +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +function precmd { + + local TERMWIDTH + (( TERMWIDTH = ${COLUMNS} - 1 )) + + + ### + # Truncate the path if it's too long. + + PR_FILLBAR="" + PR_PWDLEN="" + + local promptsize=${#${(%):---(%n@%M:%l)---()}} + local pwdsize=${#${(%):-%~}} + local gitbranch="$(git_prompt_info)" + local rvmprompt="$(rvm_prompt_info)" + local gitbranchsize=${#${gitbranch:-''}} + local rvmpromptsize=${#${rvmprompt:-''}} + + if [[ "$promptsize + $pwdsize + $rvmpromptsize + $gitbranchsize" -gt $TERMWIDTH ]]; then + ((PR_PWDLEN=$TERMWIDTH - $promptsize)) + else + PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $pwdsize + $rvmpromptsize + $gitbranchsize)))..${PR_SPACE}.)}" + fi +} + + +setopt extended_glob + +preexec () { + if [[ "$TERM" == "screen" ]]; then + local CMD=${1[(wr)^(*=*|sudo|-*)]} + echo -n "\ek$CMD\e\\" + fi + + if [[ "$TERM" == "xterm" ]]; then + print -Pn "\e]0;$1\a" + fi + + if [[ "$TERM" == "rxvt" ]]; then + print -Pn "\e]0;$1\a" + fi + +} + +setprompt () { +### +# Need this so the prompt will work. + + setopt prompt_subst + + +### +# See if we can use colors. + + autoload colors zsh/terminfo + if [[ "$terminfo[colors]" -ge 8 ]]; then + colors + fi + for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do + eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}' + eval PR_LIGHT_$color='%{$fg[${(L)color}]%}' + (( count = $count + 1 )) + done + PR_NO_COLOUR="%{$terminfo[sgr0]%}" + + +### +# See if we can use extended characters to look nicer. + + typeset -A altchar +# set -A altchar "${(s..)terminfo[acsc]}" + PR_SET_CHARSET="%{$terminfo[enacs]%}" + PR_HBAR=${altchar[q]:--} + PR_ULCORNER=${altchar[l]:--} + PR_LLCORNER=${altchar[m]:--} + PR_LRCORNER=${altchar[j]:--} + PR_URCORNER=${altchar[k]:--} + + ### + # Modify Git prompt + ZSH_THEME_GIT_PROMPT_PREFIX=" [" + ZSH_THEME_GIT_PROMPT_SUFFIX="]" + ### + # Modify RVM prompt + ZSH_THEME_RVM_PROMPT_PREFIX=" [" + ZSH_THEME_RVM_PROMPT_SUFFIX="]" + ZSH_THEME_RVM_PROMPT_OPTIONS=(v i) + + +### +# Decide if we need to set titlebar text. + + case $TERM in + xterm*|*rxvt*) + PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%M:%~ $(git_prompt_info) $(rvm_prompt_info) | ${COLUMNS}x${LINES} | %y\a%}' + ;; + screen) + PR_TITLEBAR=$'%{\e_screen \005 (\005t) | %(!.-=[ROOT]=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\e\\%}' + ;; + *) + PR_TITLEBAR='' + ;; + esac + + +### +# Decide whether to set a screen title + if [[ "$TERM" == "screen" ]]; then + PR_STITLE=$'%{\ekzsh\e\\%}' + else + PR_STITLE='' + fi + +### +# Finally, the prompt. +# + PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\ +$PR_RED$PR_HBAR<\ +$PR_BLUE%(!.$PR_RED%SROOT%s.%n)$PR_GREEN@$PR_BLUE%M:$PR_GREEN%$PR_PWDLEN<...<%~$PR_CYAN$(git_prompt_info)$(rvm_prompt_info)\ +$PR_RED>$PR_HBAR$PR_SPACE${(e)PR_FILLBAR}\ +$PR_RED$PR_HBAR<\ +$PR_GREEN%l$PR_RED>$PR_HBAR\ + +$PR_RED$PR_HBAR<\ +%(?..$PR_LIGHT_RED%?$PR_BLUE:)\ +$PR_LIGHT_BLUE%(!.$PR_RED.$PR_WHITE)%#$PR_RED>$PR_HBAR\ +$PR_NO_COLOUR ' + +} + +setprompt From 30687c414785fbc7d7d7d44ae60166075be75da7 Mon Sep 17 00:00:00 2001 From: Alexander Simonov Date: Sun, 22 May 2011 01:31:11 +0200 Subject: [PATCH 81/94] Fix RVM loading and RVM ruby version info --- lib/rvm.zsh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/rvm.zsh b/lib/rvm.zsh index cb870a9bb..a0a48960e 100644 --- a/lib/rvm.zsh +++ b/lib/rvm.zsh @@ -1,5 +1,11 @@ -# get the name of the branch we are on +# load RVM +[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm + +# get the name of the ruby version function rvm_prompt_info() { - ruby_version=$(~/.rvm/bin/rvm-prompt 2> /dev/null) || return - [[ ! -z $ruby_version ]] && echo "($ruby_version)" + [ -f $HOME/.rvm/bin/rvm-prompt ] || return + local rvm_prompt + rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null) + [[ "${rvm_prompt}x" == "x" ]] && return + echo "$ZSH_THEME_RVM_PROMPT_PREFIX$rvm_prompt$ZSH_THEME_RVM_PROMPT_SUFFIX" } From 27841ca7c1bb6bd19e0eb66e1dcc8fa3a6a6ebba Mon Sep 17 00:00:00 2001 From: Alexander Simonov Date: Sun, 2 Dec 2012 20:30:25 +0200 Subject: [PATCH 82/94] Set default for rvm prompt prefix/suffix --- lib/rvm.zsh | 5 +---- themes/simonoff.zsh-theme | 1 - 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/rvm.zsh b/lib/rvm.zsh index a0a48960e..e8744e61e 100644 --- a/lib/rvm.zsh +++ b/lib/rvm.zsh @@ -1,11 +1,8 @@ -# load RVM -[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm - # get the name of the ruby version function rvm_prompt_info() { [ -f $HOME/.rvm/bin/rvm-prompt ] || return local rvm_prompt rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null) [[ "${rvm_prompt}x" == "x" ]] && return - echo "$ZSH_THEME_RVM_PROMPT_PREFIX$rvm_prompt$ZSH_THEME_RVM_PROMPT_SUFFIX" + echo "${ZSH_THEME_RVM_PROMPT_PREFIX:=(}${rvm_prompt}${ZSH_THEME_RVM_PROMPT_SUFFIX:=)}" } diff --git a/themes/simonoff.zsh-theme b/themes/simonoff.zsh-theme index 01f381c48..fb4d32e24 100644 --- a/themes/simonoff.zsh-theme +++ b/themes/simonoff.zsh-theme @@ -95,7 +95,6 @@ setprompt () { # Modify RVM prompt ZSH_THEME_RVM_PROMPT_PREFIX=" [" ZSH_THEME_RVM_PROMPT_SUFFIX="]" - ZSH_THEME_RVM_PROMPT_OPTIONS=(v i) ### From 54f199051124cbbbb3e555c681d65f1aa6942856 Mon Sep 17 00:00:00 2001 From: Viktor Gamov Date: Sun, 2 Dec 2012 13:54:24 -0500 Subject: [PATCH 83/94] Update plugins/sublime/sublime.plugin.zsh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updated run sublime on linux with parameters  --- plugins/sublime/sublime.plugin.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 171f00ef5..9fee18610 100755 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -3,10 +3,11 @@ if [[ $('uname') == 'Linux' ]]; then if [ -f '/usr/bin/sublime_text' ]; then - alias st='/usr/bin/sublime_text&' + st_run() { nohup /usr/bin/sublime_text $@ > /dev/null & } else - alias st='/usr/bin/sublime-text&' + st_run() { nohup /usr/bin/sublime-text $@ > /dev/null & } fi +alias st=st_run elif [[ $('uname') == 'Darwin' ]]; then alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl' fi From 8fe6ea388973defc6bb77a32fb86cef5b8231aea Mon Sep 17 00:00:00 2001 From: Martin Putniorz Date: Sun, 2 Dec 2012 20:55:19 +0100 Subject: [PATCH 84/94] Functions for managing pacman-key --- plugins/archlinux/archlinux.plugin.zsh | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index 294dc5354..ae92a0b4c 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -11,7 +11,7 @@ if [[ -x `which yaourt` ]]; then alias yaupg='yaourt -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. alias yasu='yaourt --sucre' # Same as yaupg, but without confirmation alias yain='yaourt -S' # Install specific package(s) from the repositories - alias yains='yaourt -U' # Install specific package not from the repositories but from a file + alias yains='yaourt -U' # Install specific package not from the repositories but from a file alias yare='yaourt -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies alias yarem='yaourt -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies alias yarep='yaourt -Si' # Display information about a given package in the repositories @@ -35,7 +35,7 @@ fi # Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips alias pacupg='sudo pacman -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. alias pacin='sudo pacman -S' # Install specific package(s) from the repositories -alias pacins='sudo pacman -U' # Install specific package not from the repositories but from a file +alias pacins='sudo pacman -U' # Install specific package not from the repositories but from a file alias pacre='sudo pacman -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies alias pacrem='sudo pacman -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies alias pacrep='pacman -Si' # Display information about a given package in the repositories @@ -75,3 +75,19 @@ pacdisowned() { comm -23 "$fs" "$db" } + +pacmanallkeys() { + # Get all keys for developers and trusted users + curl https://www.archlinux.org/{developers,trustedusers}/ | + awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' | + xargs sudo pacman-key --recv-keys +} + +pacmansignkeys() { + for key in $*; do + sudo pacman-key --recv-keys $key + sudo pacman-key --lsign-key $key + printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \ + --no-permission-warning --command-fd 0 --edit-key $key + done +} From ab13d0756fcbf690d9550ec1329ff99da0dc3c75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20M=C3=BCller?= Date: Fri, 28 Sep 2012 17:19:28 +0200 Subject: [PATCH 85/94] git find --- plugins/git/git.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 14ae78d41..0a19e0c1c 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -39,11 +39,14 @@ compdef _git gm=git-merge alias grh='git reset HEAD' alias grhh='git reset HEAD --hard' alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' +alias gf='git ls-files | grep' # Will cd into the top of the current repository # or submodule. alias grt='cd $(git rev-parse --show-toplevel || echo ".")' + + # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' compdef git-svn-dcommit-push=git From fe094712fb0c896eeec55b686807011226bc9208 Mon Sep 17 00:00:00 2001 From: Trae Robrock Date: Tue, 20 Dec 2011 18:15:19 -0800 Subject: [PATCH 86/94] resolving conflict in termsupport plugin --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 4701e46c5..c056989eb 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -26,7 +26,7 @@ function omz_termsupport_precmd { function omz_termsupport_preexec { emulate -L zsh setopt extended_glob - local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd + local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd title "$CMD" "%100>...>${2:gs/%/%%}%<<" } From dfbafe6d58bf1463df393fd4478154be36a675aa Mon Sep 17 00:00:00 2001 From: Probably Not Date: Sat, 4 Aug 2012 11:41:47 -0700 Subject: [PATCH 87/94] Fixing conflict in install scripts --- tools/install.sh | 3 +-- tools/uninstall.sh | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 6f58db939..41f83e354 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -14,8 +14,7 @@ echo "\033[0;34mLooking for an existing zsh config...\033[0m" if [ -f ~/.zshrc ] || [ -h ~/.zshrc ] then echo "\033[0;33mFound ~/.zshrc.\033[0m \033[0;32mBacking up to ~/.zshrc.pre-oh-my-zsh\033[0m"; - cp ~/.zshrc ~/.zshrc.pre-oh-my-zsh; - rm ~/.zshrc; + mv ~/.zshrc ~/.zshrc.pre-oh-my-zsh; fi echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m" diff --git a/tools/uninstall.sh b/tools/uninstall.sh index 8ff583322..41d601576 100644 --- a/tools/uninstall.sh +++ b/tools/uninstall.sh @@ -4,12 +4,20 @@ then rm -rf ~/.oh-my-zsh fi -echo "Looking for an existing zsh config..." +echo "Looking for original zsh config..." if [ -f ~/.zshrc.pre-oh-my-zsh ] || [ -h ~/.zshrc.pre-oh-my-zsh ] then - echo "Found ~/.zshrc. Backing up to ~/.zshrc.pre-oh-my-zsh"; - rm ~/.zshrc; - cp ~/.zshrc.pre-oh-my-zsh ~/.zshrc; + echo "Found ~/.zshrc.pre-oh-my-zsh -- Restoring to ~/.zshrc"; + + if [ -f ~/.zshrc ] || [ -h ~/.zshrc ] + then + ZSHRC_SAVE=".zshrc.omz-uninstalled-`date +%Y%m%d%H%M%S`"; + echo "Found ~/.zshrc -- Renaming to ~/${ZSHRC_SAVE}"; + mv ~/.zshrc ~/${ZSHRC_SAVE}; + fi + + mv ~/.zshrc.pre-oh-my-zsh ~/.zshrc; + source ~/.zshrc; else echo "Switching back to bash" @@ -17,4 +25,4 @@ else source /etc/profile fi -echo "Thanks for trying out Oh My Zsh. It's been uninstalled." \ No newline at end of file +echo "Thanks for trying out Oh My Zsh. It's been uninstalled." From 51e05b7579a26266a0ed26398ab9eb5071800cd8 Mon Sep 17 00:00:00 2001 From: Lucas Sampaio Date: Fri, 5 Oct 2012 17:27:05 -0300 Subject: [PATCH 88/94] hg_current_branch added to mercurial plugin --- plugins/mercurial/mercurial.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index caf0d9efc..a3a6ff8b6 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -12,3 +12,9 @@ alias hgp='hg push' alias hgs='hg status' # this is the 'git commit --amend' equivalent alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip' + +function hg_current_branch() { + if [ -d .hg ]; then + echo hg:$(hg branch) + fi +} \ No newline at end of file From b9d5a39098036f4f62b1e88b8c2c045a35582546 Mon Sep 17 00:00:00 2001 From: "J. Randall Hunt" Date: Sun, 2 Dec 2012 16:32:29 -0500 Subject: [PATCH 89/94] use lazy load for virtualenvwrapper Using lazy loading for virtualenvwrapper gives a mariginal speed improvement and doesn't stop workon_cd from working. It has the undesired effect of forcing you to call certain virtualenv commands twice before they work (only once per shell instantiation). --- plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index a5abb77c3..0ed2565b4 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,4 +1,4 @@ -wrapsource=`which virtualenvwrapper.sh` +wrapsource=`which virtualenvwrapper_lazy.sh` if [[ -f "$wrapsource" ]]; then source $wrapsource @@ -36,5 +36,5 @@ if [[ -f "$wrapsource" ]]; then } fi else - print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper.sh. Please install with \`pip install virtualenvwrapper\`." + print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper_lazy.sh. Please install with \`pip install virtualenvwrapper\`." fi From 39e5c9a6d7a88feb570f340ca52e87c8ff8cce61 Mon Sep 17 00:00:00 2001 From: Brian Hartvigsen Date: Sun, 2 Dec 2012 22:59:05 -0700 Subject: [PATCH 90/94] Backwards Compatible Jira URLs #1378 Adds support for Rapid Board without breaking backwards compatibility (like #1378) Allows JIRA url to be set in .zshrc, current directory, and/or home directory. --- plugins/jira/jira.plugin.zsh | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index de8d10529..b91f93c95 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -1,20 +1,36 @@ # To use: add a .jira-url file in the base of your project +# You can also set JIRA_URL in your .zshrc or put .jira-url in your home directory +# .jira-url in the current directory takes precedence +# +# If you use Rapid Board, set: +#JIRA_RAPID_BOARD="yes" +# in you .zshrc +# # Setup: cd to/my/project # echo "https://name.jira.com" >> .jira-url # Usage: jira # opens a new issue # jira ABC-123 # Opens an existing issue open_jira_issue () { - if [ ! -f .jira-url ]; then - echo "There is no .jira-url file in the current directory..." - return 0; + if [ -f .jira-url ]; then + jira_url=$(cat .jira-url) + elif [ -f ~/.jira-url ]; then + jira_url=$(cat ~/.jira-url) + elif [[ "x$JIRA_URL" != "x" ]]; then + jira_url=$JIRA_URL else - jira_url=$(cat .jira-url); - if [ -z "$1" ]; then - echo "Opening new issue"; - `open $jira_url/secure/CreateIssue!default.jspa`; + echo "JIRA url is not specified anywhere." + return 0 + fi + + if [ -z "$1" ]; then + echo "Opening new issue" + `open $jira_url/secure/CreateIssue!default.jspa` + else + echo "Opening issue #$1" + if [[ "x$JIRA_RAPID_BOARD" = "yes" ]]; then + `open $jira_url/issues/$1` else - echo "Opening issue #$1"; - `open $jira_url/browse/$1`; + `open $jira_url/browse/$1` fi fi } From 80f151e56d7d6d30858acf581141fa84bfd79bc7 Mon Sep 17 00:00:00 2001 From: Brian Hartvigsen Date: Sun, 2 Dec 2012 23:06:11 -0700 Subject: [PATCH 91/94] urltools for Everyone MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1445 is great, if you use node.  For those that don't this should mean we can find a reasonable fallback. Users can force urltools to use a specific system by setting `URLTOOLS_METHOD` to one of: * `node` * `python` * `ruby` * `php` * `perl` Note that you can't (currently) choose which `perl` sublibrary to use, it will use either `URI::Encode`, `URI::Escape`, or regular expressions in that order of preference. --- plugins/urltools/urltools.plugin.zsh | 31 ++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/plugins/urltools/urltools.plugin.zsh b/plugins/urltools/urltools.plugin.zsh index 3de74ae3d..4ddfff8ce 100644 --- a/plugins/urltools/urltools.plugin.zsh +++ b/plugins/urltools/urltools.plugin.zsh @@ -4,6 +4,33 @@ # Taken from: # http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/ -alias urlencode='node -e "console.log(encodeURIComponent(process.argv[1]))"' +if [[ $(whence $URLTOOLS_METHOD) = "" ]]; then + URLTOOLS_METHOD="" +fi -alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"' +if [[ $(whence node) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xnode" ) ]]; then + alias urlencode='node -e "console.log(encodeURIComponent(process.argv[1]))"' + alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"' +elif [[ $(whence python) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xpython" ) ]]; then + alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"' + alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"' +elif [[ $(whence ruby) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xruby" ) ]]; then + alias urlencode='ruby -r cgi -e "puts CGI.escape(ARGV[0])"' + alias urldecode='ruby -r cgi -e "puts CGI.unescape(ARGV[0])"' +elif [[ $(whence php) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xphp" ) ]]; then + alias urlencode='php -r "echo rawurlencode(\$argv[1]); echo \"\n\";"' + alias urldecode='php -r "echo rawurldecode(\$argv[1]); echo \"\\n\";"' +elif [[ $(whence perl) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xperl" ) ]]; then + if perl -MURI::Encode -e 1&> /dev/null; then + alias urlencode='perl -MURI::Encode -ep "uri_encode($ARGV[0]);"' + alias urldecode='perl -MURI::Encode -ep "uri_decode($ARGV[0]);"' + elif perl -MURI::Escape -e 1 &> /dev/null; then + alias urlencode='perl -MURI::Escape -ep "uri_escape($ARGV[0]);"' + alias urldecode='perl -MURI::Escape -ep "uri_unescape($ARGV[0]);"' + else + alias urlencode="perl -e '\$new=\$ARGV[0]; \$new =~ s/([^A-Za-z0-9])/sprintf(\"%%%02X\", ord(\$1))/seg; print \"\$new\n\";'" + alias urldecode="perl -e '\$new=\$ARGV[0]; \$new =~ s/\%([A-Fa-f0-9]{2})/pack(\"C\", hex(\$1))/seg; print \"\$new\n\";'" + fi +fi + +unset URLTOOLS_METHOD \ No newline at end of file From e096e4041f76c70a621df2b02bb67bed88e6bcee Mon Sep 17 00:00:00 2001 From: Andrei Gorgan Date: Mon, 3 Dec 2012 12:03:43 +0200 Subject: [PATCH 92/94] Print last exit status in mortalscumbag prompt --- themes/mortalscumbag.zsh-theme | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/themes/mortalscumbag.zsh-theme b/themes/mortalscumbag.zsh-theme index 7e25b149f..ae3f1c9fc 100644 --- a/themes/mortalscumbag.zsh-theme +++ b/themes/mortalscumbag.zsh-theme @@ -46,7 +46,8 @@ function ssh_connection() { fi } -PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n%# ' +local ret_status="%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})%?%{$reset_color%}" +PROMPT=$'\n$(ssh_connection)%{$fg_bold[cyan]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}" ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}" From 98bd19a036c0c702591f456e1081e420ffb17ce0 Mon Sep 17 00:00:00 2001 From: Denis Cornehl Date: Mon, 3 Dec 2012 11:06:31 +0100 Subject: [PATCH 93/94] plugin last-working-dir: create cache-directory if it doesn't exist --- plugins/last-working-dir/last-working-dir.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh index 5b3121d11..190bc279d 100644 --- a/plugins/last-working-dir/last-working-dir.plugin.zsh +++ b/plugins/last-working-dir/last-working-dir.plugin.zsh @@ -4,6 +4,7 @@ # Flag indicating if we've previously jumped to last directory. typeset -g ZSH_LAST_WORKING_DIRECTORY +mkdir -p "$ZSH/cache" local cache_file="$ZSH/cache/last-working-dir" # Updates the last directory once directory is changed. From 8925cff334f9009a0f27d38922731bbcd82c42cb Mon Sep 17 00:00:00 2001 From: Andrei Gorgan Date: Mon, 3 Dec 2012 12:29:45 +0200 Subject: [PATCH 94/94] Fix prompt color: Change it back to green --- themes/mortalscumbag.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/mortalscumbag.zsh-theme b/themes/mortalscumbag.zsh-theme index ae3f1c9fc..5dbf2e4f6 100644 --- a/themes/mortalscumbag.zsh-theme +++ b/themes/mortalscumbag.zsh-theme @@ -47,7 +47,7 @@ function ssh_connection() { } local ret_status="%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})%?%{$reset_color%}" -PROMPT=$'\n$(ssh_connection)%{$fg_bold[cyan]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' +PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}" ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}"