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-workers邮件列表的 ZSH 完成脚本(很少见,但如果是这样,也许可以将该完成代码提交给 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除了上游之外,我还有一个自定义完成。

相关内容