Câu hỏi Làm thế nào để trao đổi hai panes trong Tmux?


Tôi có hai tấm nằm ngang. Tôi muốn có cửa sổ hiện tại ở bên phải để ở bên trái trong cửa sổ. Tôi không nói về việc di chuyển tiêu điểm (Ctrl+B  o). Làm thế nào để đạt được điều này?

'khung bên trái' <-> 'ngăn bên phải'


144
2018-02-17 22:27


gốc




Các câu trả lời:


Các swap-pane lệnh có thể làm điều này cho bạn. Các { và } phím bị ràng buộc swap-pane -U và swap-pane -D trong cấu hình mặc định.

Vì vậy, để thực hiện thay đổi mong muốn của bạn, bạn có thể sử dụng Tiếp đầu ngữ  { khi bạn đang ở trong ngăn bên phải (hoặc Tiếp đầu ngữ  } nếu bạn đang ở trong khung bên trái).

Các -U và -D tham khảo "lên" và "xuống" trong thứ tự bảng chỉ mục ("lên" là cùng một hướng mà Tiếp đầu ngữ  o di chuyển qua các ô). Bạn có thể thấy các chỉ mục cửa sổ với display-panes (Tiếp đầu ngữ  q, theo mặc định).


209
2018-02-18 08:27



+1 để chỉ định Prefix thay vì giả sử mọi người sẽ sử dụng Ctrl-b - Aaron Wallentine
Đã đồng ý. Thậm chí còn tệ hơn khi mọi người cho rằng bạn đang sử dụng Ctrl-a, vì họ là những người biết rằng tiền tố có thể được thay đổi cho phù hợp với người dùng. - Brandon Ibbotson


Bạn có thể đánh Ctrl  b và tiếp tục giữ Ctrl trong khi đánh o. Điều này sẽ xoay tất cả các khung hiện có xung quanh, vì vậy trong trường hợp của bạn, nó sẽ hoán đổi hai tấm hiện có duy nhất.

Ctrl  b + Alt  o quay ngược lại (hữu ích khi bạn có nhiều hơn hai panes).


37
2018-01-02 10:28



Tôi không thể có được điều này - khi tôi làm Ctrl + b và sau đó o, tôi nhận được một cửa sổ xoay vòng, nhưng sau đó tập trung quay trở lại cửa sổ hiện tại. Tôi không thể chu kỳ qua các ô mà không lặp lại toàn bộ chuỗi Ctrl + b, ctrl + o. Đó là loại tẻ nhạt. Bạn có biết tại sao điều này có thể xảy ra không? - Stabledog
@Stabledog Không chắc chắn ... Chỉ cần được rõ ràng về hành vi mong đợi: Trong khi giữ Ctrl, đánh bo nhiều lần sẽ khiến các panes quay vòng. Con trỏ sẽ vẫn ở cùng một vị trí, tức là không theo các ô xung quanh, nhưng được đặt trong ngăn mới được xoay vào vị trí con trỏ. - Joel Ostblom
Vâng, chúng tôi đang ở trên cùng một trang. Nhưng sau 'o' đầu tiên, điều này gây ra sự xoay khung, chữ 'o' tiếp theo được gửi đến lớp vỏ bên dưới và được xử lý bởi bất kỳ ứng dụng nào ở đó. Tôi đang nghĩ một cái gì đó cá với bản đồ của tôi, hoặc có thể cái gì đó phụ thuộc vào phiên bản tmux. Cảm ơn vì đã phản hồi. - Stabledog
@Stabledog Tôi đang ở trên tmux 2.3 hiện tại, nhưng tôi nghĩ điều này đã luôn luôn làm việc cho tôi ... Tôi không thể thực sự nghĩ về những gì có thể là vấn đề. Có vẻ kỳ lạ là Ctrl+ođang được gửi đến shell thay vì tmux, đặc biệt nếu đây không phải là trường hợp để nhấn liên tục Ctrl+b (hoặc các lệnh tmux khác?). - Joel Ostblom
@Stabledog Trên thực tế, tôi chỉ nhận thấy rằng lệnh duy nhất khác mà tôi có thể tiếp tục giữ quyền kiểm soát và lặp lại các phím khác là Ctrl+b;, giữ xoay con trỏ giữa hai ngăn. - Joel Ostblom


Điều khiển chính xác nhất bạn có thể có là sử dụng lệnh swap-pane  trực tiếp. Điều này không quá khó để làm:

  1. ctrl-b q hiển thị cho bạn "ID" cho mỗi cửa sổ trong cửa sổ hiện tại - hãy nhớ hai ngăn bạn muốn trao đổi. Giả sử chúng là 3 và 5.
  2. ctrl-b : để kích hoạt dòng lệnh tmux. Sau đó, lệnh phát hành swap-pane -s 3 -t 5.

Lưu ý rằng bạn có tự động hoàn thành khi nhập lệnh. Ngoài ra, bạn có thể tìm kiếm cú pháp của lệnh trực tiếp từ tmux manpage. Đó là cách tôi học cú pháp cho swap-pane.


5
2018-03-21 18:50