【问题标题】:how to move Tmux panes如何移动 Tmux 窗格
【发布时间】:2021-07-23 20:23:42
【问题描述】:

我喜欢使用 3 个 tmux 窗格。屏幕上半部分的一个水平窗格和下半部分的另外两个窗格。这些窗格是垂直拆分的。

在某些情况下,我想取最后一个窗格并使其从上到下。像这样:

我怎样才能做到这一点?使用 [ctrl+b ctrl+o] 和 [ctrl+b space] 没有到达想要的位置,很麻烦。

【问题讨论】:

    标签: tmux


    【解决方案1】:

    可能有一种更简单的方法,但您可以在两种配置中手动排列窗格,并在变量中记录每个布局,例如:

    layout1=$(tmux list-windows -F '#{window_layout}')
    

    这包含一个类似的字符串:

    5f2f,80x23,0,0[80x11,0,0,0,80x11,0,12{39x11,0,12,1,40x11,40,12,2}]
    

    你不能以任何方式改变它,因为第一个数字是字符串其余部分的校验和。

    一旦有了这两个字符串,您就可以使用select-layout 设置绑定以设置该布局,或者通过在您拥有变量的shell 中发出命令:

    tmux select-layout "$layout1"
    

    您可能会发现编写一个小的帮助脚本更容易,比如 mtmux 在布局之间切换:

    #!/usr/bin/bash
    # https://stackoverflow.com/q/56343223/5008284
    # toggle between 2 layouts, previously saved
    layout1='5f2f,80x23,0,0[80x11,0,0,0,80x11,0,12{39x11,0,12,1,40x11,40,12,2}]'
    layout2='093c,80x23,0,0{39x23,0,0[39x11,0,0,0,39x11,0,12,4],40x23,40,0,3}'
    layout="$(tmux list-windows -F '#{window_layout}')"
    case "$layout" in
    *80x11*)    new=$layout2 ;;
    *)          new=$layout1 ;;
    esac
    tmux select-layout "$new"
    tmux display-panes
    exit 0
    

    并有一个绑定,比如 control-L,来运行这个 shell:

        bind-key -n C-l run-shell 'mtmux'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-03
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2018-06-08
      • 2015-08-21
      相关资源
      最近更新 更多