diff options
author | Robby Russell <robby@planetargon.com> | 2013-02-09 11:55:03 -0800 |
---|---|---|
committer | Robby Russell <robby@planetargon.com> | 2013-02-09 11:55:03 -0800 |
commit | 1a362c11a899258fc224ad0d67ed44e9113d2460 (patch) | |
tree | a8b1e5781fefdac1f24e62e07d0e53641657ff4a | |
parent | 6e6cf4303712befb5a7fc3918494aefe4a65991f (diff) | |
parent | 631a8473e2f3f20e1414dff4e409fe07cbb41aea (diff) | |
download | zsh-1a362c11a899258fc224ad0d67ed44e9113d2460.tar.gz zsh-1a362c11a899258fc224ad0d67ed44e9113d2460.tar.bz2 zsh-1a362c11a899258fc224ad0d67ed44e9113d2460.zip |
Merge pull request #1583 from To1ne/pj.plugin
added pj.plugin
-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 |