pip 有自动完成功能吗?

pip 有自动完成功能吗?

Pip 的命令列表很长。有没有办法Tab在控制台(Bash)中使用自动完成功能?

答案1

合理的电流pip带有内置功能为 bash、zsh 或 fish 创建完成助手:

$ pip help completion

Usage:   pip completion [options]

Description:
  A helper command to be used for command completion.

Completion Options:
  -b, --bash                  Emit completion code for bash
  -z, --zsh                   Emit completion code for zsh
  -f, --fish                  Emit completion code for fish

你可以像这样使用它:

pip completion --bash >> ~/.bashrc

然后或者启动一个新的shellsource ~/.bashrc来使它生效。

或者让它按需加载而不是在每个 shell 中加载,请执行以下操作:

mkdir -p ~/.local/share/bash-completion/completions/
pip completion --bash > ~/.local/share/bash-completion/completions/pip

等等source。这样做的好处是可以随时再次运行相同的命令来更新它,而不必编辑主.bashrc.

答案2

更新:别忘了看看muru 的回答这可能会提供更直接的解决方案。

pip可以在以下位置找到 Bash 的自动完成插件https://github.com/ekalinin/pip-bash-completion

你可以下载为 ZIP 文件或者简单地使用 Git 安装:

git clone https://github.com/ekalinin/pip-bash-completion.git
sudo cp ./pip-bash-completion/pip /etc/bash_completion.d/
. /etc/bash_completion.d/pip  # to enable in the current shell, next time should load automatically

答案3

我想完成muru 的回答答案。我喜欢保持相对干净,另外,如果您使用以下代码,则当完成代码片段有更新时,.bashrc您无需更新!.bashrc

只需将这一行添加到您的.bashrc

eval "$(pip completion --bash)"

此外,您可能还想添加该行,因为完成仅添加到pip,而不是pip3

complete -o default -F _pip_completion pip3

更新: 每次打开新终端时运行该命令实际上很慢。在我的电脑上需要 1 到 5 秒。我使用muru 的回答在最后。

相关内容