我使用 tmux 1.8,因此我有内置CTRL+b+z
功能来缩放活动窗格。
问题是缩放的窗格看起来与普通窗格相同,因此有时我会忘记该窗格是否已缩放。有没有办法添加我当前处于缩放模式的指示?
水平分割窗格也存在同样的问题。很难记住左侧的边框是否对应于活动的上部窗格,反之亦然。我可以让它更明显吗?如果可能的话,也许添加水平边框?
答案1
在缩放功能的同时,添加了window_flag
同名的Z
,因此该标志应该出现在窗口标题旁边的状态行中(您在评论中提到您使用了 tmux 的某些插件/自定义)。
在任何情况下,您都可以使用以下list-panes
命令和formats
功能查询 tmux:
tmux list-panes -F '#F'
打印出当前活动窗格的所有窗口标志。如果Z
是在标志之一,则当前窗格被缩放。因此,命令
tmux list-panes -F '#F' | grep -q Z
0
如果当前窗格已缩放,则返回;1
如果未缩放,则返回错误。这应该允许您将此指示器添加到您的自定义状态行。
从man tmux
:
FORMATS
Certain commands accept the -F flag with a format argument. This is a
string which controls the output format of the command. Replacement
variables are enclosed in ‘#{’ and ‘}’, for example ‘#{session_name}’.
The possible variables are listed in the table below, or the name of a
tmux option may be used for an option's value. Some variables have a
shorter alias such as ‘#S’, and ‘##’ is replaced by a single ‘#’.
[...]
Variable name Alias Replaced with
[...]
window_flags #F Window flags
看着源代码(window.c,第 639f 行)显示完整的标志列表为:
#: window activity flag
!: window bell flag
~: window silence flag
*: current window flag
-: last window flag
Z: window zoomed flag
' ' (a space): no flags at all.
答案2
TmuxZ
在状态栏中的窗口名称末尾添加一个 ,以指示该窗格已缩放。或者至少我使用的 1.9 版本默认是这样做的。
答案3
默认情况下,缩放使用指示#F
,但可以使用创建自定义指示器#{?...}
使用#F
将其添加到 tmux 配置文件中
# Display the window flag next to window name
set -g window-status-format " #I #W#F "
最后一个选项卡有两个标志,*
分别用于当前选项卡和Z
缩放选项卡
使用#{?...}
将其添加到 tmux 配置文件中
# Display whatever you want when the window is zoomed or not zoomed
# - zoomed = '+'
# - not zoomed = ' '
set -g window-status-format " #I #W#{?window_zoomed_flag,+, } "
最后一个选项卡具有+
缩放功能
细节
在状态栏中,您可以自定义窗口状态以显示窗口已缩放。您可以在 tmux 配置中进行配置(男人),您可以在几个不同的地方找到(或创建)您的配置(男人)
set -g window-status-format
决定状态栏中选项卡的格式set -g window-status-current-format
决定如何当前的选项卡已格式化
#I
是窗口索引#W
是窗口名称#F
是窗口的标志#{?A,B,C}
是一个条件, ifA != 0
, useB
, else useC
window_zoomed_flag
是0
未缩放时和1
缩放时
tmux 的格式语法有很多非常有趣的变量,可以将它们与条件组合起来执行几乎任何操作(男人)