Como os scripts padrão são executados em subshells, o recurso que você precisa é de funções exportadas, disponível em bash
, mas não em zsh
.
Em bash
, o local padrão para adicionar funções do usuário está em ~/.bashrc
, mas isso não é executado, a menos que bash
seja interativo (especificamente, não em um subshell executando um script), que as funções exportadas vencem.
O que parece funcionar, conforme esta resposta , é colocar as declarações de função em ~/.zshenv
, que é executado por padrão em cada lançamento, interativo ou não.
Você também deve verificar a resposta anterior (aceita), que, entre outras coisas, explica o motivo pelo qual zsh
não suporta funções exportadas.