phản chiếu một khung giữa hai cửa sổ


14

Có thể có cùng một khung xuất hiện trong hai cửa sổ khác nhau của một phiên tmux không?

Tôi thường có một phân chia ngang duy nhất trong cửa sổ chính của mình với vim ở khung trên cùng (khoảng 80-90% chiều cao thiết bị đầu cuối) và một dòng lệnh trong khung dưới cùng nơi tôi chạy chương trình tôi đang làm việc. Vì cửa sổ dưới cùng quá nhỏ, tôi thường không thể thấy đầu ra lỗi và sử dụng phím tắt của tmux để cuộn lại đang trở nên mệt mỏi. Tôi muốn có cửa sổ thứ hai của mình gắn vào cùng một khung để nếu tôi cần xem thêm đầu ra lỗi của mình, tôi có thể nhanh chóng chuyển sang cửa sổ thứ hai mà không cần phải xử lý cuộn ngược. Điều này có thể không?

(Tôi đoán một dự phòng sẽ là sử dụng một cái gì đó như tee để viết thiết bị xuất chuẩn vào tệp nhật ký và theo đuôi trong cửa sổ thứ hai của tôi. Tôi hy vọng điều đó không cần thiết mặc dù)

Câu trả lời:


7

Theo mặc định, bạn có thể chuyển đổi "trạng thái thu phóng" của một cửa sổ bằng cách nhấn Prefixz(tiền tố mặc định là Ctrl+B).

Điều này sẽ làm cho khung hiện tại (ví dụ khung dòng lệnh của bạn) chiếm toàn bộ cửa sổ. Nhấn Prefixzmột lần nữa để "unzoom" khung.


10

Tôi e rằng đây là một trong những điều bạn không thể làm được tmux(tôi hy vọng các vấn đề với một khung được hiển thị ở một số không gian có kích thước khác nhau là lý do chính). Tuy nhiên, có một số cách bạn có thể giải quyết xung quanh đó - tất cả dựa trên ràng buộc một số hành động nhất định với một số kết hợp chính. Vì rất nhiều phụ thuộc vào bố cục bạn đang sử dụng, chỉ cần một bố cục đơn giản với hai tấm bạn đang đề cập sẽ làm cho cuộc sống của bạn dễ dàng hơn nhiều

  1. rotate-window - nó sẽ chỉ trao đổi các pan, do đó cung cấp cho bạn 80% -90% cho đầu ra lệnh (và cửa sổ nhỏ cho ViM).

  2. break-pane so với join-pane -v -p <preview_percentage> -t !

  3. pipe-panevới commandviệc chuyển hướng không có bộ đệm sang một ống có tên (nghĩa là một nút hệ thống tệp được tạo bằng mkfifo) - sau đó sử dụng tail -fđường ống có tên đó trong khung khác.

  4. dẫn đầu ra tới less, cũng có chế độ theo sau tail(ít nhất là GNU).

  5. resize-pane -Ztrên bảng điều khiển nhỏ hơn sẽ phóng to nó trên thiết bị đầu cuối đầy đủ. Việc không phóng to sau đó sẽ giữ cho nó hoạt động vì vậy cần một chút mẹo nhỏ để làm cho nó hoạt động thoải mái.


2
BTW - "Tôi hy vọng các vấn đề với một khung được hiển thị ở nhiều không gian có kích thước khác nhau là lý do chính" Đó có thể là một yếu tố trong sự phức tạp khi thực hiện nó, nhưng tmux không hỗ trợ điều tương tự ở cấp cửa sổ, thông qua nhóm phiên unix.stackexchange.com/questions/24274/ . Nó chỉ đơn giản là thêm phần đệm bên dưới vào cửa sổ nhỏ hơn. Về mặt lý thuyết, phản chiếu khung có thể được thực hiện theo cách tương tự.
mahemoff

Hừm ... bạn nói đúng, đó có thể là một cách để giải quyết nó.
peterph

1

Bạn có thể sử dụng một tập lệnh để xuất phiên giả của bạn thành một tệp và sau tailđó tệp đó trong cửa sổ thứ hai.

Trong khung làm việc của bạn.

script -f tailme.out

Và trong khung xem của bạn.

tail -f tailme.out

1

Tôi đồng ý với những người khác rằng đối với trường hợp của bạn Prefix+ zsẽ là giải pháp trực tiếp nhất, nhưng đối với câu hỏi chung về việc phản chiếu một khung có một chút hack có thể hoạt động - lồng một phiên màn hình bên trong tmux.

Cài đặt màn hình gnu, sau đó khởi động nó cho khung bạn muốn phản chiếu. Sau đó screen -xđể gắn vào các tấm khác.

Bạn cũng có thể lồng một phiên tmux khác trong khung nếu bạn muốn, nhưng các phiên tmux nên được lồng cẩn thận.

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.