dnfのインストールが完了し、zshでは使用できませんが、bashでは使用できます

dnfのインストールが完了し、zshでは使用できませんが、bashでは使用できます

Bashでを入力すると、インストールするdnf install java<tab>パッケージの提案がたくさん表示されます。しかし、zshでこれを行うと、何も起こりません。私は/etc/bashrcで遊んでいて、bash_completionがbashで動作することを許可していることに気づきましたが、zshで動作させる方法がわかりません。

答え1

ZSHの提供完了時間は$fpath時間の経過とともに変わります。特に、古くて古いZSHのインストールでは不明な新しく興味深いプログラムの場合はさらにそうです。一般的な手順は次のとおりです。

  1. ZSHを最新バージョンに更新し、完成スクリプトがあることを確認してください。print $fpath[-1]/_dnfただし、一部のコマンドでは、完成スクリプトがcompdef特定の行の下の別のファイルにある可能性があります。
  2. ソフトウェアがメーリングリストに寄与していないZSHコンプリートスクリプトに同梱されていることを確認してくださいzsh-workers(まれにそうであれば、含めるためにZSHの人々にそのコンプリートコードを送信することもできます。
  3. 他のZSH完了リポジトリに完了コードが含まれていることを確認してください。https://github.com/zsh-users/zsh-completions/
  4. プログラムの独自の完成スクリプトを作成します。これには通常、既存の完成スクリプト、zshall(1)文書化などの調査_arguments、一般的な調整、およびテストが必要です。

便利なファイル統合コマンド$fpathは次のとおりです。

% print -l ${^fpath}/_pgrep(N)
/Users/jdoe/.zsh/functions/darwin/_pgrep
/opt/local/share/zsh/5.3.1/functions/_pgrep
% 

これは、私のMacがpgrepアップストリームに加えてカスタムコンプリートを持っていることを示しています。

関連情報