Tmux 识别窗格是否已缩放且处于活动状态

Tmux 识别窗格是否已缩放且处于活动状态

我使用 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}是一个条件, if A != 0, use B, else useC
  • window_zoomed_flag0未缩放时和1缩放时

tmux 的格式语法有很多非常有趣的变量,可以将它们与条件组合起来执行几乎任何操作(男人

相关内容