我在 Mac Snow Leopard 上,安装了 pythonhomebrew
并且它正在工作,我有两个自定义 bash 完成脚本,一个pip
用于django
. 他们曾经工作,但在弄乱了我的点文件后他们不再工作了。
django完成来自原始项目,pip completion
(来自这里)如下所示:
_pip() {
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
commands=$(pip --help | awk '/Commands\:/,/General Options\:/' | \
\grep -E -o "^\s{2}\w*" | tr -d ' ')
opts=$(pip --help | \grep -E -o "((-\w{1}|--(\w|-)*=?)){1,2}")
if [ $COMP_CWORD == 1 ] ; then
COMPREPLY=( $(compgen -W "${commands}" -- ${cur}) )
return 0
fi
if [[ ${cur} == -* ]] ; then
local command_opts=$(pip $prev --help | \
\grep -E -o "((-\w{1}|--(\w|-)*=?)){1,2}")
COMPREPLY=( $(compgen -W "${command_opts}" -- ${cur}) )
return 0
fi
}
complete -o default -F _pip pip
错误: Django 完成在我获取它的任何时候都会抛出这个:
complete: usage: complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist] [-P prefix] [-S suffix] [-X filterpat] [-F function] [-C command] [name ...]
所以基本上它应该是一个语法问题。我pip completion
什么也不做pip + TAB
。
关键是他们都曾经工作过,但我不知道会发生什么。据我了解,该complete
功能是内置的 bash,我没有搞砸 bash,只有点文件..有什么线索吗?