Tmux 键绑定用于向左或向右切换窗格

Tmux 键绑定用于向左或向右切换窗格

我知道这一点,:swap-pane -U并且:swap-pane -D可以上下交换窗格,但我希望通过键绑定来左右交换窗格。

我能想到的唯一方法是先确定当前窗格的窗格索引,然后运行:select-pane -R-L并确定其索引,最后运行:swap-pane -s (first pane index) -t (second pane index)

我只是不确定如何做到这一点.tmux.conf- 是否有可能使用在另一个命令中返回某些内容的子命令?

例如这样的事情:

bind-key -n C-{ swap-pane -s **get current pane ID** -t **get pane ID of 'select-pane -L'**

bind-key -n C-} swap-pane -s **get current pane ID** -t **get pane ID of 'select-pane -R'**

答案1

:bind-key -n C-{ select-pane -L \; swap-pane -s '!'

这应该告诉 tmux 选择左窗格,然后与之前的活动窗格交换。

而且,swap-pane -s {right-of}似乎有效。
以下是引用其他窗格的方法列表:

{last} !       The last (previously active) pane
{next} +       The next pane by number
{previous} -   The previous pane by number
{top}          The top pane
{bottom}       The bottom pane
{left}         The leftmost pane
{right}        The rightmost pane
{top-left}     The top-left pane
{top-right}    The top-right pane
{bottom-left}  The bottom-left pane
{bottom-right} The bottom-right pane
{up-of}        The pane above the active pane
{down-of}      The pane below the active pane
{left-of}      The pane to the left of the active pane
{right-of}     The pane to the right of the active pane

查看在线手册页以供参考。

答案2

还可以添加以下行~/.tmux.conf

bind v swap-pane -s '!' -t $TMUX_PANE

这将交换当前窗格与上次访问的窗格。连续转到需要交换的两个窗格并使用<prefix>v(上述命令)执行交换。请注意,<prefix>q显示窗格的 ID。额外的优点是交换也可以在不同的窗口之间进行。

相关内容