44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/zsh
 | |
| 
 | |
| #################################################################################
 | |
| # ZSH zle widget and custom function autloader 
 | |
| #################################################################################
 | |
| #
 | |
| # Lets you load custom functions and zle widgets split into single files.
 | |
| #
 | |
| # zle widgets are stored in the "widgets" folder in your configuration directory
 | |
| # (set with $ZDOTDIR, see manpage). The widgets in /etc/zsh/widgets are also
 | |
| # considered.
 | |
| #
 | |
| # functions are stored in the "functions" folder analogous.
 | |
| #
 | |
| 
 | |
| if [[ -z $ZWIDGETPATH ]]; then
 | |
| 	ZWIDGETPATH=( ${ZDOTDIR:+$ZDOTDIR/widgets} )
 | |
| 	[[ -d /etc/zsh/widgets ]] && ZWIDGETPATH+=/etc/zsh/widgets
 | |
| fi
 | |
| 
 | |
| if [[ -z $ZFUNCTIONPATH ]]; then
 | |
| 	ZFUNCTIONPATH=( ${ZDOTDIR:+$ZDOTDIR/functions} )
 | |
| 	[[ -d /etc/zsh/functions ]] && ZFUNCTIONPATH+=/etc/zsh/functions
 | |
| fi
 | |
| 
 | |
| fpath+=(${ZWIDGETPATH})
 | |
| fpath+=(${ZFUNCTIONPATH})
 | |
| 
 | |
| for dir in $ZWIDGETPATH; do
 | |
| 	if [ -d $dir ]; then
 | |
| 		for i in $dir/*~*.zwc(N:t); do
 | |
| 			autoload -Uz  $i
 | |
| 			zle -N $i
 | |
| 		done
 | |
| 	fi
 | |
| done
 | |
| 
 | |
| for dir in $ZFUNCTIONPATH; do
 | |
| 	if [ -d $dir ]; then
 | |
| 		for i in $dir/*~*.zwc(N:t); do
 | |
| 			autoload -Uz $i && $i
 | |
| 		done
 | |
| 	fi
 | |
| done
 | 
