2012-09-24 2 views
11

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

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

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

ответ

10

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 ,

+2

* "- Uz"? Да, это «правильно» [tm] почти всегда, поэтому я не буду обсуждать это здесь * - meh, одна часть, которую я искал, на самом деле не объясняется в статье – ThiefMaster

 Смежные вопросы

  • Нет связанных вопросов^_^