是否可以在每个会话的基础上设置 tmux 的样式?

是否可以在每个会话的基础上设置 tmux 的样式?

我设置了 2 个 tmux 会话来处理项目的不同部分(频繁来回切换)。由于它们的布局非常相似,我想设置不同的状态栏颜色来帮助我快速识别当前会话。

看完说明书,好像是这样的

set -t session_name status-bg blue

这就是我正在寻找的。但是运行该命令会更改会话状态栏颜色。是否可以在 tmux 中实现每个会话的样式?

我还尝试命名窗口并将其名称传递给-t但没有更成功。

找不到那个信息。另外,我可能无法session正确理解 tmux 用例。

答案1

您需要在较新版本的 tmux 中执行以下操作:

set -t session_name status-style bg=blue

这在 tmux 3.0a 中对我有用。另外,如果您随后想要更改另一个属性,例如状态栏中文本的颜色,您需要使用 -a(追加)选项,否则 tmux 将覆盖您之前的设置(在本例中为背景颜色)及其新设置的默认选择(在本例中为文本颜色)。所以它看起来如下:

set -a -t session_name status-style fg=green

您可以在这里找到更多信息http://man7.org/linux/man-pages/man1/tmux.1.html(搜索 setw 你将进入选项部分)

答案2

你可以尝试玩一下钩子。这是我为两个会话所做的一个例子,

set-hook -g after-new-session 'if -F "#{==:#{session_name},emacs}" "source ~/.tmux/.tmux.conf.emacs" "source ~/.tmux/.tmux.conf.amos"'
set-hook -g after-new-window 'if -F "#{==:#{session_name},emacs}" "source ~/.tmux/.tmux.conf.emacs" "source ~/.tmux/.tmux.conf.amos"'

请注意,after-new-window钩子是必要的。

你可以找到我的整个设置github

相关内容