在尝试从oh迁移到更轻的zsh配置之后,我安装了zsh-completions插件,它在通过自制安装时需要具备以下功能:
if type brew &>/dev/null; then
fpath=${HOMEBREW_PREFIX}/share/zsh-completions:$fpath
autoload -Uz compinit
compinit
fi
问题是它不能正常工作,因为它找不到compinit,我得到了下一个错误:
zsh: compinit: function definition file not found
在osx上为git设置的选项卡完成而挣扎之后,我得到了一些奇怪的错误,我也找不到源代码。
zsh:12: command not found: ___main
_default:compcall:12: can only be called from completion function
我不知道是什么导致了错误,因为一切都是正确的。
zstyle ':completion:*:*:git:*' script ~/.git-completion.bash
autoload -U compinit && compinit
zmodload -i zsh/comp
在通过macOS Catalina更新将我的shell从bash切换到zsh之后,Homebrew和zsh正在为如何拥有/usr/local/share/zsh/site-functions和/usr/local/share/zsh而争执不休。 zsh希望root拥有/usr/local/share/zsh/**/*,否则会引发令人讨厌的错误 zsh compinit: insecure directories and files, run compaudit for list.
Ignore insecure directories and files and continue [y] o
所以我不确定这是optparse-applicative的脚本有问题,还是我用错了。
在optparse-applicative 中,它指出可以通过自动完成脚本和zsh选项使程序可用。对于我的程序setup:
$> setup --zsh-completion-script `which setup`
输出:
#compdef setup
local request
local completions
local word
local index=$((CURRENT - 1))
request=(--bash-completion-enriched --bash-completio