45 lines
1.1 KiB
Bash
45 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
|
|
done
|
|
fi
|
|
done
|