diff options
author | Toon Claes <toon@tonotdo.com> | 2013-02-05 09:45:00 +0100 |
---|---|---|
committer | Toon Claes <toon@tonotdo.com> | 2013-02-05 09:45:00 +0100 |
commit | 631a8473e2f3f20e1414dff4e409fe07cbb41aea (patch) | |
tree | ceff134e50c6981d17b971d06d3f9e02f3097d8a /plugins/pj/pj.plugin.zsh | |
parent | 615e41b0ecdb25acba513fd09619bd56c2eb24eb (diff) | |
download | zsh-631a8473e2f3f20e1414dff4e409fe07cbb41aea.tar.gz zsh-631a8473e2f3f20e1414dff4e409fe07cbb41aea.tar.bz2 zsh-631a8473e2f3f20e1414dff4e409fe07cbb41aea.zip |
added pj.plugin
Diffstat (limited to 'plugins/pj/pj.plugin.zsh')
-rw-r--r-- | plugins/pj/pj.plugin.zsh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh new file mode 100644 index 000000000..ba3765b83 --- /dev/null +++ b/plugins/pj/pj.plugin.zsh @@ -0,0 +1,42 @@ +#!/bin/zsh + +# +# Original idea by DefV (Jan De Poorter) +# Source: https://gist.github.com/pjaspers/368394#comment-1016 +# +# Usage: +# - Set `$PROJECT_PATHS` in your ~/.zshrc +# e.g.: PROJECT_PATHS=(~/src ~/work) +# - In ZSH you now can open a project directory with the command: `pj my-project` +# the plugin will locate the `my-project` directory in one of the $PROJECT_PATHS +# Also tab completion is supported. +# - `pjo my-project` will open the directory in $EDITOR +# + +function pj() { + cmd="cd" + file=$1 + + if [[ "open" == "$file" ]] then + file=$2 + cmd=(${(s: :)EDITOR}) + fi + + for project in $PROJECT_PATHS; do + if [[ -d $project/$file ]] then + $cmd "$project/$file" + unset project # Unset project var + return + fi + done + + echo "No such project $1" +} + +alias pjo="pj open" + +function _pj () { + compadd `/bin/ls -l $PROJECT_PATHS 2>/dev/null | awk '{ print $9 }'` +} + +compdef _pj pj |