缺乏做这个,是否可以将窗格中正在运行的命令移动到另一个 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-pane
tmux 命令。有关更多信息,请运行
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-window
和dst-window
的形式为session:window.pane
。
答案4
我有两个会话正在运行,每个会话都在自己的 iTerm 中。要将窗格从一个会话移动到另一个会话,我只需
选择窗格
<leader>s <session>
其中方括号内是<session>
数字
tmux 2.7