我在窗口中运行了几个tmux窗格,这些窗格的语法如下:
tmux split-window -h -l {dynamic value} tail -f somefile.txt
tmux split-window -v -l {dynamic value} tail -f someotherfile.txt
tmux split-window -h -l {dynamic value} nc -l -p {random port}
当我使用此脚本创建新窗格时,我需要使用每个“窗口”(窗格)的大小更新脚本中的数组。
如果tmux窗格包含交互式shell,我可以在其中运行tput cols和tput行来获取大小。我检查了tmux手册页,但没有看到我正在寻找的命令。
答案 0 :(得分:2)
如果您知道窗格的ID(例如%24
)或其名称(例如session_name:win_idx.pane_idx
;请参阅手册页中的target-pane
),那么您可以使用display-message -p
来查询尺寸:
tmux display-message -pt "$pane" -F '#{pane_width}x#{pane_height}'
如果您还没有办法命名为窗格,那么您可以在使用-P
选项和-F
选项将其拆分时收集窗格ID:
pane_a=$(tmux split-window -PF '#{pane_id}' -hl "$dynamic_value" 'tail -f somefile.txt')
⋮ # create other panes
pane_a_width=$(tmux display-message -pt "$pane_a" -F '#{pane_width}')
如果您想了解窗口中的所有窗格,那么您可以将list-panes
与窗口的ID(例如@5
)或名称(例如session_name.win_idx
)一起使用;请参阅{{ 1}}在手册页中):
target-window
其中一些选项和格式说明符在旧版本的 tmux 中不可用,但通常有解决方法(取决于您的版本的使用年限)。