Shell 为什么此compdef错误消息指向?

Shell 为什么此compdef错误消息指向?,shell,terminal,zshrc,Shell,Terminal,Zshrc,我最近切换到zshrc,每次加载终端时,都会收到以下错误消息: Last login: Tue Nov 26 12:20:36 on ttys000 complete:13: command not found: compdef complete:13: command not found: compdef 我寻找其他答案/解决方案,一些帖子在.zshrc文件中暗示了一些东西;我的看起来像这样: export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rben

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

Last login: Tue Nov 26 12:20:36 on ttys000
complete:13: command not found: compdef
complete:13: command not found: compdef
我寻找其他答案/解决方案,一些帖子在.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部分,但是,我不知道如何解决这个问题。有一个解决方案引用了导出NVM的放置/顺序。。.zshrc文件中的块;我是否在.zshrc文件中丢失了某些内容,或者我是否错放了某些内容或订购了某些内容?

我不确定是什么调用了
complete
,但是
compdef
是由
compinit
定义的,因此您需要先调用它

autoload -Uz compinit
compinit

# Now you can write code that calls compdef

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

我猜这将需要写入.zshrc文件中?