zsh完成差异

时间:2012-09-24 18:30:06

标签: zsh zshrc zsh-completion

我见过很多人这样做 autoload -Uz compinit
compinit

和其他人这样做 autoload -U compinit
compinit -i

我想知道区别。我应该使用哪一个?

1 个答案:

答案 0 :(得分:12)

来自man zshbuiltins

autoload

  

标志-z-k标记要在本机或ksh仿真中自动加载的功能,就好像选项KSH_AUTOLOAD未设置或已设置一样。

可以追溯-U标记:autoload相当于function -u,相当于typeset -f。简而言之,typeset习惯于:

  

设置或显示shell参数的属性和值。

-f-U结合使用时

  

[-f标志的原因]名称是指函数而不是参数。 ... -u和-U标志导致该功能被标记为自动加载; -U还会在加载函数时导致别名扩展被抑制。

compinitcompsys使用的完成初始化函数,'{更新'的Z-Shell完成系统。有关详细信息,请参阅man zshcompsys

-i标志用于:

  

使compinit静默忽略所有不安全的文件和目录使用选项-i

一般情况下,根据this interesting read,您应该使用autoload -Uz