mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	wd.plugin: Added checks, readme and completion
This commit is contained in:
		
							
								
								
									
										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 "$@"
 | 
			
		||||
		Reference in New Issue
	
	Block a user