我应该如何在zsh中使用argcomplete?

Exe*_*n-G 5 python zsh tab-completion command-line-arguments

我使用argcompleteTabBash中完成.

argcomplete提供全球完成bash,但不是zsh.

我想创建一个文件~/.zsh_completion,以包含要完成的文件.该文件应该在源文件时为这些文件生成自动完成~/.zshrc.

我怎么做?

Exe*_*n-G 5

好吧,有一种方法可以做到,但这不是我真正想要的方式。

无论如何,这里是:

  1. 安装argcomplete

    $ pip install argcomplete
    
    Run Code Online (Sandbox Code Playgroud)
  2. 激活argcompolete

    $ activate-global-python-argcomplete --user
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将此添加到~/.zshrc

    autoload bashcompinit
    bashcompinit
    source ~/.bash_completion.d/python-argcomplete.sh
    
    eval "$(register-python-argcomplete /path/to/the/to/be/completed/file1)"
    eval "$(register-python-argcomplete /path/to/the/to/be/completed/file2)"
    eval "$(register-python-argcomplete /path/to/the/to/be/completed/file3)"
    
    Run Code Online (Sandbox Code Playgroud)

    可能有一种解决方案可以从另一个文件中读出要完成的文件,但我不知道该怎么做。

  • 奇怪的是,当我在已经生成的 zsh 中手动运行 `eval "$(register-python-argcomplete /path/to/the/to/be/completed/file1)"` 命令时,我得到了所需的自动补全。但是将行添加到“.zshrc”不会提供自动补全。 (2认同)

wea*_*ver 5

Arg完整作者在这里。我刚刚发布了 argcomplete v3,它原生支持 zsh,没有bashcompinit兼容层,并且完全官方支持完成描述和全局完成(默认情况下安装到activate-global-python-argcomplete其中/usr/local/share/zsh/site-functions,但该行为是可配置的)。请试一试。