是否存在可以自动为 bash 和 zsh 生成补全文件的工具?
我希望能够为我的完成指定一个事实来源,而不是为 bash 和 zsh 维护单独的完成文件。
答案1
要完成短选项和长选项以及文件名,请确保程序生成与--help
GNU 工具格式相同的使用说明。然后设置它以完成:
complete -F _longopt myprogram
在bash中compdef _gnu_generic myprogram
在 zsh 中
如果您想要更强大的功能,请定义 bash 补全并使用 zsh 的 bash 兼容模式。用户必须致电bashcompinit
在他们的 中.zshrc
,然后他们可以调用complete -F _myprogram_bash_complete myprogram
zsh 以及 bash。 Zsh 仅模拟 bash 的子集,因此请测试您的完成函数以确保它不需要 zsh 不模拟的功能。