Pip 支持 bash
、zsh
和 fish
三大 Shell 中的命令自动完成功能
只需要做一些简单的配置,就能达到令人满意的效果,比如 bash
中只需要输入以下命令
$ pip completion --bash >> ~/.profile
而 zsh
中同样是需要输入以下命令
$ pip completion --bash >> ~/.profile
在 fish
中更是如此即可
$ pip completion --fish > ~/.config/fish/completions/pip.fish
或者,我们可以直接将 completion
命令的结果作为参数传递给 eval()
函数,例如可以直接运行下面的命令
eval "`pip completion --bash`"
pip completion 命令
现在,你是不是很好奇 pip completion
命令的结果到底是啥? 我也很好奇,所以我使用下面的命令看看会输出啥
pip completion
输出结果如下
pip completion --bash | cat # pip bash completion start _pip_completion() { COMPREPLY=( $( COMP_WORDS="${COMP_WORDS[*]}" \ COMP_CWORD=$COMP_CWORD \ PIP_AUTO_COMPLETE=1 $1 ) ) } complete -o default -F _pip_completion pip # pip bash completion end
..... 看不懂略...
如果你使用的是 oh-my-zsh
,则可以使用下面的命令
$ pip completion --zsh
输出结果如下
# pip zsh completion start function _pip_completion { local words cword read -Ac words read -cn cword reply=( $( COMP_WORDS="$words[*]" \ COMP_CWORD=$(( cword-1 )) \ PIP_AUTO_COMPLETE=1 $words[1] ) ) } compctl -K _pip_completion pip # pip zsh completion end
目前尚无回复