我从GNU Screen过渡到tmux,并试图配置我的tmux状态行来模仿我在Screen中构建的标题。
我的屏幕标题左侧是窗口列表,主机名和loadavg大致居中,右侧是会话名称:
窗口列表保持不变,会话名称保持正确,中间部分保持大致居中,但是如果它很长,则轻推以适应窗口列表...
到目前为止我用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 '
得到:
有没有办法在status-left
部分显示窗口列表,并按照我想要的方式使用中间部分?
答案 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-format
和window-status-format
允许您更改状态行的window
部分。但是,您不需要使用窗口变量,您也可以使用#h
或任何其他您想要的东西。 window-status-current-format
和window-status-format
之间的区别在于前者允许您指定当有问题的窗口是当前窗口时显示的内容,而后者则不是。我更喜欢将两者和两者都设置为相同的值。找到该部件后,您可以轻松格式化状态行的左右部分。请注意,如果您未设置window-current-status-format
和window-status-format
,则tmux
将显示其默认窗口显示选项。因此,即使您只想摆脱中间部分,因为它会干扰您的其他设置,您需要将它们都设置为''
。 man tmux
也很有用!