如何通过按住前缀和箭头键一段时间来调整 tmux 窗格的大小?

如何通过按住前缀和箭头键一段时间来调整 tmux 窗格的大小?

理想情况下,我希望我可以通过按下前缀 + 箭头键并观察面板调整大小到我满意的程度来按我想要的幅度调整窗格大小,然后我只需举起手即可停止调整大小。

答案1

默认情况下,这些绑定(以及其他绑定)处于活动状态:

bind-key -r -T prefix       M-Up              resize-pane -U 5
bind-key -r -T prefix       M-Down            resize-pane -D 5
bind-key -r -T prefix       M-Left            resize-pane -L 5
bind-key -r -T prefix       M-Right           resize-pane -R 5
bind-key -r -T prefix       C-Up              resize-pane -U
bind-key -r -T prefix       C-Down            resize-pane -D
bind-key -r -T prefix       C-Left            resize-pane -L
bind-key -r -T prefix       C-Right           resize-pane -R

这意味着您可以通过或等方式调整窗格大小。prefixAlt prefixCtrl

(默认值为prefix。)Ctrl B

感谢你,如果你击打得足够快,你-r就可以不重复多次。按住而不是反复击打可能会奏效,也可能不奏效。如果它不起作用,则意味着没有足够快地收到第二个(或更晚的)击打。在这种情况下,你可以:prefixCtrl prefixtmux

  • 重新配置键盘。例如,在我的 Kubuntu 中,初始延迟为 600 毫秒,高于 使用的默认阈值 500 毫秒tmux,因此默认情况下按住不起作用。然后每秒将有 25 次重复,即平均间隔为 40 毫秒,这对于 来说已经足够好了tmux。在系统范围的键盘设置中将 600 毫秒更改为 400 毫秒允许我使用。prefixCtrl (hold)

  • 重新配置tmux。该行为由repeat-time选项:

    repeat-time time
    允许在指定的时间内输入多个命令,而无需再次按下前缀键时间毫秒(默认值为500)。当使用标志绑定-r到时,可以设置按键是否重复bind-key。对于绑定到命令的默认按键,启用了重复resize-pane

    示例命令(在 shell 内tmux):

      tmux set repeat-time 1000
    

    或者在~/.tmux.conf(永久设置):

      set -g repeat-time 1000
    

无论你选择哪种方法(一种或两种),你都希望repeat-timetmux高于键盘设置中的延迟和重复间隔。然后你甚至可以

prefixCtrl (hold)(hold)(hold)(hold)

只需一个prefix,无需释放Ctrl,只要您在和之间切换足够快即可。如果您prefix包含Ctrl,则无需释放它。我的意思是使用默认前缀,您可以这样做:Ctrl B

Ctrl B(hold)(hold)(hold)(hold)

持有Ctrl期间全部的顺序。

答案2

要调整 tmux 窗格的大小,首先要按前缀(默认为 ctrl + b),然后按冒号键 :。这样会在屏幕底部弹出一个提示。

现在您需要在提示符中输入 resize-pane,然后输入连字符 - 以及 D、U、L、R。您可能猜到它们代表向下、向上、向左和向右,即您希望调整窗格大小的方向。使用 resize-pane 命令时,调整大小将应用于最后一个具有焦点的窗格。

下面是整个调整窗格大小命令的示例,该命令将窗格向左调整一个单元格的大小——tmux 调整大小的单位:

// This assumes that you've hit ctrl + b and : to get to the command prompt :resize-pane -L 

以下是一些额外的 tmux 窗格调整大小的示例:

:resize-pane -D (Resizes the current pane down) 

:resize-pane -U (Resizes the current pane upward) 

:resize-pane -L (Resizes the current pane left) 

:resize-pane -R (Resizes the current pane right) 

:resize-pane -D 10 (Resizes the current pane down by 10 cells) 

:resize-pane -U 10 (Resizes the current pane upward by 10 cells) 

:resize-pane -L 10 (Resizes the current pane left by 10 cells) 

:resize-pane -R 10 (Resizes the current pane right by 10 cells) 

相关内容