TMUX 显示/更新 conda 环境的分辨率

TMUX 显示/更新 conda 环境的分辨率

我是 Tmux 的新手,现在正在配置 Tmux 中的状态栏。我希望我的 tmux 状态栏可以像 Powerlevel10K 一样显示当前的 Conda 环境。我尝试过 set -g status-right "conda: #{CONDA_DEFAULT_ENV} | %a %h-%d %H:%M ",但失败了。 tmux 状态栏在当前 conda env 的名称中不显示任何内容。所以我的 tmux 当前的右下角就像

在此输入图像描述

但我真正想要的是类似的东西

conda: base | Wed Sep-06 23:18

答案1

TMUX 显示/更新 conda 环境的分辨率

最后我想出了在Tmux状态栏中显示或更新conda环境的解决方案。我尝试过使用

set -g status-right "conda: #(echo $CONDA_DEFAULT_ENV) 

但它不起作用。看来 Tmux 不知道$CONDA_DEFAULT_ENV.我已经尝试过类似的方法$PATH并且效果很好。最后,我询问 GPT4 如何正确显示 conda env 名称,它建议在中添加以下代码~/.zshrc

# Update TMUX environment variable
# Add conda.sh to PATH
source /opt/homebrew/Caskroom/miniforge/base/etc/profile.d/conda.sh

# Update TMUX_CONDA_ENV every time a new prompt is generated
precmd() {
  if [[ -n $TMUX && -n $CONDA_DEFAULT_ENV ]]; then
    tmux setenv -g TMUX_CONDA_ENV "$CONDA_DEFAULT_ENV"
  else
    tmux setenv -gu TMUX_CONDA_ENV
  fi
}

以下是GPT4对代码片段的解释

We might need to take a different approach. Let's try using the 

PROMPT_COMMAND environment variable, which holds a command to be executed 

before each command prompt. We'll update the TMUX_CONDA_ENV variable 

inside the PROMPT_COMMAND so that it changes every time a new prompt is 

generated.

现在tmux.conf我们需要将原来的行修改为

set -g status-right "Conda: #{?TMUX_CONDA_ENV,#{TMUX_CONDA_ENV},base}"

现在效果很好。它不仅显示正确的 conda env 名称,而且在我们切换到其他环境时更新 conda env 名称。

相关内容