Zsh полная разница

Я видел, как многие это делают autoload -Uz compinit
compinit

и другие делают это
autoload -U compinit
compinit -i

Я хотел бы знать разницу. который я должен использовать?

Ответ 1

autoload, man zshbuiltins:

Флаги -z и -k отмечают функцию автозагрузки в эмуляции native или ksh, как если бы параметр KSH_AUTOLOAD не был установлен или был установлен соответственно.

Флаг -U можно проследить назад: autoload эквивалентен function -u, что эквивалентно typeset -f. typeset, в двух словах, используется для:

Установить или отобразить атрибуты и значения для параметров оболочки.

Когда -f используется в комбинации с -U:

[Флаг -f вызывает] Имена относятся к функциям, а не к параметрам.... Флаги -u и -U вызывают функцию для маркировки для автоматической загрузки; -U также вызывает подавление псевдонима при загрузке функции.

compinit - это функция инициализации завершения, используемая compsys, "более новая" система завершения Z-Shell. Подробнее см. man zshcompsys.

Флаг -i используется для:

чтобы заставить compinit молча игнорировать все небезопасные файлы и каталоги, используйте параметр -i

В общем, вы должны использовать autoload -Uz, в соответствии с этот интересный читать.