.tmux.conf:如何有条件地设置颜色变量?

.tmux.conf:如何有条件地设置颜色变量?

有时我会使用浅色终端,有时我会使用深色终端。我导出一个THEME环境变量,以便有条件地设置我的.bash_profile和中的颜色.vimrc。我试图在我的中做同样的事情.tmux.conf,但事实证明这很困难。 轻型终端黑暗终端 这有效,

if '[[ "$THEME" =~ dark ]]' 'set -g status-bg colour233' \
                            'set -g status-bg "#ffffff"'

但会变得很麻烦。例如:

if '[[ "$THEME" =~ dark ]]' "set  -g status-right \" #S #[fg=#9BD4FF]::#[fg=default] #h #[fg=#9BD4FF]::#[fg=default] #(sysctl vm.loadavg | cut -d ' ' -f 3-5) \"" \
                            "set  -g status-right \" #S #[fg=#000000]::#[fg=default] #h #[fg=#000000]::#[fg=default] #(sysctl vm.loadavg | cut -d ' ' -f 3-5) \""

我尝试有条件地设置里面的颜色变量.tmux.conf但无法使它们工作。

if '[[ "$THEME" =~ dark ]]' 'BG_COLOUR=colour233' 'BG_COLOUR=#ffffff'
set -g status-bg $BG_COLOUR

当我启动 tmux 时,这给了我一个“坏颜色”错误。我尝试过引用 ( 'BG_COLOUR="colour233"'),尝试过 setenv ( 'setenv -g BG_COLOUR colour233'),还尝试过用引用 ( 'setenv -g BG_COLOUR "colour233"') 来 setenv,但都不起作用。有没有办法干净利落地做到这一点?

答案1

以下步骤应该有所帮助:

  1. 将状态行配置分成两个不同的文件:一个配置为深色主题所需的颜色,另一个配置为浅色主题所需的颜色。

  2. 将这些文件保存在你的主目录中(我创建了一个 .tmux 目录,它们放在那里)

  3. 在你的 .tmux.conf 中添加类似下面的内容:

    if '[[ "$THEME" =~ dark ]]' 'source ~/.tmux/dark_status.conf'

您可能还想为浅色主题添加条件。

相关内容