我有一个tmux设置,其中我的顶部窗格始终是2行大。不幸的是,每次调整终端的大小时,比例都会完全重置,并且顶部窗格会占用更多的空间。
我在.tmux.conf
文件中创建了一个绑定,该绑定使我可以通过按F12来调整窗格的大小:bind -n F12 resize-pane -t 0 -y 2
但是,它希望在每次调整大小事件时自动完成。有办法有效地做到这一点吗?
我在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
事件,但我无法使其正常工作)。
所以最后,我创建了一个小的shell脚本,myscript
在我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
just以查看脚本是否正在运行。这似乎与以下项目配合良好:
set-hook -g window-layout-changed 'run-shell myscript'
甚至在仅剩窗格0的情况下(因此无法调整大小)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句