python - 单击模块自动完成功能在 3 组深度下不起作用

标签 python bash autocomplete command-line-interface python-click

click是一个用于创建命令行界面的Python包。

我有这个命令结构。

cli        (group - entry point)
-ip        (group)
--static   (group)
---foo     (method)
--floating (group)
---bar     (method)

当我按 TabTab 键时:

  1. 尝试 - 我有正确的自动完成功能,例如 ip 命令
  2. 尝试 - 我有正确的自动完成功能,例如 float 静态命令
  3. 尝试 - 我不正确自动完成 - 当前目录中所有文件的列表,而不是 bar 命令。

screenshot

代码如下: setup.py

from distutils.core import setup

setup(
    name='sampleclick',
    packages=['sampleclick'],
    entry_points={
        'console_scripts': [
            'sc = sampleclick.shell:cli'
        ]
    },
    install_requires=[
        'click>=6.6',
    ]
)

shell.py

# coding=utf-8
import click


@click.group()
def cli():
    """Entry point"""


@cli.group()
def ip():
    pass


@ip.group()
def floating():
    pass


@floating.command()
def bar():
    """Is a ip floating command"""


@ip.group()
def static():
    pass


@static.command()
def foo():
    """Is a ip static command"""

如何解决这个问题?

最佳答案

我在Click 6.6版本中也遇到了这个bug。我可以证明它已在 6.7 版本中通过以下提交修复:https://github.com/pallets/click/commit/8af7ec14f3d936e02c2e4ee62d3573593868e07e .

关于python - 单击模块自动完成功能在 3 组深度下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37780146/

相关文章:

python - 如何在index django中显示答案?

python - Python 中父类方法生成其子类实例的设计是否错误?

python - 通过 bash 替换单个 CSV 字段中的额外双引号

bash - 傅立叶变换很多音频文件?

java - Android - AutoCompleteTextView 如何将项目附加到始终显示的结果列表?

javascript - jquery中的自定义自动完成功能

python - python3源代码的类图查看器应用程序

python - 以 root 身份在启动时运行 Python 脚本

linux - bash 脚本 : if condition

c# - 调用 TextBox.AppendText() 后显示自动完成列表