为什么此 compdef 错误消息指的是?

Why is this compdef error message referring to?

我最近切换到 zshrc,每次加载我的终端时,我都会收到此错误消息:

Last login: Tue Nov 26 12:20:36 on ttys000
complete:13: command not found: compdef
complete:13: command not found: compdef

我查找了其他 answers/solutions,一些帖子暗示了 .zshrc 文件中的内容;我的看起来像这样:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

为了以防万一,我也检查了我的 .zprofile 文件,但它只有这一行:

source ~/.zshrc

我看到的一篇帖子暗示问题出在 .zshrc 文件的导出 NVM 部分,但是,我不确定如何解决这个问题。有一种解决方案引用了 .zshrc 文件中导出 NVM.. 块的 placement/order;我是不是遗漏了什么或者我 misplaced/incorrectly 在我的 .zshrc 文件中订购了什么?

我不确定什么在调用 complete,但是 compdef 是由 compinit 定义的,所以您需要先调用它。

autoload -Uz compinit
compinit

# Now you can write code that calls compdef

如果您 运行 compinstall,它会为您添加必要的行到您的 .zshrc