如何修改conda提示字符串内容

How to modify conda prompt string content

如何在不触及正常提示的情况下编辑 conda 提示的行为?我想保留 conda 的前置 PS1 行为,但更改前置的字符串。

问题很相似。但是,解决方案是将 conda 前缀注入 PS1 and/or edit PROMPT_COMMAND 的中间。这打破了我想要的封装,并且当仍然需要前置 PS1 行为时非常 hacky。


我的正常提示字符串如下所示:

previous output
previous output

user@short-domain fullpath
$

当没有 conda 环境处于活动状态时,这是我想要的行为。在 conda 环境处于活动状态时,这将变为:

previous output
previous output
(<env-name-here>)
user@short-domain fullpath
$

我不喜欢这样消除前一个命令的输出和新提示之间的空白行的方式。与我上面提到的问题不同,我特别希望 (<env-name-here>) 单独一行:

previous output
previous output

(<env-name-here>)
user@short-domain fullpath
$

注意这意味着 conda 提示符修改需要包含它自己的换行符。我可以破解其他问题的答案,但同样,我不想触及与我的正常提示相关的任何变量。

有一种正确且非常简单的方法可以使用 conda 的本机来执行此操作 配置选项。

Edit .condarc 文件包含行:

env_prompt: \n({default_env})

或运行命令:

$ conda config --system --set env_prompt "\n({default_env})"

其中任何一个都将达到新终端的预期效果。 请注意,--system 选项可能不适用于许多用例。 详情请看下面的解释。


来自conda documentation

如果您不知道去哪里找,这个功能可能难以捉摸。最多 找到它的自然方法是从 configuration section 开始 conda 用户指南。

“使用 .condarc conda 配置文件”overview 说明 我们:

The conda configuration file, .condarc, is an optional runtime configuration file that allows advanced users to configure various aspects of conda, such as which channels it searches for packages, proxy settings, and environment directories. For all of the conda configuration options, see the configuration page.

configuration page 描述了我们想要的设置,以及 它的默认值:

# env_prompt (str)
#   Template for prompt modification based on the active environment.
#   Currently supported template variables are '{prefix}', '{name}', and
#   '{default_env}'. '{prefix}' is the absolute path to the active
#   environment. '{name}' is the basename of the active environment
#   prefix. '{default_env}' holds the value of '{name}' if the active
#   environment is a conda named environment ('-n' flag), or otherwise
#   holds the value of '{prefix}'. Templating uses python's str.format()
#   method.
# 
env_prompt: '({default_env}) '

conda config命令

conda config 命令本身非常有用。正在做

$ conda config --describe

显示与 configuration page 相同的信息。

由于我的 .condarc 文件位于非默认位置,我使用 --system 选项 conda config 以防止 conda 在我的文件中创建新的 .condarc 文件 主目录。来自 conda config --help:

Config File Location Selection:
  Without one of these flags, the user config file at '$HOME/.condarc' is used.

  --system              Write to the system .condarc file at
                        '<my-anaconda-install-path>/.condarc'.
  --env                 Write to the active conda environment .condarc file
                        (<current-env-path>). If no
                        environment is active, write to the user config file
                        ($HOME/.condarc).
  --file FILE           Write to the given file.