parent
240b25daaa
commit
b4ffe5cf0a
2 changed files with 86 additions and 0 deletions
@ -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. |
||||
@ -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 new issue