web-dev-qa-db-ja.com

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

zshcompsysman-ページにはこう書かれています:

初期化

システムが完全にインストールされている場合は、初期化ファイルからシェル関数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を取得するにはどうすればよいですか?

3
Tom Hale

これは、Macで発生した問題と同じです。私はzsh Shellを使用しています。

Zsh Compdef error

Compdefは基本的に、zshがオートコンプリートをロードするために使用する関数です。補完システムを有効にする必要があります。 oh-my-zshのようなものを使用している場合、これはすでに処理されています。それ以外の場合は、次のものを〜に追加する必要があります。 /.zshrc

autoload -Uz compinit
compinit

このcompdefのようにcompdef関数を直接使用して、完了関数を手動で登録できます。ただし、compdefを使用する前に、compinitをコンテキスト内でオートロードする必要があります。

11

質問に答える

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

$ autoload -Uz compinstall && compinstall

ガイド付きウィザードが読み込まれます。Save and exit

次に、シェルをリロードします。

$ exec zsh

より一般的な答え

新しいユーザー構成が実行されなかったようです。

それを実行する:

$ autoload -Uz zsh-newuser-install && zsh-newuser-install -f
6
Tom Hale