我有一个 tmux 设置,其中我的顶部窗格始终是 2 行大。不幸的是,每次调整终端大小时,比例都会完全重置,顶部窗格会占用更多空间。
我在.tmux.conf
文件中创建了一个绑定,允许我通过按 F12 来调整窗格大小:bind -n F12 resize-pane -t 0 -y 2
但是,它希望在每次调整大小事件时自动完成此操作。有没有办法以某种方式有效地做到这一点?
答案1
我在 2.7 左右的版本上尝试了以下方法,它似乎有效。您可以添加一个钩子来对多个事件运行 tmux 命令,特别是window-layout-changed
在调整窗格大小时似乎会触发该命令。我尝试了显而易见的
set-hook -g window-layout-changed 'resize-pane -t 0 -y 2'
但这造成了无限循环。有些事件有一个后版本,但显然没有after-window-layout-changed
事件。 (早期版本的 tmux 有一个layout-changed
事件,但我无法让它工作)。
最后,我myscript
在 my 中创建了一个小型 shell 脚本,用于PATH
检查窗格的当前大小,并仅在必要时调整其大小:
#!/bin/bash
ht=$(tmux display-message -p -t 0 '#{pane_height}')
if [ 2 != "$ht" ]
then tmux display-panes\; resize-pane -t 0 -y 2
fi
我添加display-panes
只是为了查看脚本是否正在运行。这似乎适用于:
set-hook -g window-layout-changed 'run-shell myscript'
即使在只剩下窗格 0 的情况下(因此无法调整大小)。