我已经看到很多这样做autoload -Uz compinit
compinit
和其他人这样做autoload -U compinit
compinit -i
我想知道区别。我应该使用哪一个?
最佳答案
autoload
,来自man zshbuiltins
:
标志-z
和-k
标记要在本机或ksh仿真中自动加载的功能,就像分别未设置或设置选项KSH_AUTOLOAD
一样。
可以追溯-U
标志:autoload
等效于function -u
,等效于typeset -f
。简而言之,typeset
用于:
设置或显示外壳参数的属性和值。
当-f
与-U
结合使用时:
[-f标志导致]名称是指函数而不是参数。 ... -u和-U标志使该函数被标记为自动加载; -U还会导致在加载函数时抑制别名扩展。compinit
是“较新的” Z-Shell完成系统compsys
使用的完成初始化功能。有关详细信息,请参见man zshcompsys
。-i
标志用于:
要使compinit默默地忽略所有不安全的文件和目录,请使用-i选项
通常,根据this interesting read,您应该使用autoload -Uz
。