gpt4 book ai didi

unix - tmux 在焦点上调整大小

转载 作者:行者123 更新时间:2023-12-04 08:49:15 24 4
gpt4 key购买 nike

我希望能够为特定 Pane 指定辅助大小参数,以便它在聚焦 Pane 时分配新大小,并在退出时返回它。所以例如

(注 [] 代表聚焦终端光标)

________________
|$ ls | |
|a's | |
|dir | |
|$ |$ [] |
|______|_______|

交换 Pane 焦点
_______________
| | |
|$ ls | |
|a's dir | |
|$ [] |$ |
|________|____|

等等。特别是会很酷,因为在最近的 tmux 版本中调整 Pane 的大小可以很好地重新流动内容而不是切掉它。

在示例中,左侧 Pane 的宽度设置为在获得焦点时自动切换为 8 列,并且在失去焦点时变得更薄。注意内容仍然是可见的(这毕竟是我们喜欢 tmux 的原因)但是我们仍然可以通过让当前聚焦的 Pane 自动扩展自己来吃蛋糕,所以它总是足够大来工作!

我可能会想出一些复杂的绑定(bind)来自动化 resize-pane 的应用程序。命令执行此操作,并使其精确到适合我的愿望的程度。但我希望有某种内置功能。

跟踪并允许修改每个 Pane 的辅助 4 元组整数是很实用的。这些指定 resize-pane -L/D/U/R 的数量在该 Pane 的聚焦上执行的操作,以及在该 Pane 的散焦时执行的反向操作。

可能还有其他更合理的表述。

最佳答案

找到了部分解决方案...
我已经让我的面板切换与 vim 同步,所以每当我切换切换面板时,我也会调整 tmux 的大小。

这不是最优的,因为 tmux 没有验证当前 Pane 大小并相应地调整它的大小。无论如何,它工作得很好,因为您可以执行 ctr-h 或 ctrl-k 两次来调整 Pane 大小。

相关配置如下:

# Sync panes with vi
bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-h) || tmux select-pane -L && tmux resize-pane -R 30"
bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-l) || tmux select-pane -R && tmux resize-pane -L 30"
bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-j) || tmux select-pane -D"
# Move panes up and down, wont resize
bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iqE '(^|\/)vim(diff)?$' && tmux send-keys C-k) || tmux select-pane -U"

关于unix - tmux 在焦点上调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16879524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com