将 tmux 窗格移动到另一个会话

将 tmux 窗格移动到另一个会话

缺乏做这个,是否可以将窗格中正在运行的命令移动到另一个 tmux 会话?

答案1

Tmux 有快捷键: <prefix>.(一个点)

<prefix>.然后输入6<enter>- 将当前窗口移动到位置 6(在当前会话中) <prefix>.然后输入2:6<enter>- 将当前窗口移动到会话 2 中的位置 6(另请参见会话名称/编号<prefix>s<prefix>:-ls<enter>

(对我来说也是新的:<prefix>!将窗格(从拆分)移动到新窗口)

测试版本:Debian9/Manjaro 上的 2.3 和 RHEL 7 上的 1.8(感谢@HEGX64)

答案2

是的,这很简单,使用move-panetmux 命令。有关更多信息,请运行

man tmux | less -I '+/move-pane'

棘手的部分只是知道 tmux 如何在命令中引用会话、窗口和窗格来操作窗格等。

步骤1

移至要移至其他会话的窗格

第二步

通过运行获取目标会话的名称<prefix>s

在我的系统上产生:

 (0) + 0: 8 windows (attached)  
 (1) + 1: 1 windows 
       ^
       |
    This is the session name. It could be different 
    on your system and it could be a word (not just a number).

步骤 3-运行命令

<prefix>:move-pane -t <session_name>:<window number>
                      ^^^^^^^^^^^^^^ the name from above goes in here

因此,在我的系统上,我进入正在运行的进程窗格,运行

<prefix>:move-pane -t 1:1

并且其中含有进程的窗格移至会话的第一个窗口1

它被作为一个分割插入,因此通常您希望在另一个会话上将窗口作为一次性窗口运行。

注意:目标窗口似乎确实需要存在,否则命令move-pane将发出错误。

有关在 tmux 命令中指定会话、窗口和窗格的格式的更多背景信息,请参阅COMMANDS中的部分man tmux

答案3

我无法评论,因此我将把它放在这里:对于 tmux 2.1-3build1~precise,命令应该是:

<prefix>:move-pane -t session_name:window_number

-t--会话名称(不一定是数字)前需要一个“ ”,并且给定数字的窗口必须存在。

其余内容均如所述天鹅绒雾他的回答

PS 如果你只输入session_name不带的window_number,如下所示:

<prefix>:move-pane -t session_name:

那么您的窗格将被移动到目标会话的当前窗口(并且该窗口将被分割)。

PPS 如果你只是想移动你的窗口(而不仅仅是你的窗格),那么有一个很好的答案如何在 tmux 客户端之间移动窗口

<prefix>:move-window [-d] [-s src-window] [-t dst-window]

(alias: movew)

其中src-windowdst-window的形式为session:window.pane

答案4

我有两个会话正在运行,每个会话都在自己的 iTerm 中。要将窗格从一个会话移动到另一个会话,我只需

选择窗格

<leader>s <session>

其中方括号内是<session>数字

tmux 2.7

相关内容