在Fish shell中直接在config.fish中设置virtualenv名称

时间:2014-03-28 08:54:02

标签: virtualenv fish virtualfish

virtualfish规范的文档,为了让鱼提示显示当前virtualenv,您应该更新全局fish_prompt函数并保存它(funced fish_prompt和funcsave fish_prompt)。我没有发现这种方法特别优雅,因为我希望在config.fish中进行所有自定义。因此,我的问题是,通过仅virtualenv进行更改,在fish prompt中显示当前config.fish名称的最简单方法是什么?

因此,如果foobar是当前环境的名称,那么如何将其显示为:

(foobar) gedefar@Jakobs-MacBook-Pro ~/w/pyprototypes`

1 个答案:

答案 0 :(得分:8)

我发现最简单的方法是覆盖fish_prompt

中的config.fish函数
functions -c fish_prompt _old_fish_prompt
function fish_prompt
  if set -q VIRTUAL_ENV
    echo -n -s (set_color -b blue white) "(" (basename "$VIRTUAL_ENV") ")" (set_color normal) " "
  end
  _old_fish_prompt
end