Bashでを入力すると、インストールするdnf install java<tab>
パッケージの提案がたくさん表示されます。しかし、zshでこれを行うと、何も起こりません。私は/etc/bashrcで遊んでいて、bash_completionがbashで動作することを許可していることに気づきましたが、zshで動作させる方法がわかりません。
答え1
ZSHの提供完了時間は$fpath
時間の経過とともに変わります。特に、古くて古いZSHのインストールでは不明な新しく興味深いプログラムの場合はさらにそうです。一般的な手順は次のとおりです。
- ZSHを最新バージョンに更新し、完成スクリプトがあることを確認してください。
print $fpath[-1]/_dnf
ただし、一部のコマンドでは、完成スクリプトがcompdef
特定の行の下の別のファイルにある可能性があります。 - ソフトウェアがメーリングリストに寄与していないZSHコンプリートスクリプトに同梱されていることを確認してください
zsh-workers
(まれにそうであれば、含めるためにZSHの人々にそのコンプリートコードを送信することもできます。 - 他のZSH完了リポジトリに完了コードが含まれていることを確認してください。https://github.com/zsh-users/zsh-completions/
- プログラムの独自の完成スクリプトを作成します。これには通常、既存の完成スクリプト、
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
アップストリームに加えてカスタムコンプリートを持っていることを示しています。