Tmux:提示选择加入窗格的窗口,同时仍能看到窗口编号和标题?

Tmux:提示选择加入窗格的窗口,同时仍能看到窗口编号和标题?

我经常在 tmux 中加入窗格,并希望创建一个绑定,提示我加入窗口,同时仍让我看到窗口编号和标题。我的第一个方法是基于以下答案之一这个问题

bind-key < command-prompt -p "create pane from #(tmux list-windows|awk -vORS='  ' '/^[0-9]/{print $1 $2}'):"  "join-pane -s ':%%'"

但是 tmux 不会对其他命令(例如“display-message”)进行插值,并且提示本身占据了状态行,因此我看不到窗口编号和标题。

我的第二种方法是尝试利用 choose-window,它显示一个交互式窗口列表:

绑定<选择窗口“加入窗格-hs %%”

这基本上是可行的,但在我选择时它会占用整个当前窗口。我想做一些像 vim 中的 bufexplore 所做的事,首先将窗口拆分,然后在新窗格中出现提示,我可以从中选择要拉入的窗口。以下似乎非常接近我想要的,但我只剩下用于显示提示的窗格:

bind < split-window -h \; choose-window 'join-pane -hs %%'

我想移动窗口,但据我所知,您不能将窗口移动到窗格(或者在不加入的情况下移动窗格),并且以下操作不起作用:

bind < split-window -h ; choose-window 'move-window -s %%'

我怀疑该方法涉及类似以下操作序列:

  1. 分割窗口
  2. 选择窗口(窗格)
  3. 连接窗格
  4. 杀死前一个窗格(包含选择窗口提示的窗格)

但是,当我尝试做以下事情时:

split-window -h ; choose-window 'join-pane -hs %%' ; kill-pane -t.-1

被杀死的窗格是我从其启动的窗格,而不是用于显示提示的窗格。事实上,更改 kill-pane 的值或先发出 select-pane 似乎没有什么区别。

也许这无法完成,也许有办法将窗口/0 窗格移动到新窗格,但我不知道该怎么做。也许有一些交互式命令和调用的组合

run "tmux <command> etc etc %%"

这样可以解决问题,但我不明白。有什么想法吗?

答案1

join-pane您可以在重新分割窗口之前关闭最初的临时窗格:

bind < split-window -h \; choose-window 'kill-pane ; join-pane -hs %%'

相关内容