virtualenvwrapper-workon命令的奇怪选项卡完成行为

virtualenvwrapper-workon命令的奇怪选项卡完成行为,virtualenvwrapper,tab-completion,Virtualenvwrapper,Tab Completion,我使用virtualenvwrapper来设置虚拟环境,就像我在终端中所做的任何事情一样,我严重依赖于标签完成这一节省时间的魔法 在我在Ubuntu16.04上使用的命令中,tab completion通常适用于workon命令(即,我键入work,然后点击tab键以获得workon——要获得一个独特的完成,需要输入这么多)。当我尝试使用tab completion作为虚拟环境的名称时,问题就出现了:它可以工作,但没有达到预期效果。例如,如果我有一个virtualenvtestenv,并且在我的

我使用
virtualenvwrapper
来设置虚拟环境,就像我在终端中所做的任何事情一样,我严重依赖于标签完成这一节省时间的魔法

在我在Ubuntu16.04上使用的命令中,tab completion通常适用于
workon
命令(即,我键入
work
,然后点击tab键以获得
workon
——要获得一个独特的完成,需要输入这么多)。当我尝试使用tab completion作为虚拟环境的名称时,问题就出现了:它可以工作,但没有达到预期效果。例如,如果我有一个virtualenv
testenv
,并且在我的终端I键入
workon test
并点击选项卡,它将显示
testenv
作为唯一的完成符,但我需要在完成名称之前添加(或删除)至少一个字符。因此,作为一个奇怪的例子:

  • 我在命令提示下键入
    workon test
  • 我点击tab并看到显示的输出
    testenv
    (但提示符中的命令未完成,我仍然看到
    $workon test
  • 我删除了
    t
    ,以便在提示符中显示
    $workon tes
  • 我再次点击tab,我得到了完整的完成
    $workon testenv
  • 在tab completion工作一次之后,它将继续为该终端会话工作,因此如果我再次键入
    $workon test
    ,它将在我第一次点击tab时完成
    test
    testenv

    这并不会使事情变得无法使用,当然,我能够在没有任何补全的情况下键入整个命令。但补全有效,但与其他地方的工作方式不同,这一事实已经让我每天发疯好长一段时间了


    这是一个错误吗?预期的行为吗?是否有解决方法?到目前为止,我的搜索结果都是空的。

    实际上,当我将初始化添加到
    时,问题就解决了。bashrc

    export WORKON_HOME=$HOME/.virtualenvs
    export PROJECT_HOME=$HOME/Devel
    source /usr/local/bin/virtualenvwrapper.sh
    

    如中所述。

    我也有同样的问题。Ubuntu 16.04.1 LTS。