zsh: コマンドが見つかりません: {compinstall, compinit, compdef}

zsh: コマンドが見つかりません: {compinstall, compinit, compdef}

ページzshcompsys manの内容は次のとおりです。

初期化

システムが完全にインストールされている場合は、compinit初期化ファイルからシェル関数を呼び出すだけで十分です。次のセクションを参照してください。ただし、この機能は 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シェルを使用しています。

Zsh Compdefエラー

Compdefは、デフォルトでzshがオートコンプリートをロードするために使用する機能です。完成システムを有効にする必要があります。次のようなものを使用している場合ああ、この問題はすでに解決されています。そうでない場合は、~/.zshrc に以下を追加する必要があります。

autoload -Uz compinit
compinit

完成関数は、この compdef と同様に compdef 関数を直接使用して手動で登録できます。ただし、compdefを使用する前に、コンパニットをコンテキストに自動的にロードする必要があります。

答え2

リクエストに応じて質問に回答

次のコマンドを実行してこれらのコマンドにアクセスします。

$ autoload -Uz compinstall && compinstall

起動ウィザードをロードして選択するとすぐに終了しますSave and exit

その後、シェルを再ロードします。

$ exec zsh

もっと一般的な答え

新しいユーザー設定が実行されていないようです。

実行してください:

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

答え3

私は同じ問題に直面しました。

私は次のことをしました。

  • 現在の端末を閉じる
  • brew doctorBrew パッケージの問題を解決するには、コマンドを実行します。
  • 最後にコマンドを実行します。rm -f ~/.zcompdump; compinit

関連情報