在xonsh
外壳中,如何使用虚拟环境的名称作为定义中的条件$PROMPT
?
(更详细地讲:我有一个'xonsh'
用于xonsh shell本身的虚拟环境,但是我不希望在提示中显示该venv,但是任何其他激活的venv都应该在提示中显示。)
首先xonsh/prompt/env.py
看一下我们如何定义env_name
函数-由于您使用virtualenv,因此可以在您的代码中执行以下操作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
然后,您可以{env_name_cust}
在$PROMPT
格式字符串中使用默认字符串{env_name}
如果愿意,也可以使用${...}
它来代替__xonsh__.env
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句