Я видел, что многие делают это
autoload -Uz compinit
compinit
и другие делают это
autoload -U compinit
compinit -i
Я хотел бы знать разницу. который я должен использовать?ЗШ разница завершение
ответ
autoload
из man zshbuiltins
:
-z
Флаги и-k
отметить функцию, которая будет автоматически загружаются в нативной или КШ эмуляции, как если опция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
, согласно this interesting read ,
* "- Uz"? Да, это «правильно» [tm] почти всегда, поэтому я не буду обсуждать это здесь * - meh, одна часть, которую я искал, на самом деле не объясняется в статье – ThiefMaster