簡體   English   中英

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

[英]How to use {env_name} conditionally in a xonsh prompt

xonsh shell中,如何使用$PROMPT定義中用作條件的虛擬環境的名稱?

(更詳細地講:我為xonsh shell本身提供了一個名為'xonsh'的虛擬環境,但是我不希望在提示中顯示該venv,但是任何其他已激活的venv都應在提示中顯示。)

首先查看xonsh/prompt/env.py以了解我們如何定義env_name函數-由於您使用virtualenv,因此可以在xonshrc執行以下xonshrc

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

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

如果願意,還可以使用${...}代替__xonsh__.env

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM