Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1583 from To1ne/pj.plugin
added pj.plugin
- Loading branch information
Showing
1 changed file
with
42 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |