pj.plugin.zsh 721 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. alias pjo="pj open"
  2. pj () {
  3. emulate -L zsh
  4. setopt shwordsplit
  5. cmd="cd"
  6. project=$1
  7. if [[ "open" == "$project" ]]; then
  8. shift
  9. project=$*
  10. cmd=$EDITOR
  11. else
  12. project=$*
  13. fi
  14. if [[ -z "$project" ]]; then
  15. echo "You have to specify a project name."
  16. return
  17. fi
  18. for basedir ($PROJECT_PATHS); do
  19. if [[ -d "$basedir/$project" ]]; then
  20. $cmd "$basedir/$project"
  21. return
  22. fi
  23. done
  24. echo "No such project '${project}'."
  25. }
  26. _pj () {
  27. emulate -L zsh
  28. typeset -a projects
  29. for basedir ($PROJECT_PATHS); do
  30. projects+=(${basedir}/*(/N))
  31. done
  32. compadd ${projects:t}
  33. }
  34. compdef _pj pj