Tmux: Làm thế nào tôi có thể liên kết một cửa sổ dưới dạng cửa sổ tách?


33

Làm cách nào tôi có thể lấy một cửa sổ từ phiên tmux hoàn toàn khác và gắn nó dưới dạng phân chia ngang / dọc với cửa sổ hiện tại?

Câu trả lời:


45

Âm thanh như bạn đang tìm kiếm tham gia. Về mặt kỹ thuật cho phần thứ hai của câu hỏi của bạn, bạn muốn tham gia một khung vào cửa sổ hiện tại, không phải là cửa sổ đầy đủ từ phiên khác vì có thể bao gồm nhiều bảng.

Đây là một ví dụ. Giả sử bạn đang ở phiên 0, cửa sổ 4 và trong phiên 2 mà bạn muốn khung cửa sổ 3 1. Trong lời nhắc tmux ( ctrl+b :theo mặc định)

join-pane -s 2:3.1

Điều này sẽ di chuyển khung 1 từ cửa sổ 3, phiên 2 (-s là cửa sổ nguồn và đưa định dạng phiên: window.pane) sang phiên hiện tại của bạn (phiên 0).

Dưới đây là các tài liệu đầy đủ cho khung tham gia, mà bạn có thể nhận được từ trang man tmux. Phần khó hiểu nhất đối với tôi khi đọc các tài liệu là tìm ra định dạng được mong đợi cho src-pane chỉ định số phiên, số cửa sổ và số khung ( session:window.panetheo ví dụ ở trên). Bạn cũng có thể đặt tên cho phiên và cửa sổ của mình và sử dụng các tên đó thay vì số chỉ mục.

 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.

9
Tôi có thể sao chép một khung thay vì di chuyển nó không?
pielgrzym

@pielgrzym Tôi cũng muốn biết câu trả lời cho điều đó. Xin vui lòng gửi nó ở đây nếu bạn tìm thấy nó.
Bruno Bronosky

Tôi nghĩ OP đã tìm kiếm thứ gì đó giống như khung liên kết, điều không may không tồn tại. Rõ ràng hành vi được yêu cầu có thể được bắt chước bằng cách sử dụng ổ cắm tmux lồng nhau, như được giải thích ở đây: superuser.com/a/323658
elig

16

Nếu bạn đang cố gắng tham gia các bảng từ trong cùng một phiên, theo bản năng bạn sẽ muốn bỏ qua "phiên:" khỏi lệnh. Điều này sẽ thất bại. Có vẻ như các -s và -t chuyển sang khung tham gia chấp nhận đối số ở dạng [session]: window [.pane] thay vì [session:] window [.pane]

Điều đó có nghĩa là, phiên là tùy chọn và: là bắt buộc. Điều này thật ngớ ngẩn. Nó sẽ là tương đương với các trình duyệt yêu cầu http://google.com:/ là phiên bản phím tắt của http://google.com:80/ và báo lỗi cho http://google.com/ o_O

Vì ctrl-b! phá vỡ khung hiện tại thành một cửa sổ riêng biệt (ngược lại với những gì chúng tôi muốn làm) và ctrl-b @ (nằm ngay bên cạnh!) không bị ràng buộc theo mặc định (có nghĩa là bạn không ghi đè lên bất cứ điều gì) Tôi khuyên bạn nên tạo lối tắt này ...

bind-key @ command-prompt -p "create pane from:"  "join-pane -s ':%%'"

Đẹp ràng buộc đấy.
Nishant
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.