我见过很多人这样做
autoload -Uz compinit
compinit
和其他人这样做
autoload -U compinit
compinit -i
我想知道区别。我应该使用哪一个?
答案 0 :(得分:12)
man zshbuiltins
的 autoload
:
标志
-z
和-k
标记要在本机或ksh仿真中自动加载的功能,就好像选项KSH_AUTOLOAD
未设置或已设置一样。
可以追溯-U
标记:autoload
相当于function -u
,相当于typeset -f
。简而言之,typeset
习惯于:
设置或显示shell参数的属性和值。
将-f
与-U
结合使用时
[-f标志的原因]名称是指函数而不是参数。 ... -u和-U标志导致该功能被标记为自动加载; -U还会在加载函数时导致别名扩展被抑制。
compinit
是compsys
使用的完成初始化函数,'{更新'的Z-Shell完成系统。有关详细信息,请参阅man zshcompsys
。
-i
标志用于:
使compinit静默忽略所有不安全的文件和目录使用选项-i
一般情况下,根据this interesting read,您应该使用autoload -Uz
。