Câu trả lời:
Lệnh để làm điều này là join-pane
trong 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.
Để đơn giản hóa điều này, tôi có các ràng buộc này trong .tmux.conf
đó cho tôi :
# 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 '%%'"
Cái đầu tiên lấy khung từ cửa sổ đích và nối nó với dòng điện, cái thứ hai làm ngược lại.
Sau đó, bạn có thể tải lại phiên tmux của mình bằng cách chạy phần sau từ trong phiên:
$ tmux source-file ~/.tmux.conf
Prefix+s
và nhập tên cửa sổ tại dấu nhắc để gửi khung tới cửa sổ đó ...
tham gia khung là câu trả lời. Tôi cũng gặp vấn đề với những nỗ lực sử dụng nó dựa trên tài liệu tmux. Tôi phát hiện ra rằng các khóa -t và -s dường như chấp nhận cửa sổ [session]: chứ không phải [session:]. Điều đó có nghĩa là việc chỉ định phiên là tùy chọn, nhưng bao gồm: là bắt buộc. (Tôi đang sử dụng tmux 1.5)
Do đó, để thêm một khung vào cửa sổ hiện tại và đặt cửa sổ 1 vào khung, lệnh sẽ là (Ctrl-B hoặc bất cứ khóa liên kết nào của bạn, theo sau) ...
:join-pane -s :1
Sau đó, bạn có thể ngắt chúng appart với break-pane mà theo mặc định là: Ctrl-B! Nếu bạn muốn liên kết nó với một phím tắt, tôi khuyên bạn KHÔNG nên ghi đè một ràng buộc mặc định như s, bởi vì trên đường bạn sẽ tìm trên internet để tìm câu trả lời liên quan đến phiên chọn và nó sẽ không hoạt động trên hệ thống của bạn. Lưu ý rằng break-pane bị ràng buộc! và @ ở ngay bên cạnh và không bị ràng buộc với bất cứ điều gì theo mặc định. Vì lý do đó, tôi đề nghị ràng buộc này ...
bind-key @ command-prompt -p "create pane from:" "join-pane -s ':%%'"
Thay phiên, để có một người chọn tương tác ...
bind-key @ choose-window 'join-pane -h -s "%%"'
Thay phiên, để luôn tham gia cửa sổ được truy cập gần đây nhất ...
bind-key @ join-pane -h -s !
GHI CHÚ: Các -h
nguyên nhân khiến nó xếp chồng các tấm theo chiều ngang (với sự phân chia theo chiều dọc) trái ngược với hành vi mặc định là ngược lại.
Điều quan trọng nhất là TÌM HIỂU bất cứ điều gì bạn chọn để tắt. Bởi vì nếu bạn chỉ đặt nó và quên nó, bạn sẽ bị gim khi bạn thấy mình trên một máy chủ nước ngoài. Và hãy đối mặt với nó, điều quan trọng nhất mà bộ ghép kênh đầu cuối mang lại cho bạn là các phiên đáng tin cậy trên các máy chủ từ xa.
Điều này hoàn thành việc chuyển đổi của tôi từ GNU Screen sang Tmux. Tôi sẽ không bao giờ nhìn lại.
Thưởng thức!
window.pane
ví dụ join-pane -s 1.0
để di chuyển khung 0 trong cửa sổ 1 vào cửa sổ hiện tại. Thêm chi tiết tại maciej.lasyk.info/2014/Nov/19/tmux-join-pane
:
rõ ràng là không cần thiết nữa (ví dụ: chỉ cần làm :join-pane -s 1
). Có lẽ đó là một lỗi trong các phiên bản trước
Tôi nghĩ rằng tôi thích những gì tôi đã sử dụng để di chuyển các tấm đến cửa sổ riêng của họ tốt hơn. tôi sử dụng
break-pane -t :
Tôi đã tìm ra nó thông qua thử nghiệm, nhưng nó dường như hoạt động rất tốt. Bạn có thể gõ phím hoặc bí danh một cách dễ dàng, không cần kịch bản.
join-pane
.
Nếu bạn không muốn nhập định danh khung vào dấu nhắc, bạn cũng có thể sử dụng
bind-key j "join-pane -s !"
sẽ tham gia khung / cửa sổ hoạt động cuối cùng vào cửa sổ hiện tại.
unknown command: join-pane -s !
với 1.6.
bind-key j join-pane -s !
Sau khi xem qua các câu trả lời khác và lướt qua trang man tmux, tôi đã giải quyết các ràng buộc sau đây:
bind-key S choose-window 'join-pane -v -s "%%"'
bind-key V choose-window 'join-pane -h -s "%%"'
Điều này sẽ cho phép bạn tương tác chọn cửa sổ để tham gia và phản chiếu chữ thường s
/ v
liên kết của tôi để tạo các phân chia dọc / ngang mới. Nếu ai biết cách chọn từng tấm thay vì cửa sổ hãy cho tôi biết.
-v
và -h
không tạo ra "chia" dọc và ngang tương ứng. Họ tạo ra các " tấm xếp chồng " dọc và ngang tương ứng. (Đó là để nói rằng các tấm xếp chồng theo chiều dọc có sự phân chia theo chiều ngang.) Vì vậy, bạn phải đào tạo bộ não của mình theo cách đó. Cũng -v
là mặc định, vì vậy tôi sẽ bỏ nó ra và chỉ đặt nó -h
ở đó để ~/.tmux.conf
hành vi của bạn như một bảng cheat để bạn xem xét.
Theo mặc định, Ctrl+ b, !sẽ phá vỡ khung hoạt động thành một cửa sổ mới và chuyển sang cửa sổ đó.
Trong đó Ctrl+ blà tiền tố mặc định cho tmux .
Các tmux
lệnh thực thi quan trọng này là break-pane
(bí danh: breakp
) như thực hiện trong cmd-break-pane.c
và ràng buộc như mặc định trong key-bindings.c như đã thấy trong list-keys
(bí danh: lsk
) đầu ra lệnh:
bind-key -T prefix ! break-pane
Bạn không phải thay đổi các ràng buộc quan trọng của bạn.
Trong khi các cửa sổ bạn muốn di chuyển có trọng tâm, loại Prefix sau đó :join-pane -t :1
ở đâu 1
là bất cứ điều gì số cửa sổ đích là trong cùng một phiên. Bạn có thể chuyển nó sang phiên khác bằng cách thêm tên của nó như thế nào project:3
. Đối với tôi join-pane
tab-autocompletes từ j
.
Thêm -h
hoặc -v
chuyển sang lệnh để đặt hướng của phân chia mới được tạo ở đích hoặc chỉ cần đi tới nó và Tiền tố + spaceđể sắp xếp lại.