在 tmux 中,我可以为不同的窗格边框和标题设置不同的颜色吗?

在 tmux 中,我可以为不同的窗格边框和标题设置不同的颜色吗?

我有一个 tmux 窗口,其中显示 3 个窗格:

  1. Remote_development(是的,我知道这很奇怪)
  2. 质量保证
  3. 生产

我想像这样设置窗格标题的格式:

  1. 深绿色背景,白色文字
  2. 黄色背景黑色文字
  3. 深红色背景,白色文字

我可以更改颜色,但无论我尝试什么,它都适用于所有窗格边框和标题。在 tmux 的任何当前版本中是否有任何方法可以仅设置特定窗格边框和标题的颜色?

例如,每一行设置窗格边框格式

tmux set pane-border-format '#[fg=brightwhite#, bg=darkgreen] #W [#{pane_index}] → #{pane_title} '
tmux set pane-border-format '#[fg=black#, bg=yellow] #W [#{pane_index}] → #{pane_title} '
tmux set pane-border-format '#[fg=white#,bg=darkred] #W [#{pane_index}] → #{pane_title} '

但每一行都会改变所有这些。使用起来-t似乎没有什么区别。

答案1

噢,是的,那是一个窗格(双关语)。 pane-border-formatpane-border-style是服务器选项,而不是窗格选项。

因此,你必须想出处理所有用例的样式或格式。这很快就开始变成一堆嵌套的条件语句。使用三个窗格,这是可行的,但不太漂亮。

为了便于阅读,我将把它格式化为多行。在实践中使用它时,您需要删除多余的空格,因为空格确实会显示:

tmux set pane-border-format "
#{?#{==:#{pane_title},remote_development},
    #[fg=white bg=green],
    #{?#{==:#{pane_title},quality_assurance},
        #[fg=black bg=yellow],
        #{?#{==:#{pane_title},production},
            #[fg=white bg=red],
            #[default]
        }
    }
}
#{pane_index} #{pane_title}
"

它基本上是一个嵌套条件,将窗格标题与您列出的窗格标题进行匹配,然后在显示索引和标题之前设置您提到的颜色。我取出了活动窗格的正常“反向”指示器,因为它(我相信)需要全新的嵌套级别,但如果需要,您可以添加一些其他指示器。

相关内容