click-completion, 在单击中,添加或者增强 bash fish zsh和powershell完成

分享于 

5分钟阅读

GitHub

  繁體 雙語
Add or enhance bash, fish, zsh and powershell completion in Click
  • 源代码名称:click-completion
  • 源代码网址:http://www.github.com/click-contrib/click-completion
  • click-completion源代码文档
  • click-completion源代码下载
  • Git URL:
    git://www.github.com/click-contrib/click-completion.git
    Git Clone代码到本地:
    git clone http://www.github.com/click-contrib/click-completion
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/click-contrib/click-completion
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    单击完成

    增强的点击完成

    fishZsh,Bash和PowerShell添加自动完成支持,然后单击。

    所有支持的shell都可以完成所有 命令行 参数和定义的选项。 此外,fish和Zsh还在完成过程中显示了选项和命令帮助。

    asciicast

    激活

    要激活完成,你需要:

    • 初始化 click_completion 模块;
    • 通知 shell 完成脚本的可用性,以及如何。

    click_completion 初始化

    为了增强本机完成能力,click_completion 猴补丁 click。 这是非常简单的:

    
    import click_completion
    
    
    click_completion.init()
    
    
    
    

    完成后,你的点击应用程序就可以完成了。

    通知你的shell

    click_completion 有一些函数可以在完成期间生成要由 shell 执行的代码,并将这里代码永久地安装在 shell 中。

    关键功能包括:

    • get_code
    • install

    可以在示例/click-completion-command 中找到用法示例,并在示例/click-completion-callback中找到。

    依赖项

    显然 click-completion 依赖于 clickJinja2 用于生成 shell 特定代码。

    安装 psutil 时,可以自动检测当前使用的shell。 如果未安装 shell 类型,则需要 shell 类型的函数将引发异常,如果未显式传递类型。

    当然,要使它有用,你需要使用鱼。Bash。datacontext或者 PowerShell。

    自定义完成

    应用程序级应用程序级别

    click_complete 有一个 startswith 函数,可以用定制的函数替换它来定制完成。 在完成过程中使用的额外环境变量可以传递给 get_codeinstall。 示例中有一个示例:示例/click-completion-command

    参数类型级别

    自定义参数类型可以重新实现 complete 方法,以便自定义完成结果。 complete 方法接受当前上下文和不完整的参数完成。 它可以返回 MATCH 不完整参数的列表值列表,或者返回元组的(arg, help) 列表。 最后一个表单是首选的,因为它允许在支持它的外壳程序的完成过程中显示帮助。

    可以在 click_completion/初始 init init中找到一个示例 DocumentedChoice

    工作原理

    通常,click_completion 工作通过一个叫做 _<PROG_NAME>_COMPLETE的魔法变量,它的中 <PROG_NAME> 是你的应用程序可以执行 NAME。

    如果你的工具叫做foo条,那么这个神奇变量叫做 _FOO_BAR_COMPLETE。 通过使用 source 值导出它,它将输出激活的激活脚本。

    例如,为你的foo条脚本启用,这就是你需要放入到你 ~/.config/fish/completions/foo-bar.fish

    
    eval (env _FOO_BAR_COMPLETE=source-fish foo-bar)
    
    
    
    

    从现在开始,你的脚本将已经启用fish完成。

    上面的激活示例总是在启动时调用你的应用程序。 这可能会大大降低 shell 激活时间,如果你有很多应用程序。 另外,你还可以使用该文件的内容来发送文件,这就是Git和它的他系统执行的。

    这可以很容易地完成:

    
    _FOO_BAR_COMPLETE=source-fish foo-bar> ~/.config/fish/completions/foo-bar.fish
    
    
    
    

    许可证

    在MIT下许可,请参阅许可证。

    大家都非常欢迎 !

    这可能是 Bug 报告的形式,请求请求。

    目前需要注意一些主题:

    • 文档
    • 测试
    • 参数解析

    COM  添加  POW  BASH  点击  Powershell  
    相关文章