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

jak*_*bht 3 virtualenv fish virtualfish

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

因此,如果foobar是当前环境的名称,如何显示它:

(foobar) gedefar@Jakobs-MacBook-Pro ~/w/pyprototypes`
Run Code Online (Sandbox Code Playgroud)

jak*_*bht 9

我发现最简单的方法是覆盖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
Run Code Online (Sandbox Code Playgroud)