commit
b764fad271
4 changed files with 106 additions and 5 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