From 1d9eacb34f59f3bf82a9de0d7b474cb4c501e3fd Mon Sep 17 00:00:00 2001 From: Paul Gideon Dann Date: Thu, 19 May 2011 10:55:19 +0100 Subject: [PATCH 01/20] Plugin to make WOL nice & easy --- plugins/wakeonlan/wakeonlan.plugin.zsh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 plugins/wakeonlan/wakeonlan.plugin.zsh diff --git a/plugins/wakeonlan/wakeonlan.plugin.zsh b/plugins/wakeonlan/wakeonlan.plugin.zsh new file mode 100644 index 00000000..08db1bde --- /dev/null +++ b/plugins/wakeonlan/wakeonlan.plugin.zsh @@ -0,0 +1,15 @@ +function wake() { + local config_file=~/.wakeonlan/$1 + if [[ ! -f $config_file ]]; then + echo "ERROR: There is no configuration file at \"$config_file\"." + return + fi + + which wakeonlan > /dev/null + if [[ ! $? == 0 ]]; then + echo "ERROR: Can't find \"wakeonlan\". Are you sure it's installed?" + return + fi + + wakeonlan -f $config_file +} From bf2c55ac5a789d8874e6d8e06360608b4234e872 Mon Sep 17 00:00:00 2001 From: Ben Lumley Date: Tue, 16 Aug 2011 17:23:33 +0100 Subject: [PATCH 02/20] Gallois theme - made the git branch/status show for those of us without rvm --- themes/gallois.zsh-theme | 2 ++ 1 file changed, 2 insertions(+) diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme index 259640ba..f9406dd9 100644 --- a/themes/gallois.zsh-theme +++ b/themes/gallois.zsh-theme @@ -14,6 +14,8 @@ git_custom_status() { #RVM and git settings if [[ -s ~/.rvm/scripts/rvm ]] ; then RPS1='$(git_custom_status)%{$fg[red]%}[`~/.rvm/bin/rvm-prompt`]%{$reset_color%} $EPS1' +else + RPS1='$(git_custom_status) $EPS1' fi PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' From 14411cb904b7682fe2a5c69861bfffa96f124707 Mon Sep 17 00:00:00 2001 From: Paul Gideon Dann Date: Mon, 19 Sep 2011 12:40:29 +0100 Subject: [PATCH 03/20] Tweaks to the wakeonlan plugin These were suggested by sorin-ionescu in pull request #343. --- plugins/wakeonlan/wakeonlan.plugin.zsh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/plugins/wakeonlan/wakeonlan.plugin.zsh b/plugins/wakeonlan/wakeonlan.plugin.zsh index 08db1bde..752bfc60 100644 --- a/plugins/wakeonlan/wakeonlan.plugin.zsh +++ b/plugins/wakeonlan/wakeonlan.plugin.zsh @@ -1,15 +1,18 @@ function wake() { - local config_file=~/.wakeonlan/$1 - if [[ ! -f $config_file ]]; then + local config_file="$HOME/.wakeonlan/$1" + if [[ ! -f "$config_file" ]]; then echo "ERROR: There is no configuration file at \"$config_file\"." - return + return 1 fi - which wakeonlan > /dev/null - if [[ ! $? == 0 ]]; then + if (( ! $+commands[wakeonlan] )); then echo "ERROR: Can't find \"wakeonlan\". Are you sure it's installed?" - return + return 1 fi wakeonlan -f $config_file } + +if (( $+functions[compdef] )); then + compdef "_arguments '1:device to wake:_files -W '\''$HOME/.wakeonlan'\'''" wake +fi From aa7ddd51cc4bd6afca23760ba3e3cc777305b1da Mon Sep 17 00:00:00 2001 From: Paul Gideon Dann Date: Mon, 19 Sep 2011 12:45:34 +0100 Subject: [PATCH 04/20] Forgot to quote the path parameter to wakeonlan --- plugins/wakeonlan/wakeonlan.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/wakeonlan/wakeonlan.plugin.zsh b/plugins/wakeonlan/wakeonlan.plugin.zsh index 752bfc60..8406b8f7 100644 --- a/plugins/wakeonlan/wakeonlan.plugin.zsh +++ b/plugins/wakeonlan/wakeonlan.plugin.zsh @@ -10,7 +10,7 @@ function wake() { return 1 fi - wakeonlan -f $config_file + wakeonlan -f "$config_file" } if (( $+functions[compdef] )); then From e94039d62b04e61507cbaa57c5fa955d97c8eca9 Mon Sep 17 00:00:00 2001 From: Paul Gideon Dann Date: Mon, 19 Sep 2011 15:42:58 +0100 Subject: [PATCH 05/20] Splitting wakeonlan plugin completion into separate file --- plugins/wakeonlan/_wake | 4 ++++ plugins/wakeonlan/wakeonlan.plugin.zsh | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 plugins/wakeonlan/_wake diff --git a/plugins/wakeonlan/_wake b/plugins/wakeonlan/_wake new file mode 100644 index 00000000..4ab10d37 --- /dev/null +++ b/plugins/wakeonlan/_wake @@ -0,0 +1,4 @@ +#compdef wake +#autoload + +_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0 diff --git a/plugins/wakeonlan/wakeonlan.plugin.zsh b/plugins/wakeonlan/wakeonlan.plugin.zsh index 8406b8f7..6cef7d44 100644 --- a/plugins/wakeonlan/wakeonlan.plugin.zsh +++ b/plugins/wakeonlan/wakeonlan.plugin.zsh @@ -12,7 +12,3 @@ function wake() { wakeonlan -f "$config_file" } - -if (( $+functions[compdef] )); then - compdef "_arguments '1:device to wake:_files -W '\''$HOME/.wakeonlan'\'''" wake -fi From 7ba54d197dac8d5ae380271259ba4d8843f01b4f Mon Sep 17 00:00:00 2001 From: Paul Gideon Dann Date: Tue, 20 Sep 2011 09:26:32 +0100 Subject: [PATCH 06/20] Adding README file for the wakeonlan plugin --- plugins/wakeonlan/README | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 plugins/wakeonlan/README diff --git a/plugins/wakeonlan/README b/plugins/wakeonlan/README new file mode 100644 index 00000000..16fdd458 --- /dev/null +++ b/plugins/wakeonlan/README @@ -0,0 +1,29 @@ +This plugin provides a wrapper around the "wakeonlan" tool available from most +distributions' package repositories, or from the following website: + +http://gsd.di.uminho.pt/jpo/software/wakeonlan/ + +In order to use this wrapper, create the ~/.wakeonlan directory, and place in +that directory one file for each device you would like to be able to wake. Give +the file a name that describes the device, such as its hostname. Each file +should contain a line with the mac address of the target device and the network +broadcast address. + +For instance, there might be a file ~/.wakeonlan/leto with the following +contents: + +00:11:22:33:44:55:66 192.168.0.255 + +To wake that device, use the following command: + +# wake leto + +The available device names will be autocompleted, so: + +# wake + +...will suggest "leto", along with any other configuration files that were +placed in the ~/.wakeonlan directory. + +For more information regarding the configuration file format, check the +wakeonlan man page. From 419ffdc48d218156b578d46d7fb5c64adcccb3de Mon Sep 17 00:00:00 2001 From: Kir Shatrov Date: Wed, 9 Nov 2011 14:46:38 +0400 Subject: [PATCH 07/20] Rails Migrations support --- plugins/rails3/rails3.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index f4ee637e..792cde2b 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/plugins/rails3/rails3.plugin.zsh @@ -17,3 +17,5 @@ alias rp='_rails_command plugin' alias rs='_rails_command server' alias rsd='_rails_command server --debugger' alias devlog='tail -f log/development.log' +alias rdm='rake db:migrate' +alias rdr='rake db:rollback' From 40c47a737571468b759bbc30e4b4dc4b5f77470f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Tue, 15 Nov 2011 01:14:03 -0500 Subject: [PATCH 08/20] lib/termsupport now uses add-zsh-hook This is needed to play nice with plugins that need various hooks. --- lib/termsupport.zsh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 22e7f372..22198950 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -4,7 +4,7 @@ #Limited support for Apple Terminal (Terminal can't set window or tab separately) function title { [ "$DISABLE_AUTO_TITLE" != "true" ] || return - if [[ "$TERM" == screen* ]]; then + if [[ "$TERM" == screen* ]]; then print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then print -Pn "\e]2;$2:q\a" #set window name @@ -16,14 +16,18 @@ ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~" #Appears when you have the prompt -function precmd { +function omz_termsupport_precmd { title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE } #Appears at the beginning of (and during) of command execution -function preexec { +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%<<" } + +autoload -U add-zsh-hook +add-zsh-hook precmd omz_termsupport_precmd +add-zsh-hook preexec omz_termsupport_preexec From 5277a0ffaacbc2e23c8753fefdf1c4fe6d1e7685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Tue, 15 Nov 2011 01:20:29 -0500 Subject: [PATCH 09/20] Added add-zsh-hook support to themes I added add-zsh-hook support to the themes that didn't have it already. This allows the themes to co-exist with plugins and lib/termsupport. --- themes/apple.zsh-theme | 7 +++++-- themes/jonathan.zsh-theme | 28 ++++++++++++++++------------ themes/kolo.zsh-theme | 5 ++++- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/themes/apple.zsh-theme b/themes/apple.zsh-theme index 92f1df94..275341dc 100644 --- a/themes/apple.zsh-theme +++ b/themes/apple.zsh-theme @@ -2,7 +2,7 @@ function toon { echo -n "" } -get_git_dirty() { +get_git_dirty() { git diff --quiet || echo '*' } @@ -18,9 +18,12 @@ zstyle ':vcs_info:*' formats \ zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r' zstyle ':vcs_info:*' enable git cvs svn -precmd () { +theme_precmd () { vcs_info } setopt prompt_subst PROMPT='%{$fg[magenta]%}$(toon)%{$reset_color%} %~/ %{$reset_color%}${vcs_info_msg_0_}%{$reset_color%}' + +autoload -U add-zsh-hook +add-zsh-hook precmd theme_precmd \ No newline at end of file diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme index add48527..a170a13d 100644 --- a/themes/jonathan.zsh-theme +++ b/themes/jonathan.zsh-theme @@ -1,19 +1,19 @@ -function precmd { +function theme_precmd { local TERMWIDTH (( TERMWIDTH = ${COLUMNS} - 1 )) ### # Truncate the path if it's too long. - + PR_FILLBAR="" PR_PWDLEN="" - + local promptsize=${#${(%):---(%n@%m:%l)---()--}} local rubyprompt=`rvm_prompt_info` local rubypromptsize=${#${rubyprompt}} local pwdsize=${#${(%):-%~}} - + if [[ "$promptsize + $rubypromptsize + $pwdsize" -gt $TERMWIDTH ]]; then ((PR_PWDLEN=$TERMWIDTH - $promptsize)) else @@ -24,7 +24,7 @@ function precmd { setopt extended_glob -preexec () { +theme_preexec () { if [[ "$TERM" == "screen" ]]; then local CMD=${1[(wr)^(*=*|sudo|-*)]} echo -n "\ek$CMD\e\\" @@ -69,7 +69,7 @@ setprompt () { ### # See if we can use extended characters to look nicer. - + typeset -A altchar set -A altchar ${(s..)terminfo[acsc]} PR_SET_CHARSET="%{$terminfo[enacs]%}" @@ -81,10 +81,10 @@ setprompt () { PR_LRCORNER=${altchar[j]:--} PR_URCORNER=${altchar[k]:--} - + ### # Decide if we need to set titlebar text. - + case $TERM in xterm*) PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}' @@ -96,8 +96,8 @@ setprompt () { PR_TITLEBAR='' ;; esac - - + + ### # Decide whether to set a screen title if [[ "$TERM" == "screen" ]]; then @@ -105,8 +105,8 @@ setprompt () { else PR_STITLE='' fi - - + + ### # Finally, the prompt. @@ -135,3 +135,7 @@ $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR ' } setprompt + +autoload -U add-zsh-hook +add-zsh-hook precmd theme_precmd +add-zsh-hook preexec theme_preexec \ No newline at end of file diff --git a/themes/kolo.zsh-theme b/themes/kolo.zsh-theme index 6e04e159..e743289c 100644 --- a/themes/kolo.zsh-theme +++ b/themes/kolo.zsh-theme @@ -7,7 +7,7 @@ zstyle ':vcs_info:*' unstagedstr '%F{yellow}●' zstyle ':vcs_info:*' check-for-changes true zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r' zstyle ':vcs_info:*' enable git svn -precmd () { +theme_precmd () { if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] { zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{green}]' } else { @@ -19,3 +19,6 @@ precmd () { setopt prompt_subst PROMPT='%B%F{magenta}%c%B%F{green}${vcs_info_msg_0_}%B%F{magenta} %{$reset_color%}%% ' + +autoload -U add-zsh-hook +add-zsh-hook precmd theme_precmd From 4173ba1e95403f3d2cd28b0ad5d5f2c0691f86b7 Mon Sep 17 00:00:00 2001 From: Graham McMillan Date: Tue, 15 Nov 2011 13:46:14 -0500 Subject: [PATCH 10/20] Added option to disable the update prompt. Set DISABLE_UPDATE_PROMPT to true to enable. --- tools/check_for_upgrade.sh | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index aeaa0e41..524aa509 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -8,6 +8,12 @@ function _update_zsh_update() { echo "LAST_EPOCH=$(_current_epoch)" > ~/.zsh-update } +function _upgrade_zsh() { + /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh + # update the zsh file + _update_zsh_update +} + if [ -f ~/.zsh-update ] then . ~/.zsh-update @@ -19,17 +25,21 @@ then epoch_diff=$(($(_current_epoch) - $LAST_EPOCH)) if [ $epoch_diff -gt 6 ] then - echo "[Oh My Zsh] Would you like to check for updates?" - echo "Type Y to update oh-my-zsh: \c" - read line - if [ "$line" = Y ] || [ "$line" = y ] + if [ "$DISABLE_UPDATE_PROMPT" = "true" ] then - /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh - # update the zsh file - _update_zsh_update + _upgrade_zsh + else + echo "[Oh My Zsh] Would you like to check for updates?" + echo "Type Y to update oh-my-zsh: \c" + read line + if [ "$line" = Y ] || [ "$line" = y ] + then + _upgrade_zsh + fi fi fi else # create the zsh file _update_zsh_update fi + From 3512eca2cefee9b89b08230021c25f6e30525e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Wed, 16 Nov 2011 09:25:45 -0500 Subject: [PATCH 11/20] set fpath correctly for custom plugins Custom plugins weren't being added to the fpath correctly. --- oh-my-zsh.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 891e8d46..8f5e2472 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -13,9 +13,16 @@ fpath=($ZSH/functions $ZSH/completions $fpath) # TIP: Add files you don't want in git to .gitignore for config_file ($ZSH/lib/*.zsh) source $config_file -# Add all defined plugins to fpath +# Add all defined plugins to fpath. This must be done +# before running compinit. plugin=${plugin:=()} -for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath) +for plugin ($plugins); do + if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then + fpath=($ZSH_CUSTOM/plugins/$plugin $fpath) + elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then + fpath=($ZSH/plugins/$plugin $fpath) + fi +done # Load and run compinit autoload -U compinit From 258457ea4fe0b8fcb1f6d0242071edb82cab449a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Wed, 16 Nov 2011 09:46:05 -0500 Subject: [PATCH 12/20] Moved ZSH_CUSTOM declaration before fpath is set * also normalized style to match the guide. --- oh-my-zsh.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 8f5e2472..7ae41c33 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -13,6 +13,12 @@ fpath=($ZSH/functions $ZSH/completions $fpath) # TIP: Add files you don't want in git to .gitignore for config_file ($ZSH/lib/*.zsh) source $config_file +# Set ZSH_CUSTOM to the path where your custom config files +# and plugins exists, or else we will use the default custom/ +if [[ -z "$ZSH_CUSTOM" ]]; then + ZSH_CUSTOM="$ZSH/custom" +fi + # Add all defined plugins to fpath. This must be done # before running compinit. plugin=${plugin:=()} @@ -28,12 +34,6 @@ done autoload -U compinit compinit -i -# Set ZSH_CUSTOM to the path where your custom config files -# and plugins exists, or else we will use the default custom/ -if [ "$ZSH_CUSTOM" = "" ] -then - ZSH_CUSTOM="$ZSH/custom" -fi # Load all of the plugins that were defined in ~/.zshrc for plugin ($plugins); do From 3fc812afc9af75e49a8f99bad3ada41672547503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6ran=20Gustafsson?= Date: Sat, 3 Dec 2011 13:18:37 +0100 Subject: [PATCH 13/20] Removed duplicate setting and sorted the remaining --- lib/history.zsh | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/lib/history.zsh b/lib/history.zsh index ca6f5707..876936b8 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -3,14 +3,11 @@ HISTFILE=$HOME/.zsh_history HISTSIZE=10000 SAVEHIST=10000 -setopt hist_ignore_dups # ignore duplication command history list -setopt share_history # share command history data - -setopt hist_verify -setopt inc_append_history +setopt append_history setopt extended_history setopt hist_expire_dups_first +setopt hist_ignore_dups # ignore duplication command history list setopt hist_ignore_space - -setopt SHARE_HISTORY -setopt APPEND_HISTORY +setopt hist_verify +setopt inc_append_history +setopt share_history # share command history data From b16099f3cb9855affa14d0f03adf6563f8df4cbe Mon Sep 17 00:00:00 2001 From: Steven De Coeyer Date: Tue, 6 Dec 2011 15:18:29 +0100 Subject: [PATCH 14/20] Added Zhann theme. Based on Robbyrussel theme, but shows the current ruby version and has some color variations. --- themes/zhann.zsh-theme | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 themes/zhann.zsh-theme diff --git a/themes/zhann.zsh-theme b/themes/zhann.zsh-theme new file mode 100644 index 00000000..6c056dfb --- /dev/null +++ b/themes/zhann.zsh-theme @@ -0,0 +1,7 @@ +PROMPT='%{$fg_bold[green]%}%p %{$fg[cyan]%}%c%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +RPROMPT='%{$reset_color%} %{$fg[red]%}$(~/.rvm/bin/rvm-prompt i v) %{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$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 42b0123427d2bdee0e3221d930bb48038c601932 Mon Sep 17 00:00:00 2001 From: Max Persson Date: Wed, 7 Dec 2011 11:08:42 +0100 Subject: [PATCH 15/20] Added brute force package completin on install subcommand --- plugins/pip/_pip | 60 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/plugins/pip/_pip b/plugins/pip/_pip index b5801017..8c03d851 100644 --- a/plugins/pip/_pip +++ b/plugins/pip/_pip @@ -3,30 +3,39 @@ # pip zsh completion, based on homebrew completion +_pip_all() { + all_pkgs=(`pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'`) +} + _pip_installed() { - installed_pkgs=(`pip freeze`) + installed_pkgs=(`pip freeze | cut -d '=' -f 1`) } local -a _1st_arguments _1st_arguments=( - 'bundle:Create pybundles (archives containing multiple packages)' - 'freeze:Output all currently installed packages (exact versions) to stdout' - 'help:Show available commands' - 'install:Install packages' - 'search:Search PyPI' - 'uninstall:Uninstall packages' - 'unzip:Unzip individual packages' - 'zip:Zip individual packages' + 'bundle:create pybundles (archives containing multiple packages)' + 'freeze:output all currently installed packages (exact versions) to stdout' + 'help:show available commands' + 'install:install packages' + 'search:search PyPI' + 'uninstall:uninstall packages' + 'unzip:unzip individual packages' + 'zip:zip individual packages' ) local expl -local -a pkgs installed_pkgs +local -a all_pkgs installed_pkgs _arguments \ - '(--version)--version[Show version number of program and exit]' \ - '(-v --verbose)'{-v,--verbose}'[Give more output]' \ - '(-q --quiet)'{-q,--quiet}'[Give less output]' \ - '(-h --help)'{-h,--help}'[Show help]' \ + '(--version)--version[show version number of program and exit]' \ + '(-h --help)'{-h,--help}'[show help]' \ + '(-E --environment)'{-E,--environment}'[virtualenv environment to run pip in]' \ + '(-s --enable-site-packages)'{-s,--enable-site-packages}'[include site-packages in virtualenv]' \ + '(-v --verbose)'{-v,--verbose}'[give more output]' \ + '(-q --quiet)'{-q,--quiet}'[give less output]' \ + '(--log)--log[log file location]' \ + '(--proxy)--proxy[proxy in form user:passwd@proxy.server:port]' \ + '(--timeout)--timeout[socket timeout (default 15s)]' \ '*:: :->subcmds' && return 0 if (( CURRENT == 1 )); then @@ -35,10 +44,25 @@ if (( CURRENT == 1 )); then fi case "$words[1]" in - list) - if [[ "$state" == forms ]]; then - _pip_installed - _requested installed_pkgs expl 'installed packages' compadd -a installed_pkgs + search) + _arguments \ + '(--index)--index[base URL of Python Package Index]' ;; + freeze) + _arguments \ + '(-l --local)'{-l,--local}'[report only virtualenv packages]' ;; + install) + _arguments \ + '(-U --upgrade)'{-U,--upgrade}'[upgrade all packages to the newest available version]' \ + '(-f --find-links)'{-f,--find-links}'[URL for finding packages]' \ + '(--no-deps --no-dependencies)'{--no-deps,--no-dependencies}'[iIgnore package dependencies]' \ + '(--no-install)--no-install[only download packages]' \ + '(--no-download)--no-download[only install downloaded packages]' \ + '(--install-option)--install-option[extra arguments to be supplied to the setup.py]' \ + '1: :->packages' && return 0 + + if [[ "$state" == packages ]]; then + _pip_all + _wanted all_pkgs expl 'packages' compadd -a all_pkgs fi ;; uninstall) _pip_installed From 1c4997f5cada6f1ff1f205b20cf321cfc6b6d347 Mon Sep 17 00:00:00 2001 From: Max Persson Date: Wed, 7 Dec 2011 13:32:58 +0100 Subject: [PATCH 16/20] Added caching of packages --- plugins/pip/_pip | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/pip/_pip b/plugins/pip/_pip index 8c03d851..07d37c80 100644 --- a/plugins/pip/_pip +++ b/plugins/pip/_pip @@ -4,7 +4,10 @@ # pip zsh completion, based on homebrew completion _pip_all() { - all_pkgs=(`pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'`) + # we cache the list of packages (originally from the macports plugin) + if (( ! $+piplist )); then + piplist=($(pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]')) + fi } _pip_installed() { @@ -62,7 +65,7 @@ case "$words[1]" in if [[ "$state" == packages ]]; then _pip_all - _wanted all_pkgs expl 'packages' compadd -a all_pkgs + _wanted piplist expl 'packages' compadd -a piplist fi ;; uninstall) _pip_installed From 5eae9421883d71b954d4abaa6056b28874ad47ec Mon Sep 17 00:00:00 2001 From: Max Persson Date: Wed, 7 Dec 2011 14:09:43 +0100 Subject: [PATCH 17/20] Added message when caching packages --- plugins/pip/_pip | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/pip/_pip b/plugins/pip/_pip index 07d37c80..df53ba5c 100644 --- a/plugins/pip/_pip +++ b/plugins/pip/_pip @@ -6,6 +6,7 @@ _pip_all() { # we cache the list of packages (originally from the macports plugin) if (( ! $+piplist )); then + echo -n " (caching package index...)" piplist=($(pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]')) fi } From d25fb095a9d1f814fe2b4d0f42ffe827780d4a59 Mon Sep 17 00:00:00 2001 From: Dominick LoBraico Date: Fri, 9 Dec 2011 12:18:54 -0600 Subject: [PATCH 18/20] forks miloshadzic theme to add more directory info as well as user and host info --- themes/pygmalion.zsh-theme | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 themes/pygmalion.zsh-theme diff --git a/themes/pygmalion.zsh-theme b/themes/pygmalion.zsh-theme new file mode 100644 index 00000000..cf3bb908 --- /dev/null +++ b/themes/pygmalion.zsh-theme @@ -0,0 +1,9 @@ +# Yay! High voltage and arrows! + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}⚡%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +PROMPT='%{$fg[magenta]%}%n%{$reset_color%}%{$fg[cyan]%}@%{$reset_color%}%{$fg[yellow]%}%m%{$reset_color%}%{$fg[red]%}:%{$reset_color%}%{$fg[cyan]%}%0~%{$reset_color%}%{$fg[red]%}|%{$reset_color%}$(git_prompt_info)%{$fg[cyan]%}⇒%{$reset_color%} ' + From 8ca019f02a4dc718fe5fc8b1186108eb376360c9 Mon Sep 17 00:00:00 2001 From: Suvash Thapaliya Date: Mon, 12 Dec 2011 23:55:07 +0100 Subject: [PATCH 19/20] Added my own theme file : suvash Since I store my dotfiles on github and plan to submodule oh-my-zsh i supposed it was a good idea to submit my theme as well. --- themes/suvash.zsh-theme | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 themes/suvash.zsh-theme diff --git a/themes/suvash.zsh-theme b/themes/suvash.zsh-theme new file mode 100644 index 00000000..f50657db --- /dev/null +++ b/themes/suvash.zsh-theme @@ -0,0 +1,23 @@ +function prompt_char { + git branch >/dev/null 2>/dev/null && echo '±' && return + hg root >/dev/null 2>/dev/null && echo 'Hg' && return + echo '○' +} + +function virtualenv_info { + [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') ' +} + +function collapse_pwd { + echo $(pwd | sed -e "s,^$HOME,~,") +} + +PROMPT='%{$fg[magenta]%}%n%{$reset_color%} at %{$fg[yellow]%}%m%{$reset_color%} in %{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(git_prompt_info) using %{$reset_color%}%{$fg[red]%}$(~/.rvm/bin/rvm-prompt)%{$reset_color%} +$(virtualenv_info)$(prompt_char) ' + + +ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?" +ZSH_THEME_GIT_PROMPT_CLEAN="" From 3e7e52a25fbfdb57f291ee9575a606f845dbff57 Mon Sep 17 00:00:00 2001 From: Christoph Neuroth Date: Wed, 14 Dec 2011 11:47:24 +0100 Subject: [PATCH 20/20] add support for autojump installed via macports --- plugins/autojump/autojump.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index da0a1276..6f9b80bf 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,3 +1,5 @@ -if [ -f `brew --prefix`/etc/autojump ]; then +if [ -f /opt/local/etc/profile.d/autojump.sh ]; then + . /opt/local/etc/profile.d/autojump.sh +elif [ -f `brew --prefix`/etc/autojump ]; then . `brew --prefix`/etc/autojump fi