tmux状态行:使用status-left表示窗口列表,使用中间部分表示其他内容?

时间:2014-09-03 03:01:59

标签: tmux gnu-screen

我从GNU Screen过渡到tmux,并试图配置我的tmux状态行来模仿我在Screen中构建的标题。

我的屏幕标题左侧是窗口列表,主机名和loadavg大致居中,右侧是会话名称:

GNU Screen 0

窗口列表保持不变,会话名称保持正确,中间部分保持大致居中,但是如果它很长,则轻推以适应窗口列表... GNU Screen 2 GNU Screen 6

到目前为止我用tmux最接近的是:

set-window-option -g window-status-format ' #I #W'
set-window-option -g window-status-current-format ' #I #W'
set -g status-justify left
set -g status-left ''
set -g status-right '#h :: #(sysctl vm.loadavg | cut -d " " -f 3-5) #S '

得到: enter image description here 有没有办法在status-left部分显示窗口列表,并按照我想要的方式使用中间部分?

1 个答案:

答案 0 :(得分:3)

tmux中设置正确有点棘手。但你想要的是:

set -g status-right '#S'
# set-option -g status-left-length 30
set -g status-left '#I #W'
set-option -g status-justify centre


set-window-option -g window-status-current-format '#h :: #(sysctl vm.loadavg | cut -d " " -f 3-5)'
# Disable showing the default window list component.
set-window-option -g window-status-format '#h :: #(sysctl vm.loadavg | cut -d " " -f 3-5)'

这将为您打开的每个窗口提供中间部分的平均负载和主机名。如果您只想让它出现一次而不是每次出现新窗口,那么您必须将最后一行更改为行:

`set-window-option -g window-status-current-format '#h :: #(sysctl vm.loadavg | cut -d " " -f 3-5)'`

 set `set-window-option -g window-status-format ''`

让我详细说明一下。行window-status-current-formatwindow-status-format允许您更改状态行的window部分。但是,您不需要使用窗口变量,您也可以使用#h或任何其他您想要的东西。 window-status-current-formatwindow-status-format之间的区别在于前者允许您指定当有问题的窗口是当前窗口时显示的内容,而后者则不是。我更喜欢将两者和两者都设置为相同的值。找到该部件后,您可以轻松格式化状态行的左右部分。请注意,如果您未设置window-current-status-formatwindow-status-format,则tmux将显示其默认窗口显示选项。因此,即使您只想摆脱中间部分,因为它会干扰您的其他设置,您需要将它们都设置为''man tmux也很有用!