zsh:找不到命令:{compinstall、compinit、compdef}

zsh:找不到命令:{compinstall、compinit、compdef}

该页zshcompsys man说:

初始化

如果系统已完全安装,那么compinit从初始化文件中调用 shell 函数就足够了;请参阅下一节。然而,该功能 compinstall可以由用户运行来配置完成系统的各个方面。

zsh但找不到命令:

genesis% compinit
zsh: command not found: compinit
genesis% compinstall
zsh: command not found: compinstall
genesis% echo $PATH
/home/ravi/bin:/home/ravi/.gem/ruby/2.4.0/bin:/home/ravi/bin:/home/ravi/.gem/ruby/2.4.0/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/local/heroku/bin:/home/ravi/.cabal/bin:/home/ravi/.local/share/fzf/bin:/usr/local/heroku/bin:/home/ravi/.cabal/bin
genesis%

我之所以问这个问题是因为当我开始时zsh我得到:

tmuxinator.zsh:20: command not found: compdef

我如何zsh找到这些完成命令?

答案1

这和我在 mac 上遇到的问题是一样的。我正在使用 zsh shell。

Zsh Compdef 错误

Compdef 基本上是 zsh 用于加载自动完成的函数。需要激活补全系统。如果你正在使用类似的东西哦我的zsh那么这已经解决了,否则您需要将以下内容添加到 ~/.zshrc

autoload -Uz compinit
compinit

可以像这样 compdef 一样直接使用 compdef 函数来手动注册完成函数。但在使用 compdef 之前,compinit 需要在上下文中自动加载。

答案2

按要求回答问题

通过运行以下命令访问这些命令:

$ autoload -Uz compinstall && compinstall

它将加载一个引导向导,我一选择就退出了Save and exit

然后重新加载外壳:

$ exec zsh

更一般的答案

新用户配置似乎未运行。

运行它:

$ autoload -Uz zsh-newuser-install && zsh-newuser-install -f

答案3

我遇到了同样的问题。

对我来说,我做了以下事情:

  • 关闭当前终端
  • 运行命令brew doctor来修复任何brew包问题
  • 最后运行命令rm -f ~/.zcompdump; compinit

相关内容