zsh есть функция завершения команд в PATH именем _path_commands . Вы можете настроить завершение, чтобы использовать его для myFunc , запустив:
compdef _path_commands myFunc
Примечание: для этого требуется, чтобы система завершения zsh была инициализирована. Обычно (как установлено в compinstall) это происходит в вашем ~/.zshrc с
# some zstyle configurations
autoload -Uz compinit
compinit
Любые вызовы compdef должны выполняться после compinit . Если вы получаете ошибки "команда не найдена" при запуске compdef , я предлагаю настроить систему завершения с помощью compinstall .
Примечание: в целях безопасности zsh будет выдавать ошибки, если какие-либо каталоги в вашем $ fpath доступны для записи во всем мире. Если вы получили ошибку:
zsh compinit: небезопасные каталоги, запустите compaudit для списка. Игнорировать небезопасные каталоги и продолжить [y] или прервать compinit [n]?
Не просто нажмите y, а нажмите n и попробуйте compaudit | xargs chmod g-w как предложено на https://stackoverflow.com/questions/13762280/zsh-compinit-insecure-directories