Answers:
join-pane
在tmux 1.4中执行此命令。
join-pane [-dhv] [-l size | -p percentage] [-s src-pane] [-t dst-pane] (alias: joinp) Like split-window, but instead of splitting dst-pane and creating a new pane, split it and move src-pane into the space. This can be used to reverse break-pane.
为了简化这一点,我为此准备了以下绑定.tmux.conf
:
# pane movement
bind-key j command-prompt -p "join pane from:" "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'"
第一个从目标窗口获取窗格并将其连接到当前窗口,第二个则相反。
然后,您可以通过在会话中运行以下命令来重新加载tmux会话:
$ tmux source-file ~/.tmux.conf
Prefix+s
并输入窗口名称,以将窗格发送到该窗口...
连接窗格就是答案。我也尝试基于tmux文档使用它时遇到问题。我发现-t和-s开关似乎接受[session]:window,而不接受[session:] window。也就是说,指定会话是可选的,但必须包含:。(我正在使用tmux 1.5)
因此,为了将窗格添加到当前窗口并将窗口1放置到窗格中,命令应为(Ctrl-B或绑定键,然后按)。
:join-pane -s :1
然后,您可以使用分隔窗格将其中断,默认情况下为:Ctrl-B!如果您想将其绑定到快捷方式,建议不要覆盖s之类的默认绑定,因为一路走来,您将在Internet上寻找涉及选择会话的答案,并且在您的系统上将不起作用。请注意,分隔窗格已绑定到!@紧挨着它,并且默认情况下不绑定任何东西。因此,我建议这种绑定...
bind-key @ command-prompt -p "create pane from:" "join-pane -s ':%%'"
或者,具有交互式选择器...
bind-key @ choose-window 'join-pane -h -s "%%"'
或者,始终加入最近访问的窗口...
bind-key @ join-pane -h -s !
注意:-h
导致它水平堆叠窗格(垂直拆分),这与默认行为相反,即相反。
最重要的是,无论您选择哪种快捷方式,您的学习。因为如果您只是设置它而忘记了它,那么当您在外部服务器上发现自己时,就会被吸引住。面对现实,终端多路复用器为您提供的最重要的功能是远程服务器上的可靠会话。
这样就完成了我从GNU Screen到Tmux的转换。我永远不会回头。
请享用!
window.pane
如join-pane -s 1.0
在窗口1移动窗格中0到当前窗口。更多详细信息,请访问maciej.lasyk.info/2014/Nov/19/tmux-join-pane
:
显然不再需要(例如,只需做:join-pane -s 1
)。也许这是早期版本中的错误
在浏览了其他答案并仔细阅读了tmux手册页之后,现在我确定了以下绑定:
bind-key S choose-window 'join-pane -v -s "%%"'
bind-key V choose-window 'join-pane -h -s "%%"'
这将使您以交互方式选择要加入的窗口,并镜像我的小写字母s
/ v
绑定以创建新的垂直/水平拆分。如果有人知道如何选择单个窗格而不是窗口,请告诉我。
-v
和-h
不会分别创建垂直和水平“拆分”。它们分别创建垂直和水平“ 堆叠窗格 ”。(也就是说,垂直堆叠的窗格具有水平的分割。)因此,您必须以这种方式训练大脑。这-v
也是默认设置,因此我将其省略,仅将其-h
放入其中,以便您~/.tmux.conf
充当备忘单以供您查看。
默认情况下,Ctrl+ b,!将打破该活动窗格到一个新的窗口,并切换到它。
该tmux
密钥执行的命令是break-pane
(alias :),已在key-bindings.c中breakp
实现cmd-break-pane.c
并绑定为默认值,如(alias:)命令输出所示:list-keys
lsk
bind-key -T prefix ! break-pane