A seção PARAMETER EXPANSION da página zshexpn man é um bom ponto de partida.
Primeiro, vamos observar que $config_files é uma matriz incluindo todos os arquivos .zsh sob o diretório $ZSH , como você pode ver na segunda linha: config_files=($ZSH/**/*.zsh) .
Esta sintaxe usada na linha ${(M)config_files:#*/path.zsh} (observe que M dentro dos parênteses é chamado de sinalizador de expansão ) é a seguinte:
${name:#pattern}
If the pattern matches the value of name, then substitute the
empty string; otherwise, just substitute the value of name.
If name is an array the matching array elements are removed
(use the '(M)' flag to remove the non-matched elements).
Em outras palavras, o loop for itera em todos os arquivos path.zsh em $ ZSH. Você também pode usar for file in $ZSH/**/path.zsh , mas a operação na matriz de arquivos $config_files é mais rápida do que procurar recursivamente o sistema de arquivos novamente e novamente. (Há mais para loop, não há?)
Com esse conhecimento, deve ser fácil descobrir o que o ${${config_files:#*/path.zsh}:#*/completion.zsh} fará. (O resultado é indicado no comentário de qualquer maneira).
Eu costumo usar alguns exemplos triviais para me entender melhor:
$ array=(foo bar baz)
$ print ${array}
foo bar baz
$ print ${array:#ba*}
foo
$ print ${(M)array:#ba*}
bar baz
É mais fácil do que parece, certo ?! ;)