使用virtualenvwrapper workon命令进行奇怪的制表符完成行为

时间:2016-08-30 18:13:16

标签: virtualenvwrapper tab-completion

我使用virtualenvwrapper来设置虚拟环境,就像我在终端中所做的任何事情一样,我在很大程度上依赖于标签完成的节省时间的魔力。

在我在Ubuntu 16.04上使用的terminator terminal emulator中,标签完成功能正常用于workon命令(即,我输入work,然后按Tab键获取workon - 输入那么多是获得独特完成所必需的)。当我尝试使用标签完成作为虚拟环境的名称时出现问题:它可以工作,但不是预期的。例如,如果我有一个virtualenv testenv,并且在我的终端中输入workon test并点击标签,它会显示testenv作为唯一完成,但我需要添加(或删除)至少一个字符才能完成名称。所以,作为一个奇怪的工作的例子:

  1. 我在命令提示符下键入workon test
  2. 我点击了标签,看到显示输出testenv(但提示中的命令未完成,我仍然看到$ workon test
  3. 我删除了t,以便我在提示符中有$ workon tes
  4. 我再次点击标签,然后我完全完成$ workon testenv
  5. 选项卡完成一次后,它将继续为该终端会话工作,因此如果我再次输入$ workon test,它会在我第一次点击时完成testtestenv标签

    这不会使事情无法使用,我自然能够在没有任何完成的情况下输入整个命令。但是,完成工作,但看起来与其他地方不同,这一事实让我每天都疯狂了。

    这是一个错误吗?预期的行为?有没有解决这个问题?到目前为止我的搜索结果是空的。

1 个答案:

答案 0 :(得分:2)

实际上,当我向.bashrc添加初始化时问题已解决:

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

docs中所述。