Я видел, как многие это делают
autoload -Uz compinit
compinit
и другие делают это autoload -U compinit
compinit -i
Я хотел бы знать разницу. который я должен использовать?
Zsh полная разница
Ответ 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
, в соответствии с этот интересный читать.