diff options
author | Sébastien M-B <essembeh@gmail.com> | 2013-02-09 22:11:07 +0100 |
---|---|---|
committer | Sébastien M-B <essembeh@gmail.com> | 2013-02-09 22:11:07 +0100 |
commit | bc00362a01d5f459bbe33a10784b420a110bc9df (patch) | |
tree | 9be32cc06fd2914c5a78b29c56bf47728179ea86 /plugins/pj | |
parent | 2595484a97d85496fdcdca99a23f52eecd9b1b43 (diff) | |
parent | fce68bbba0be99cfd49f9e46572b2d12d0a86d45 (diff) | |
download | zsh-bc00362a01d5f459bbe33a10784b420a110bc9df.tar.gz zsh-bc00362a01d5f459bbe33a10784b420a110bc9df.tar.bz2 zsh-bc00362a01d5f459bbe33a10784b420a110bc9df.zip |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'plugins/pj')
-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 |