mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-19 21:41:07 +01:00
wd.plugin: Added checks, readme and completion
This commit is contained in:
parent
240b25daaa
commit
b4ffe5cf0a
2 changed files with 86 additions and 0 deletions
38
plugins/wd/README.md
Normal file
38
plugins/wd/README.md
Normal file
|
@ -0,0 +1,38 @@
|
|||
## wd
|
||||
|
||||
**Maintainer:** [mfaerevaag](https://github.com/mfaerevaag)
|
||||
|
||||
`wd` (warp directory) lets you jump to custom directories in zsh, without using cd. Why? Because cd seems ineffecient when the folder is frequently visited or has a long path. [Source](https://github.com/mfaerevaag/wd)
|
||||
|
||||
### Usage
|
||||
|
||||
* Add warp point to current working directory:
|
||||
|
||||
wd add test
|
||||
|
||||
If a warp point with the same name exists, use `add!` to overwrite it.
|
||||
|
||||
* From an other directory, warp to test with:
|
||||
|
||||
wd test
|
||||
|
||||
* You can warp back to previous directory, and so on, with the puncticulation syntax:
|
||||
|
||||
wd ..
|
||||
wd ...
|
||||
|
||||
This is a wrapper for the zsh `dirs` function.
|
||||
|
||||
* Remove warp point test point:
|
||||
|
||||
wd rm test
|
||||
|
||||
* List warp points to current directory (stored in `~/.warprc`):
|
||||
|
||||
wd show
|
||||
|
||||
* List all warp points (stored in `~/.warprc`):
|
||||
|
||||
wd ls
|
||||
|
||||
* Print usage with no opts or the `help` argument.
|
48
plugins/wd/_wd.sh
Normal file
48
plugins/wd/_wd.sh
Normal file
|
@ -0,0 +1,48 @@
|
|||
#compdef wd.sh
|
||||
|
||||
zstyle ":completion:*:descriptions" format "%B%d%b"
|
||||
|
||||
CONFIG=$HOME/.warprc
|
||||
|
||||
local -a main_commands
|
||||
main_commands=(
|
||||
add:'Adds the current working directory to your warp points'
|
||||
#add'\!':'Overwrites existing warp point' # TODO: Fix
|
||||
rm:'Removes the given warp point'
|
||||
ls:'Outputs all stored warp points'
|
||||
show:'Outputs warp points to current directory'
|
||||
)
|
||||
|
||||
local -a points
|
||||
while read line
|
||||
do
|
||||
points+=$(awk "{ gsub(/\/Users\/$USER|\/home\/$USER/,\"~\"); print }" <<< $line)
|
||||
done < $CONFIG
|
||||
|
||||
_wd()
|
||||
{
|
||||
# init variables
|
||||
local curcontext="$curcontext" state line
|
||||
typeset -A opt_args
|
||||
|
||||
# init state
|
||||
_arguments \
|
||||
'1: :->command' \
|
||||
'2: :->argument'
|
||||
|
||||
case $state in
|
||||
command)
|
||||
compadd "$@" add rm ls show
|
||||
_describe -t warp-points 'Warp points:' points && ret=0
|
||||
;;
|
||||
argument)
|
||||
case $words[2] in
|
||||
rm|add!)
|
||||
_describe -t warp-points 'warp points' points && ret=0
|
||||
;;
|
||||
*)
|
||||
esac
|
||||
esac
|
||||
}
|
||||
|
||||
_wd "$@"
|
Loading…
Reference in a new issue