我想要一个以编程方式从bash或zsh返回完成选项的函数。 stackoverflow上有很多examples of related questions,但在任何地方都没有适当的通用答案。我不想知道如何为bash编写特定的完成函数。
我已经尝试通过读取debian / etc / completion shell代码,通过将tab的控制代码回显到“bash -i”来实现这一点,甚至尝试使用与python-pexpect的自动子进程交互。每当我认为自己成功时,我发现一些小问题会使整个解决方案失效。 我接受任何语言的解决方案,但理想情况下它会是python。显然,确切的输入输出会因系统而异,但请看下面的示例I / O:
如果你正在考虑用shell编写的解决方案,那么理想情况下我可以在没有“源”的情况下执行。例如,bash“compgen”命令看起来很有趣(尝试“compgen -F _git”),但请注意“bash -c'compgen -F _git'”不起作用,因为完成帮助程序“_git”不在范围内。
答案 0 :(得分:0)