chezmoi init
This commit is contained in:
commit
530d6d7195
1176 changed files with 111325 additions and 0 deletions
45
dot_oh-my-zsh/plugins/pj/README.md
Normal file
45
dot_oh-my-zsh/plugins/pj/README.md
Normal file
|
@ -0,0 +1,45 @@
|
|||
# pj
|
||||
|
||||
The `pj` plugin (short for `Project Jump`) allows you to define several
|
||||
folders where you store your projects, so that you can jump there directly
|
||||
by just using the name of the project directory.
|
||||
|
||||
Original idea and code by Jan De Poorter ([@DefV](https://github.com/DefV))
|
||||
Source: https://gist.github.com/pjaspers/368394#gistcomment-1016
|
||||
|
||||
## Usage
|
||||
|
||||
1. Enable the `pj` plugin:
|
||||
|
||||
```zsh
|
||||
plugins=(... pj)
|
||||
```
|
||||
|
||||
2. Set `$PROJECT_PATHS` in your ~/.zshrc:
|
||||
|
||||
```zsh
|
||||
PROJECT_PATHS=(~/src ~/work ~/"dir with spaces")
|
||||
```
|
||||
|
||||
You can now use one of the following commands:
|
||||
|
||||
##### `pj my-project`:
|
||||
|
||||
`cd` to the directory named "my-project" found in one of the `$PROJECT_PATHS`
|
||||
directories. If there are several directories named the same, the first one
|
||||
to appear in `$PROJECT_PATHS` has preference.
|
||||
|
||||
For example:
|
||||
```zsh
|
||||
PROJECT_PATHS=(~/code ~/work)
|
||||
$ ls ~/code # ~/code/blog ~/code/react
|
||||
$ ls ~/work # ~/work/blog ~/work/project
|
||||
$ pj blog # <-- will cd to ~/code/blog
|
||||
```
|
||||
|
||||
##### `pjo my-project`
|
||||
|
||||
Open the project directory with your defined `$EDITOR`. This follows the same
|
||||
directory rules as the `pj` command above.
|
||||
|
||||
Note: `pjo` is an alias of `pj open`.
|
34
dot_oh-my-zsh/plugins/pj/pj.plugin.zsh
Normal file
34
dot_oh-my-zsh/plugins/pj/pj.plugin.zsh
Normal file
|
@ -0,0 +1,34 @@
|
|||
alias pjo="pj open"
|
||||
|
||||
function pj() {
|
||||
local cmd="cd"
|
||||
local project="$1"
|
||||
|
||||
if [[ "open" == "$project" ]]; then
|
||||
shift
|
||||
project=$*
|
||||
cmd=${=EDITOR}
|
||||
else
|
||||
project=$*
|
||||
fi
|
||||
|
||||
for basedir ($PROJECT_PATHS); do
|
||||
if [[ -d "$basedir/$project" ]]; then
|
||||
$cmd "$basedir/$project"
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
echo "No such project '${project}'."
|
||||
}
|
||||
|
||||
_pj () {
|
||||
local -a projects
|
||||
for basedir ($PROJECT_PATHS); do
|
||||
projects+=(${basedir}/*(/N))
|
||||
done
|
||||
|
||||
compadd ${projects:t}
|
||||
}
|
||||
|
||||
compdef _pj pj
|
Loading…
Add table
Add a link
Reference in a new issue