[英]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.