ผมทำงานเกี่ยวกับแหล่งที่มาของการควบคุมและ dotfiles LOF ของสิ่งที่ฉันทำของฉันจะตามออกdotfiles ซัคฮอลของ ฉันต้องการแหล่งที่มาของไฟล์ zsh เหมือนที่เขาทำในไฟล์ของเขา แต่ก่อนที่ฉันจะโยนรหัสลงไปในนั้นฉันต้องการที่จะเข้าใจจริง ๆ ว่ารหัสกำลังทำอะไรอยู่ ตัวอย่างข้อมูลที่ฉันสับสนคือ
# 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
ส่วนใหญ่ฉันสับสนว่าเกิดอะไรขึ้นที่นี่
${(M)config_files:#*/path.zsh}
และที่นี่
${${config_files:#*/path.zsh}:#*/completion.zsh}
ดังนั้นสิ่งนี้หมายความว่าอย่างไร