Pracuję nad źródłem kontrolującym moje pliki kropkowe, a część tego, co robię, oparta jest na plikach kropkowych Zacha Holmana . Chcę źródła wszystkich plików ZH, tak jak on, w swoich plikach, ale zanim po prostu wrzucę tam kod, chcę naprawdę zrozumieć, co robi kod. Fragment, który mnie myli, to
# all of our zsh files
typeset -U config_files
config_files=($ZSH/**/*.zsh)
# load the path files
for file in ${(M)config_files:#*/path.zsh}
do
source $file
done
# load everything but the path and completion files
for file in ${${config_files:#*/path.zsh}:#*/completion.zsh}
do
source $file
done
# initialize autocomplete here, otherwise functions won't be loaded
autoload -U compinit
compinit
# load every completion after autocomplete loads
for file in ${(M)config_files:#*/completion.zsh}
do
source $file
done
unset config_files
Głównie jestem zdezorientowany, co się tutaj dzieje
${(M)config_files:#*/path.zsh}
i tu
${${config_files:#*/path.zsh}:#*/completion.zsh}
Co to wszystko znaczy?