click的命令自动补齐功能介绍
cn·@brysj22952·
0.000 HBDclick的命令自动补齐功能介绍
# 因由 上文([python命令行神器click介绍](https://steemit.com/cn/@brysj22952/python-click))描述了使用click创建python命令行程序的主要过程。在实际使用中还希望它有自动补齐的功能,毕竟命令行参数有哪些很难记住,能够自动提示和联想对得心应手的使用至关重要。所以本文讲述怎么使click命令具有自动补齐能力。 首先,不借助第3方工具,click本身是可以支持自动补齐的,在[click详细文档(英文版)](https://media.readthedocs.org/pdf/pocoo-click/latest/pocoo-click.pdf)有一个章节有介绍。但是对于我这种菜鸟,也懒得折腾,就使用了一个开源的第三方库来搞定它,更方便一些。 第三方库地址:https://github.com/click-contrib/click-completion 它有很多自动补齐功能的增强,并且还支持更多的shell,可参考其readme.md文档。 # 过程 ## 安装 git clone https://github.com/click-contrib/click-completion cd click-completion python3 setup.py install --user ## 配置过程 ### 导入及初始化 ```python import click_completion click_completion.init() ``` ### 配置安装命令 ```python @completion.command() def install(): """Install the click-completion-command completion""" shell, path = click_completion.install('bash') click.echo('%s completion installed in %s' % (shell, path)) ``` 然后,你需要在shell下执行xx install命令,显示bash completion installed in /root/.bash_completion,你还需要source /root/.bash_completion,就生效了。 当然,这个是简化版的安装命令,详细的请参考Github上click-completion的示例。 ### 效果 输入xx(你的命令行程序名),然后按两下Tab键,会提示子命令列表,子命令输入首字母,再按Tab键,会自动补齐,如果'xx -',在输入Tab键,会提示参数列表。