我知道这一点,: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。额外的优点是交换也可以在不同的窗口之间进行。