我有一个包含 zsh 完成脚本的项目,当用户安装软件时我应该将完成文件复制到哪里(例如通过运行make install,apt install或pacman -Si...)?
我知道其他 shell 有一些特定的完成脚本目录,例如:
fish -> /usr/share/fish/vendor_completions.d
bash ->/usr/share/bash-completion/completions
那么 zsh 呢?
兹什->/usr/share/???
zsh用于补全功能的路径是可配置的(请参阅 参考资料${fpath[@]}),但遵循systemd\xe2\x80\x99s 示例是安全的:share/zsh/site-functions默认情况下将它们安装在安装前缀下,但允许覆盖它。安装前缀应该是/usr/local默认的。
对于打包完成,Fedora及其衍生品使用/usr/share/zsh/site-functions,Debian及其衍生品使用/usr/share/zsh/vendor-completions;您不应该关心此处使用的特定目录,但这种情况解释了为什么它对于允许覆盖完成安装目录很有用。
对于非打包完成,两个发行版都支持/usr/local/share/zsh/site-functions.