and*_*tti 54 python argparse bash-completion
我想在我的python脚本中也可以在参数中自动完成.
我从来没有真正理解bash_completion是如何工作的(对于参数),但是在我深入了解之后我明白了:
第二点尤其不是很好,因为我想让它自动生成.
最好的事情是shell会在每个TAB上向我的程序询问要完成什么,但我的印象是这不能真正起作用,这是正确的吗?
第二个选项可能只是将一个转换器从argparse解析器写入一个正确完成的shell函数.
wea*_*ver 64
无耻的自我推销:https://github.com/kislyuk/argcomplete
argcomplete为argparse提供bash完成.
nea*_*mcb 13
Bash"完成"真的很棒.用Python编写的程序很容易....
我认为这正是你想要的:optcomplete:用于Python的Shell Completion Self-Generator.例如,它可用作Ubuntu中的"python-optcomplete"包.
在python程序中插入几行,用户(一次)运行bash"complete"程序告诉bash如何完成参数:
complete -F _optcomplete <program>
Run Code Online (Sandbox Code Playgroud)
现在用户已经完成了!默认情况下,它可以简单地完成程序选项.请参阅示例,了解如何自定义特定选项的完成方式.它编写精美,易于扩展以处理子命令,备用完成选项等!
更新:
要在zsh中完成(对于optparse和argparse),请参阅genzshcomp 0.3.1:Python包索引
正如@englebip所指出的,我们仍然需要类似于argparsePython 2.7和3.2中引入的新模块,因为optparse现在已经弃用了.
以下是关于朝着这个方向前进的讨论:
另请参见关于如何完成的背景: 在bash中,argparse(以及不推荐使用的optparse)如何在python程序名后响应'tab'按键?- 堆栈溢出
| 归档时间: |
|
| 查看次数: |
16182 次 |
| 最近记录: |