0

我有一个 Git 存储库,omni.

omni在 签出~/omni

有一个完成脚本~/omni/completions/_omni

我设置fpath=( ~/omni/completions $fpath ), via~/.zprofile所以完成脚本应该被拾取但不是。这被简单地证明了:

$ for dir in "$fpath[@]"; do if [ -f "$dir/_omni" ]; then echo $dir; fi; done
/Users/myusername/omni/completions

我还运行compinit -i以初始化完成,但脚本没有被拾取。

$ compinit -i

$ which _omni
_omni not found

但是,如果我重新初始化完成,一切正常

$ which _omni
_omni not found

$ compinit -i

$ which _omni
_omni not found

$ compinit -u

$ which _omni
_omni () {
    # undefined
    builtin autoload -XUz
}

现在完成脚本被拾取。

我需要做什么才能在 shell 启动时自动拾取完成脚本,compinit -i运行时?

4

1 回答 1

0

这似乎与权限有关,因为所有文件(及其父目录)都标记为 777。

chmod -R go-rwx ~/omni

似乎已经解决了这个问题。

于 2021-02-08T07:08:35.730 回答