python 如何在zsh中使用argcomplete?

efzxgjgh  于 2023-03-21  发布在  Python
关注(0)|答案(4)|浏览(160)

我使用argcomplete在Bash中完成Tab。
argcompletebash提供全局补全,但不为zsh提供全局补全。
我想创建一个文件~/.zsh_completion,包含要完成的文件。当它来自~/.zshrc时,该文件应该为这些文件生成自动完成。
我该怎么做呢?

6jygbczu

6jygbczu1#

好吧,有一种方法可以做到这一点,但它不是我真正想要的方式。
不管怎么说,是这样的:
1.安装argcomplete

$ pip install argcomplete

1.激活argcompolete

$ activate-global-python-argcomplete --user

1.将此添加到~/.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)"

可能有一个解决方案,从另一个文件中读出要完成的文件,但我不知道如何做到这一点。

gfttwv5a

gfttwv5a2#

我刚刚发布了一个名为pyzshcomplete的新项目,可以找到here。它旨在提供与argcomplete相同的功能,但针对zsh

yvfmudvl

yvfmudvl3#

与Exeleration-G相同,但在您的~/.zshrc中,您只需要将

eval "$(cd path/to/script; register-python-argcomplete script.name)"
roqulrg3

roqulrg34#

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

相关问题