$+functions[_expand-aliases] é 1 se a matriz associativa functions contiver a chave _expand-aliases e 0 caso contrário. Isso é descrito no manual como ${+name} . Sob a entrada para ${name} , o manual explica que as chaves são opcionais. Não creio que o manual indique explicitamente que você pode usar um nome de matriz com um subscrito em vez de um nome. O manual do zsh não é uma leitura fácil.
A matriz functions é uma matriz associativa "mágica" vinculada às definições de função. Definir uma função adiciona um elemento a essa matriz, em que a chave é o nome da função e o valor é o corpo da função, normalizado. Por outro lado, adicionar um elemento à matriz define uma função com o nome e o corpo especificados.
unset 'functions[_expand-aliases]' # unset any previous function
functions[_expand-aliases]=$BUFFER # define a function whose body is the content of the command line
(($+functions[_expand-aliases])) && # if the command line is a syntactically correct function body, then …
BUFFER=${functions[_expand-aliases]#$'\t'} && # set the command line to the normalized function definition
CURSOR=$#BUFFER # move the cursor to the end of the command line
Se functions fosse uma matriz comum, isso não alteraria o valor de BUFFER (exceto para separar uma guia principal) e o teste na terceira linha sempre seria verdadeiro. Mas por causa da natureza “mágica” de functions , o que você ganha com isso não é o que você coloca, é uma versão normalizada - em particular, com aliases expandidos. O teste na terceira linha falhará se a definição da função não estiver sintaticamente correta.