问题 zsh完成差异


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

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

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


5775
2017-09-24 18:30


起源



答案:


autoload来自 man zshbuiltins

旗帜 -z 和 -k 将函数标记为在本机或ksh仿真中自动加载,就像选项一样 KSH_AUTOLOAD 分别是未设置或未设置。

-U flag可以追溯到: autoload 相当于 function -u,相当于 typeset -ftypeset简而言之,用于:

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

什么时候 -f 与...结合使用 -U

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

compinit 是完成初始化函数使用的 compsys,'更新'的Z-Shell完井系统。看到 man zshcompsys 详情。

-i flag用于:

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

一般来说,你应该使用 autoload -Uz, 根据 这个有趣的读物


10
2017-09-25 03:38



“-Uz”?是的,这几乎总是“正确的”[tm],所以我不会在这里讨论它  - 嗯,我正在寻找的那一部分实际上没有在文章中解释过 - ThiefMaster♦


答案:


autoload来自 man zshbuiltins

旗帜 -z 和 -k 将函数标记为在本机或ksh仿真中自动加载,就像选项一样 KSH_AUTOLOAD 分别是未设置或未设置。

-U flag可以追溯到: autoload 相当于 function -u,相当于 typeset -ftypeset简而言之,用于:

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

什么时候 -f 与...结合使用 -U

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

compinit 是完成初始化函数使用的 compsys,'更新'的Z-Shell完井系统。看到 man zshcompsys 详情。

-i flag用于:

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

一般来说,你应该使用 autoload -Uz, 根据 这个有趣的读物


10
2017-09-25 03:38



“-Uz”?是的,这几乎总是“正确的”[tm],所以我不会在这里讨论它  - 嗯,我正在寻找的那一部分实际上没有在文章中解释过 - ThiefMaster♦