首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在xonsh提示符中有条件地使用{env_name}

如何在xonsh提示符中有条件地使用{env_name}
EN

Stack Overflow用户
提问于 2018-11-08 14:33:45
回答 1查看 155关注 0票数 3

xonsh shell中,如何使用虚拟环境的名称作为$PROMPT定义中的条件

(更详细地说:我为xonsh本身提供了一个名为'xonsh'的虚拟环境,但是我不希望这个venv显示在提示符中,但是任何其他激活的venv都应该显示在提示符中。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-08 15:25:43

首先看一下xonsh/prompt/env.py,看看我们如何定义env_name函数--因为您使用了virtualenv,所以您可以在xonshrc中执行如下操作

代码语言:javascript
复制
import os.path

def env_name_cust(pre_chars="(", post_chars=")"):
    """Extract the current environment name from $VIRTUAL_ENV 
    """
    env_path = __xonsh__.env.get("VIRTUAL_ENV", "")
    env_name = os.path.basename(env_path)
    if env_name and env_name != 'xonsh':
        return pre_chars + env_name + post_chars

然后将该函数添加到$PROMPT_FIELDS字典中:

$PROMPT_FIELDS['env_name_cust'] = env_name_cust

然后,可以在{env_name_cust}格式字符串中使用$PROMPT来代替默认的{env_name}

如果您愿意,也可以使用${...}作为__xonsh__.env的替代品。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53209874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档