![在 tmux 中配置状态行的中心](https://linux22.com/image/1477879/%E5%9C%A8%20tmux%20%E4%B8%AD%E9%85%8D%E7%BD%AE%E7%8A%B6%E6%80%81%E8%A1%8C%E7%9A%84%E4%B8%AD%E5%BF%83.png)
我在不同的服务器上使用 tmux,并且喜欢在顶部中心的显著位置显示当前主机的主机名。
在手册页中,我只找到设置右模板和左模板字符串的选项:
set -g status-right "<template string>"
set -g status-left "<template string>"
窗口列表也可以居中:
set -g status-justify centre
如何为中心配置模板字符串?
答案1
除了修改 tmux 之外,您无法执行此操作,因为左/右状态定位是硬编码的,将中心(如果足够大)留给窗口列表。
这是相关的块status.c
:
/* Work out left and right strings. */
memcpy(&lgc, &stdgc, sizeof lgc);
left = status_redraw_get_left(c, t, utf8flag, &lgc, &llen);
memcpy(&rgc, &stdgc, sizeof rgc);
right = status_redraw_get_right(c, t, utf8flag, &rgc, &rlen);
/*
* Figure out how much space we have for the window list. If there
* isn't enough space, just show a blank status line.
*/
答案2
自从 2015 年提出这个问题以来,事实似乎已经发生了变化。现在只需几行配置就可以很容易地实现所需的结果:
最重要的是第一行:
set -g status-right "#[align=absolute-centre] Hello, world! #[align=right]"
set -ga status-right "#{?window_bigger,[#{window_offset_x}#,#{window_offset_y}] ,}\